header
premium banner

LibFail-1.0 will start downloading in 5 seconds...

STILL DOWNLOADING MANUALLY??

Join over 10 million players who use the CurseForge app!

Download App Now

Description

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