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.

96 lines
3.0 KiB

local mod = DBM:NewMod(640, "DBM-Party-WotLK", 10, 285)
local L = mod:GetLocalizedStrings()
if not mod:IsClassic() then
mod.statTypes = "normal,heroic,timewalker"
end
mod:SetRevision("20230424022226")
mod:SetCreatureID(23954)--23980 is no longer used like it was in wrath. Kept just to keep first death from ending fight early
mod:SetMainBossID(23954)
mod:SetEncounterID(2025)
mod.noBossDeathKill = true--Ignore death, since he dies twice
mod:RegisterCombat("combat")
mod:RegisterKill("yell", L.YellCombatEnd)--Yell seems removed on retail, but maybe it'll return in classic WoTLK. Although I doubt it. Classic viscidous removedd explode emote on retail AND classic
if mod:IsClassic() then
mod:RegisterEventsInCombat(
"SPELL_CAST_START 42723 42669 59706 59709 42708 42729 59708 59734",
"SPELL_AURA_APPLIED 42730 59735",
"SPELL_AURA_REMOVED 42730 59735",
"UNIT_DIED",
"UNIT_SPELLCAST_SUCCEEDED"
)
else
mod.statTypes = "normal,heroic,timewalker"
mod:RegisterEventsInCombat(
"SPELL_CAST_START 42723 42669 59706 59709 42708 42729 59708 59734",
"SPELL_AURA_APPLIED 42730 59735",
"SPELL_AURA_REMOVED 42730 59735",
"UNIT_DIED",
"UNIT_SPELLCAST_SUCCEEDED boss1"
)
end
local warningWoeStrike = mod:NewTargetNoFilterAnnounce(42730, 2, nil, "RemoveCurse", 2)
local specWarnSpelllock = mod:NewSpecialWarningCast(42729, "SpellCaster", nil, 2, 1, 2)
local specWarnSmash = mod:NewSpecialWarningDodge(42723, "Tank", nil, nil, 1, 2)
local timerSmash = mod:NewCastTimer(3, 42723, nil, nil, nil, 5, nil, DBM_COMMON_L.TANK_ICON)
local timerWoeStrike = mod:NewTargetTimer(10, 42723, nil, "RemoveCurse", nil, 5, nil, DBM_COMMON_L.CURSE_ICON)
function mod:OnCombatStart(delay)
self:SetStage(1)
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(42723, 42669, 59706, 59709) then
specWarnSmash:Show()
specWarnSmash:Play("shockwave")
timerSmash:Start()
elseif args:IsSpellID(42708, 42729, 59708, 59734) then
specWarnSpelllock:Show()
specWarnSpelllock:Play("stopcast")
end
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(42730, 59735) then
warningWoeStrike:Show(args.destName)
timerWoeStrike:Start(args.destName)
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(42730, 59735) then
timerWoeStrike:Cancel()
end
end
function mod:UNIT_DIED(args)
local cid = self:GetCIDFromGUID(args.destGUID)
if cid == 23954 then--Only trigger kill for unit_died if he dies in phase 2 with at least one player alive, otherwise it's an auto wipe.
if DBM:NumRealAlivePlayers() > 0 and self:GetStage(2) then
DBM:EndCombat(self)
end
end
end
function mod:UNIT_SPELLCAST_SUCCEEDED(uId, _, spellId)
if spellId == 42863 then -- Scourge Resurrection
if self:IsClassic() then
self:SendSync("Stage2")
else
self:SetStage(2)
end
end
end
function mod:OnSync(event, arg)
if not self:IsInCombat() then return end
if event == "Stage2" then
self:SetStage(2)
end
end