You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.4 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("Attumen the Huntsman", 1651, 1835)
if not mod then return end
mod:RegisterEnableMob(114262, 114264) -- Attumen, Midnight
mod.engageId = 1960
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
"stages",
227404, -- Intangible Presence
227493, -- Mortal Strike
228852, -- Shared Suffering
227365, -- Spectral Charge
228895, -- Enrage
}
end
function mod:OnBossEnable()
self:RegisterEvent("INSTANCE_ENCOUNTER_ENGAGE_UNIT", "CheckBossStatus")
self:RegisterUnitEvent("UNIT_SPELLCAST_SUCCEEDED", nil, "boss1", "boss2")
self:Log("SPELL_CAST_START", "MortalStrike", 227493)
self:Log("SPELL_AURA_APPLIED", "MortalStrikeApplied", 227493)
self:Log("SPELL_AURA_REMOVED", "MortalStrikeRemoved", 227493)
self:Log("SPELL_CAST_START", "SharedSuffering", 228852)
self:Log("SPELL_AURA_APPLIED_DOSE", "Enrage", 228895)
end
function mod:OnEngage()
self:CDBar(227404, 5)
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:UNIT_SPELLCAST_SUCCEEDED(_, _, _, spellId)
if spellId == 227404 then -- Intangible Presence
self:MessageOld(spellId, "yellow", self:Dispeller("magic") and "warning")
self:Bar(spellId, 30)
elseif spellId == 227338 then -- Riderless
self:MessageOld("stages", "cyan", "long", spellId, false)
self:StopBar(227404) -- Intangible Presence
elseif spellId == 227584 then -- Mounted
self:MessageOld("stages", "cyan", "long", spellId, false)
elseif spellId == 227601 then -- Intermission, starts Spectral Charges
self:MessageOld(227365, "yellow", "alert")
end
end
function mod:MortalStrike(args)
self:MessageOld(args.spellId, "red", (self:Tank() or self:Healer()) and "alarm", CL.casting:format(args.spellName))
end
function mod:MortalStrikeApplied(args)
if self:Tank(args.destName) then
self:TargetBar(args.spellId, 10, args.destName)
end
end
function mod:MortalStrikeRemoved(args)
self:StopBar(args.spellId, args.destName)
end
function mod:SharedSuffering(args)
self:MessageOld(args.spellId, "orange", "info")
end
function mod:Enrage(args)
self:MessageOld(args.spellId, "red", "long")
end