Compare with Previous | Blame | View Log
local mod = RW:Boss("Lord Jaraxxus", "Crusaders Coliseum") local L mod.BossIcon = [[Interface\Icons\spell_shadow_shadowmend]] local tEruptCD, tPortalCD, tNetherCD local tFleshDur, tFlameDur local wFlame, wKiss, wNether local iFlame, iFlesh local tStart function mod:OnRegister() L = mod:RegisterLocale(self:GetName(), "enUS", true) if L then L.YellPull = "Grand Warlock Wilfred Fizzlebang will summon forth your next challenge. Stand by for his entry." L.start_msg = "%s active" L.start = "Fight start timer" end L = mod:GetLocale() mod.L = L mod:SetTrigger(L.YellPull, 34780) mod:SetWin(34780) mod:SetDelay(100) tEruptCD, tPortalCD, tNetherCD = self:CDTimer(120, 67901), self:CDTimer(120, 67900), self:CDTimer(44, 66228) tFleshDur, tFlameDur = self:DurTargetTimer(12, 67049), self:DurTargetTimer(8, 68123, nil, nil, false) wFlame, wKiss, wNether = self:RunawayWarning(68123), self:Warning(67905), self:Warning(66228) iFlame = self:Icon("SKULL", 68123, false) iFlesh = self:Icon("STAR", 67049, false) tStart = self:CustomTimer(83, L.start_msg, L.start, [[Interface\Icons\Achievement_BG_killingblow_most]], L.start) end function mod:OnEngage(trigger) self:Track("Portal", 68404, 68405, 68406, 67898, 67899, 67900, 66269) self:Track("Erupt", 66258, 67901, 67902, 67903) self:Track("Flesh", 67049, 67050, 67051, 66237) self:Track("Flame", 68123, 68124, 68125, 66197) self:Track("Nether", 67009) self:Track("Kiss", 67905, 67906, 67907, 66334) if trigger == L.YellPull then tStart:Start(RW.LBB[self:GetName()] or self:GetName()) tPortalCD:Schedule(85, 20) tEruptCD:Schedule(85, 80) else tPortalCD:Start(20) tEruptCD:Start(80) end end local ShowShieldHP, HideShieldHP do local incinerateTarget local incinerateTargetName local healed = 0 local maxAbsorb = 0 local function ShieldHP() return healed, maxAbsorb, "Flesh: "..incinerateTargetName end function mod:SPELL_HEAL(event, args) if args.dGUID == incinerateTarget then healed = healed - (args.absorbed or 0) end end mod.SPELL_PERIODIC_HEAL = mod.SPELL_HEAL function ShowShieldHP(targetGUID, name) incinerateTarget = targetGUID incinerateTargetName = name maxAbsorb = GetInstanceDifficulty() == 4 and 85000 or GetInstanceDifficulty() == 3 and 40000 or GetInstanceDifficulty() == 2 and 60000 or GetInstanceDifficulty() == 1 and 30000 or 0 healed = maxAbsorb RW.Callbacks:Fire("MPBExternalHide", "JarShieldHP") RW.Callbacks:Fire("MPBExternal", "JarShieldHP", ShieldHP, nil, nil, select(3, GetSpellInfo(67049))) mod:Schedule("HideFleshFrame", 15, HideShieldHP) end HideShieldHP = function(name) RW.Callbacks:Fire("MPBExternalHide", "JarShieldHP") end end function mod:Portal(event, args) if event == "SPELL_CAST_SUCCESS" then tPortalCD:Start() end end function mod:Erupt(event, args) if event == "SPELL_CAST_SUCCESS" then tEruptCD:Start() end end function mod:Flesh(event, args) if event == "SPELL_AURA_APPLIED" then tFleshDur:Start(args.dName) iFlesh:Show(args.dName) ShowShieldHP(args.dGUID, args.dName) elseif event == "SPELL_AURA_REMOVED" then tFleshDur:Stop() iFlesh:Hide() HideShieldHP(args.dName) end end function mod:Flame(event, args) if event == "SPELL_AURA_APPLIED" then tFlameDur:Start(args.dName) iFlame:Show(args.dName) if args:IsPlayer() then wFlame:Show() end elseif event == "SPELL_AURA_REMOVED" then iFlame:Hide(args.dName) end end function mod:Nether(event, args) if event == "SPELL_CAST_SUCCESS" then tNetherCD:Start() wNether:Show() end end function mod:Kiss(event, args) if event == "SPELL_AURA_APPLIED" then if args:IsPlayer() then wKiss:Show() end end end