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