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.

137 lines
4.1 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod, CL = BigWigs:NewBoss("An Affront of Challengers", 2293, 2397)
if not mod then return end
mod:RegisterEnableMob(
164451, -- Dessia the Decapitator
164463, -- Paceran the Virulent
164461, -- Sathel the Accursed
164464 -- Xira the Underhanded
)
mod.engageId = 2391
--mod.respawnTime = 30
--------------------------------------------------------------------------------
-- Initialization
--
function mod:GetOptions()
return {
-- Dessia the Decapitator
320063, -- Slam
320069, -- Mortal Strike
324085, -- Enrage
{326892, "FLASH"}, -- Fixate
-- Paceran the Virulent
320248, -- Genetic Alteration
-- Sathel the Accursed
{333231, "SAY", "FLASH"}, -- Searing Death
320293, -- One with Death
320272, -- Spectral Transference
-- Xira the Underhanded
333540, -- Opportunity Strikes
}, {
[320063] = -21582, -- Dessia the Decapitator
[320248] = -21581, -- Paceran the Virulent
[333231] = -21591, -- Sathel the Accursed
[333540] = -23841, -- Xira the Underhanded
}
end
function mod:OnBossEnable()
self:Log("SPELL_CAST_START", "Slam", 320063)
self:Log("SPELL_CAST_START", "MortalStrike", 320069)
self:Log("SPELL_AURA_APPLIED", "EnrageApplied", 324085)
self:Log("SPELL_AURA_APPLIED", "FixateApplied", 326892)
self:Log("SPELL_CAST_SUCCESS", "GeneticAlteration", 320248)
self:Log("SPELL_CAST_START", "SearingDeath", 333231)
self:Log("SPELL_AURA_APPLIED", "SearingDeathApplied", 333231)
self:Log("SPELL_CAST_SUCCESS", "OneWithDeath", 320293)
self:Log("SPELL_AURA_APPLIED", "SpectralTransferenceApplied", 320272)
self:Log("SPELL_AURA_APPLIED", "AmbushApplied", 333540)
end
function mod:OnEngage()
self:Bar(320063, 8.5) -- Slam
self:Bar(320069, 21) -- Mortal Strike
self:Bar(333231, 9.7) -- Searing Death
end
--------------------------------------------------------------------------------
-- Event Handlers
--
function mod:Slam(args)
self:Message(args.spellId, "purple")
self:PlaySound(args.spellId, "alert")
self:CDBar(args.spellId, 8.5) -- Will be delayed if nobody is in melee range
end
function mod:MortalStrike(args)
self:Message(args.spellId, "purple")
self:PlaySound(args.spellId, "alert")
self:CDBar(args.spellId, 21)
end
function mod:EnrageApplied(args)
self:Message(args.spellId, "yellow", CL.on:format(args.spellName, args.destName))
self:PlaySound(args.spellId, "long")
end
function mod:FixateApplied(args)
if args.sourceGUID ~= args.destGUID then -- Boss buffs itself as well as the target
self:TargetMessage(args.spellId, "red", args.destName)
self:PlaySound(args.spellId, "warning", nil, args.destName)
self:TargetBar(args.spellId, 10, args.destName)
if self:Me(args.destGUID) then
self:Flash(args.spellId)
end
end
end
function mod:FixateRemoved(args)
if args.sourceGUID ~= args.destGUID then
self:StopBar(args.spellId, args.destName)
end
end
function mod:GeneticAlteration(args)
self:Message(args.spellId, "orange")
self:PlaySound(args.spellId, "alert")
end
function mod:SearingDeath(args)
self:Message(args.spellId, "orange", CL.casting:format(args.spellName))
self:PlaySound(args.spellId, "alert")
self:CDBar(args.spellId, 12.2)
end
function mod:SearingDeathApplied(args)
local isOnMe = self:Me(args.destGUID)
self:TargetMessage(args.spellId, isOnMe and "red" or "yellow", args.destName)
self:PlaySound(args.spellId, isOnMe and "alarm" or "info", nil, args.destName)
if isOnMe then
self:Say(args.spellId)
self:Flash(args.spellId)
end
end
function mod:OneWithDeath(args)
self:Message(args.spellId, "yellow")
self:PlaySound(args.spellId, "long")
end
function mod:SpectralTransferenceApplied(args)
if self:Dispeller("magic", true, args.spellId) then
self:Message(args.spellId, "yellow", CL.on:format(args.spellName, args.destName))
self:PlaySound(args.spellId, "info")
end
end
function mod:AmbushApplied(args)
self:TargetMessage(args.spellId, "red", args.destName)
self:PlaySound(args.spellId, "alarm", nil, args.destName)
end