|
|
|
|
local mod = DBM:NewMod(1492, "DBM-Party-Legion", 3, 716)
|
|
|
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
|
|
|
|
|
|
mod:SetRevision("20240515181120")
|
|
|
|
|
mod:SetCreatureID(96028)
|
|
|
|
|
mod:SetEncounterID(1814)
|
|
|
|
|
|
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
|
|
|
|
|
|
mod:RegisterEventsInCombat(
|
|
|
|
|
"SPELL_AURA_APPLIED 192706",
|
|
|
|
|
"SPELL_AURA_REMOVED 192706",
|
|
|
|
|
"SPELL_CAST_START 192617 192985",
|
|
|
|
|
"CHAT_MSG_RAID_BOSS_EMOTE",
|
|
|
|
|
"UNIT_SPELLCAST_SUCCEEDED boss1"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
local warnMythicTornado = mod:NewSpellAnnounce(192680, 3)--target scanning not available
|
|
|
|
|
local warnArcaneBomb = mod:NewTargetAnnounce(192706, 4)
|
|
|
|
|
|
|
|
|
|
local specWarnMassiveDeluge = mod:NewSpecialWarningDodge(192617, "Tank", nil, nil, 3, 2)
|
|
|
|
|
local specWarnArcaneBomb = mod:NewSpecialWarningMoveAway(192706, nil, nil, nil, 3, 2)
|
|
|
|
|
local yellArcaneBomb = mod:NewYell(192706)
|
|
|
|
|
|
|
|
|
|
local timerMythicTornadoCD = mod:NewCDTimer(25, 192680, nil, nil, nil, 3)
|
|
|
|
|
local timerMassiveDelugeCD = mod:NewCDTimer(50, 192617, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
|
|
|
local timerArcaneBomb = mod:NewTargetTimer(15, 192706, nil, "Healer", nil, 5, nil, DBM_COMMON_L.HEALER_ICON)--Magic dispel for healer to dispel at correct time
|
|
|
|
|
local timerArcaneBombCD = mod:NewCDTimer(23, 192706, nil, nil, nil, 3)--23-37
|
|
|
|
|
|
|
|
|
|
mod:AddRangeFrameOption(10, 192706)
|
|
|
|
|
|
|
|
|
|
local serpMod = DBM:GetModByName(1479)
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatStart(delay)
|
|
|
|
|
self:SetStage(1)
|
|
|
|
|
timerMythicTornadoCD:Start(8.2-delay)
|
|
|
|
|
timerMassiveDelugeCD:Start(12-delay)
|
|
|
|
|
timerArcaneBombCD:Start(23-delay)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:OnCombatEnd()
|
|
|
|
|
if self.Options.RangeFrame then
|
|
|
|
|
DBM.RangeCheck:Hide()
|
|
|
|
|
end
|
|
|
|
|
serpMod:UpdateWinds()--Defeating wrath should terminate all zonewide events
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 192706 then
|
|
|
|
|
timerArcaneBombCD:Start(args.destName)
|
|
|
|
|
if args:IsPlayer() and self.Options.RangeFrame then
|
|
|
|
|
DBM.RangeCheck:Show(10)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 192706 then
|
|
|
|
|
timerArcaneBombCD:Cancel(args.destName)
|
|
|
|
|
if args:IsPlayer() and self.Options.RangeFrame then
|
|
|
|
|
DBM.RangeCheck:Hide()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
|
|
|
local spellId = args.spellId
|
|
|
|
|
if spellId == 192985 then
|
|
|
|
|
self:SetStage(2)
|
|
|
|
|
serpMod:UpdateWinds()--At present it may not actually reset here. Just in case though
|
|
|
|
|
elseif spellId == 192617 then
|
|
|
|
|
specWarnMassiveDeluge:Show()
|
|
|
|
|
specWarnMassiveDeluge:Play("shockwave")
|
|
|
|
|
if self:GetStage(2) then
|
|
|
|
|
timerMassiveDelugeCD:Start(35)
|
|
|
|
|
else
|
|
|
|
|
timerMassiveDelugeCD:Start()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--2 seconds faster than combat log
|
|
|
|
|
function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, _, _, _, targetname)
|
|
|
|
|
if msg:find("spell:192708") then
|
|
|
|
|
timerArcaneBombCD:Start()
|
|
|
|
|
if targetname == UnitName("player") then
|
|
|
|
|
specWarnArcaneBomb:Show()
|
|
|
|
|
specWarnArcaneBomb:Play("runout")
|
|
|
|
|
yellArcaneBomb:Yell()
|
|
|
|
|
else
|
|
|
|
|
warnArcaneBomb:Show(targetname)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
|
|
|
|
|
if spellId == 192680 then--Mythic Tornado
|
|
|
|
|
warnMythicTornado:Show()
|
|
|
|
|
if self:GetStage(2) then
|
|
|
|
|
timerMythicTornadoCD:Start(15)
|
|
|
|
|
else
|
|
|
|
|
timerMythicTornadoCD:Start()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|