LibFail-1.0
A library with reusable code to detect failure at certain raid tasks. At last count there are 107 different "fails" that are tracked (updated for ToC/Icecrown courtesy of Maat/sztanpet/MysticalOS). Please note, this list is not always up-to-date.
The Icecrown Citadel list includes:
- Fail_Rotface_OozeExplosion
- Fail_Rotface_StickyOoze
- Fail_Marrowgar_Whirlwind
- Fail_Marrowgar_Coldflame
- Fail_Marrowgar_SaberLash
- Fail_Festergut_VileGas
- Fail_Festergut_PungentBlight
- Fail_Deathwhisper_DeathNDecay
- Fail_Sindragosa_TailSmash
- Fail_Sindragosa_FrostBreath
- Fail_Sindragosa_BlisteringCold
- Fail_Sindragosa_Cleave
- Fail_Sindragosa_UnchainedMagic
- Fail_Sindragosa_FrostBomb
- Fail_Sindragosa_IceTomb
- Fail_Professor_MutatedSlime
- Fail_LanaThel_UncontrollableFrenzy
- Fail_LanaThel_BloodboltSplash
- Fail_BloodPrinces_SystemicShockVortex
- Fail_LanaThel_DeliriousSlash
- Fail_Gunship_Explosion
- Fail_Gunship_Explosion_Knockback
The Onyxia's Lair list includes:
- Fail_Onyxia_DeepBreath
- Fail_Onyxia_FlameBreath
- Fail_Onyxia_TailSweep
- Fail_Onyxia_WarderCleave
- Fail_Onyxia_WarderNova
- Fail_Onyxia_Cleave
The Trial of The Crusader list includes:
- Fail_Acidmaw_AcidicSpew
- Fail_Acidmaw_ParalyticToxin
- Fail_Acidmaw_SlimePool
- Fail_Anubarak_Impale
- Fail_Dreadscale_MoltenSpew
- Fail_FactionChampions_Hellfire
- Fail_Gorehowl_FireBomb
- Fail_Icehowl_Trample
- Fail_Jaraxxus_FelInferno
- Fail_Jaraxxus_LegionFlame
- Fail_Valkyr_Orb
- Fail_Valkyr_Vortex
- Fail_FactionChampions_Bladestorm
The Ulduar list includes:
- Fail_Algalon_BigBang
- Fail_Algalon_CosmicSmash
- Fail_Auriaya_SonicScreech
- Fail_Auriaya_Voidzone
- Fail_Council_Overload
- Fail_Council_RuneOfDeath
- Fail_Deconstructor_Light
- Fail_Deconstructor_Gravity
- Fail_Deconstructor_Voidzone
- Fail_Freya_NatureBomb
- Fail_Freya_Sunbeam
- Fail_Freya_UnstableEnergy
- Fail_Hodir_BitingCold
- Fail_Hodir_FlashFreeze
- Fail_Hodir_Icicle
- Fail_Kologarn_Eyebeam
- Fail_Mimiron_BombBots
- Fail_Mimiron_Flames
- Fail_Mimiron_FrostBomb
- Fail_Mimiron_LaserBarrage
- Fail_Mimiron_NapalmShell
- Fail_Mimiron_ProximityMine
- Fail_Mimiron_Rocket
- Fail_Mimiron_Shock
- Fail_Mimiron_Siren
- Fail_Mimiron_WaterSpray
- Fail_Racorscale_Flame
- Fail_Thorim_Blizzard
- Fail_Thorim_LightningChain
- Fail_Thorim_LightningCharge
- Fail_Thorim_Smash
- Fail_Vezax_Leech
- Fail_Vezax_Saronite
- Fail_Vezax_ShadowCrash
- Fail_Yogg_DeathRay
- Fail_Yogg_LunaticGaze
- Fail_Yogg_OminousCloud
- Fail_Yogg_Sanity
The Vault of Archavon list includes:
- Fail_Koralon_MeteorFist
- Fail_Archavon_ChokingCloud
- Fail_Emalon_LightningNova
- Fail_Emalon_ChainLightning
- Fail_Koralon_FlameCinder
The Obsidian Sanctum list includes:
- Sartherion's Lava Waves
- Sartherion's Void Zones
- Sartherion's Flame Breath
- Sartherion's Tail Lash
The Eye of Eternity list includes:
- Fail_Malygos_Dot
- Fail_Malygos_ArcaneBreath
The Naxxramas list includes:
- Heigan Dance
- Kel'Thuzad's Void Zones
- Sapphiron's Breath
- Sapphiron's Cleave
- Sapphiron's Tail Sweep
- Frogger
- Thaddius Left/Right
- Thaddius Jump
- Grobbulus - Dispelling Mutating Injection
- Grobbulus - Standing in the poison cloud
- Four Horseman - Mark
- Four Horseman - Void Zone
Rewrite of FailBot logic to perform these detections.
This is an open repository. Feel free to add to it, and make fixes yourself.
API: http://www.wowace.com/projects/libfail-1-0/pages/api/lib-fail-1-0/
Sample Code
local fail = LibStub("LibFail-1.0") local fail_events = fail:GetSupportedEvents() local function onFail(event, who, failtype) -- Use the spellid as a default localized string for the fail event local spell = GetSpellInfo(fail:GetEventSpellId(event)) or "" -- Use the "failtype" argument to print appropriate messages based on it. local failmsg if failtype == fail.FAIL_TYPE_NOTMOVING then failmsg = "%s fails at moving (%s)" end print( failmsg:format(who, spell) ) end for _, event in ipairs(fail_events) do fail.RegisterCallback("SampleAddon", event, onFail) end
Would it make sense to add a fail for non tanks getting parried by a boss that has parry-haste enabled (e.g. Deathwhisper, Sindragosa, Halion)?
Currently for my guild, tank deaths as a result of parry hasted boss swings (<= 0.4s) seems to be a major issue on our way to a Halion kill on heroic 25 man. Only one of our warriors seems to be very consistent in not getting parried at all in contrary to the rest of our melee DPS.
Could somebody link me something where i can see what fail is what. E.g. the Deathwhisper Fails, Shade and Shade_Explosion, which is the "got meleed from a ghost"-fail and which is the "got hit from the explosion"
etc. etc.
Thanks.
Hi, any chance of Mystic Buffet reaching 6 stacks can announce a fail? It's for the All you can eat Achievement at Sindragosa and have no easy way of spotting who goes over 5.
Icecrown is shaping up ;)
are you using the appropriate repo url (the development url not the public url), have you set your svn password or your ssh public key, whichever is more appropriate, etc
I know anyone with a curse account and svn and good code base could add their own fails in past, it even says above "This is an open repository. Feel free to add to it, and make fixes yourself"
Has this changed? cause i had tried fixing a the missing spelids and adding malygos arcanebreath myself but i got permission denied after i had made all the changes and tried to commit :(. I helped with all the ony fails and like half the toc fails for ensidiafails, fixed all the spellids on ones maat did too :P I think he's used to waking up to new tickets from me every couple days or so. One bad raid night, or bad pug on an alt and I have ideas for new fails hehe.
The change to breath I only suggested cause i figured there was a reason maat didn't use spellid method. It was used at first but it was changed when during last code cleanup I'm assuming for some reason. Wow devs were pretty bad coders back then anyways, 93 spell ids, and 6 (maybe 7 or 8 i don't remember count) scripted events determining which set is used based on her location was a pretty ugly.
IRC(#wowace @ freenode) is a good place to talk about the addon, looking at comments or tickets is very sporadic, you have a bigger chance of alerting the devs on there, freenode has a nice webchat too making things much simplre, but if you do come around please remember that we are not always present so you might not get a response instantly
also, where is auriaya voidzone listed twice? edit: yea i see it now, its on the main page, fixed
edit2: regarding the onyxia deep breath fail, yes that could be nicer way to do it, but the existing method being a resource hog is not really relevant, this is not the thing that will slow your addons down
tried to submit changes to repository but it's no longer open? :\
Was gonna fix the long standing ticket #1. :P
This is of course assuming the event is registered in all the appropriate areas, locals, fail_events,zones_with_fails,event_spellids,fails_where_tanks_dont_fail
Btw, should really look at tickets more often. Light/gravity bomb is STILL broken on 10 man and bug was reported last June. the 10 man spellids for light/gravity bomb are missing.
searing light missing ID: http://www.wowhead.com/?spell=63023
Gravity Bomb missing id: http://www.wowhead.com/?spell=63025
http://www.wowhead.com/?spell=68868
is used by onyxia ONLY, there is no reason to use if self:GetMobId(sourceGUID) = 10184 then return end
The function is used on add cleave because that spellid is shared, with 104 creatures.
also you listed void zone twice for auriaya ;)
The deep breath method is crued and probably a resource hog for 2432534635r spellids. That's what I used at first when i originally gave fail to maat. But he made up a new method that used spellname and spellzone instead I think. I'd have to look at code again to see what he used. But something like "if spellname="breath" and zone="onyxia's Lair" :) Plus it ruled out posiblity of any missing spellids causing a missed fail.
sorry,when I into Mimiron Stage 2,I got this error message
LibFail-1.0-65 (Skada):320: Usage: UnitDebuff(\"unit\", [index] or [\"name\", \"rank\"][, \"filter\"])\nLibFail-1.0-65 (Skada):320: in function <...terface
AddOns
Skada
lib
LibFail-1.0
LibFail-1.0.lua:307>\nLibFail-1.0-65 (Skada):250: in function <...terface
AddOns
Skada
lib
LibFail-1.0
LibFail-1.0.lua:244>\n\n
-We have a special channel for fails, just like we do for damage meters
Now just add that hodir biting cold, the code should be in ensidiafail to look at.
9 times out of 10, it's not the tank being hit by it. so it's a good fail to have. a raid can safely ignore a tank if they choose to but it's still good to see who else is standing in it. I don't use failboat anyways i use recountfail so libfail is only sending it's data to recount for after battle tracking not in battle spamming. :)
i think you should have a look at ensidia fails. razorscales flames are not neccessaryli fail for people that are ragefarming .
line 88 still throwing up lua
-
-@end-debug@
+
--@end-debug@
Don't forget the repo is open. You can commit fixes and feature additions yourself if you want
I noticed that none of the ulduar fails that were added even work, at all. Although I've only tested in 25 man. I do suspect that 25 man and 10 man have diff spell IDs and that could be reason. Cause i recall DBM had a similar bug when it first released ulduar mods, it was working in 25 but 10 man was useless cause of diff spell IDs. I think perhaps needs more looking into
Please commit your latest changes. i don't like using failbot because it doesn't plug into recount like libfail does for overal analyzing problems in raid.
Will this be updated to have the same fails that the current Failbot has? I'd love to drop mainstream Failbot and just use addons that feed of this.
Is hitting other people with a mutagen explosion on grobbulus considered a failure?