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.
89 lines
2.5 KiB
89 lines
2.5 KiB
-------------------------------------------------------------------------------
|
|
-- Module Declaration
|
|
--
|
|
|
|
local mod, CL = BigWigs:NewBoss("Maiden of Grief", 599, 605)
|
|
if not mod then return end
|
|
mod:RegisterEnableMob(27975)
|
|
mod.engageId = 1996
|
|
--mod.respawnTime = 0 -- resets, doesn't respawn
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Locals
|
|
--
|
|
|
|
local playersIncapacitated, shouldBeTakingDamage = 0, false
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Initialization
|
|
--
|
|
|
|
function mod:GetOptions()
|
|
return {
|
|
59726, -- Shock of Sorrow
|
|
59772, -- Storm of Grief
|
|
}
|
|
end
|
|
|
|
function mod:OnBossEnable()
|
|
self:Log("SPELL_CAST_START", "ShockOfSorrow", 50760, 59726) -- normal, heroic
|
|
self:Log("SPELL_AURA_APPLIED", "ShockOfSorrowDebuff", 50760, 59726)
|
|
self:Log("SPELL_AURA_REMOVED", "ShockOfSorrowDebuffRemoved", 50760, 59726)
|
|
self:Log("SPELL_PERIODIC_DAMAGE", "StormOfGrief", 50752, 59772) -- normal, heroic
|
|
self:Log("SPELL_PERIODIC_MISSED", "StormOfGrief", 50752, 59772)
|
|
end
|
|
|
|
function mod:OnEngage()
|
|
playersIncapacitated, shouldBeTakingDamage = 0, false
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Event Handlers
|
|
--
|
|
|
|
function mod:ShockOfSorrow(args)
|
|
shouldBeTakingDamage = true
|
|
self:MessageOld(59726, "red", "warning", CL.casting:format(args.spellName))
|
|
self:Bar(59726, 4, CL.casting:format(args.spellName))
|
|
end
|
|
|
|
do
|
|
local playerList = mod:NewTargetList()
|
|
|
|
function mod:ShockOfSorrowDebuff(args)
|
|
if not self:Player(args.destFlags) then return end
|
|
|
|
playerList[#playerList + 1] = args.destName
|
|
playersIncapacitated = playersIncapacitated + 1
|
|
if #playerList == 1 then
|
|
self:ScheduleTimer("TargetMessageOld", 0.2, 59726, playerList, "orange")
|
|
self:Bar(59726, args.spellId == 59726 and 10 or 6)
|
|
end
|
|
end
|
|
|
|
function mod:ShockOfSorrowDebuffRemoved(args)
|
|
if not self:Player(args.destFlags) then return end
|
|
|
|
playersIncapacitated = playersIncapacitated - 1
|
|
if playersIncapacitated == 0 then
|
|
self:StopBar(args.spellName)
|
|
end
|
|
|
|
if self:Me(args.destGUID) then
|
|
shouldBeTakingDamage = false
|
|
end
|
|
end
|
|
end
|
|
|
|
do
|
|
local prev = 0
|
|
function mod:StormOfGrief(args)
|
|
if self:Me(args.destGUID) and not shouldBeTakingDamage then
|
|
local t = GetTime()
|
|
if t-prev > 2 then
|
|
prev = t
|
|
self:MessageOld(59772, "blue", "alert", CL.underyou:format(args.spellName))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|