local mod = DBM:NewMod(119, "DBM-Party-Cataclysm", 5, 69) local L = mod:GetLocalizedStrings() mod.statTypes = "normal,heroic,timewalker" mod:SetRevision("20240412075414") mod:SetCreatureID(43612) mod:SetEncounterID(1053) mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_AURA_APPLIED 82622 82506 82255 88814 82320", "SPELL_AURA_REMOVED 82622 82506", "SPELL_DAMAGE 81942", "SPELL_MISSED 81942" ) --TODO, verify how soul sever stuff works, i don't remember it completely local warnPlagueAges = mod:NewTargetAnnounce(82622, 3, nil, "Healer", 2) local warnLashings = mod:NewTargetAnnounce(82506, 3, nil, "Tank|Healer", 2)--I think it's tank debuff? review local warnRepentance = mod:NewSpellAnnounce(82320, 2) -- kind of add phase local warnSoulSever = mod:NewTargetAnnounce(82255, 4) local specWarnHeavenFury = mod:NewSpecialWarningMove(81942, nil, nil, nil, 1, 2) local specWarnHallowedGround = mod:NewSpecialWarningMove(88814, nil, nil, nil, 1, 2) local specWarnSoulSever = mod:NewSpecialWarningYou(82255, nil, nil, nil, 3, 2) local specWarnSoulSeverDps = mod:NewSpecialWarningSwitch(82255, "Dps", nil, nil, 1, 2) local timerPlagueAges = mod:NewTargetTimer(9, 82622, nil, "Healer", 2, 5) local timerLashings = mod:NewTargetTimer(20, 82506, nil, "Tank|Healer", 2, 5) local timerSoulSever = mod:NewTargetTimer(4, 82255, nil, nil, nil, 1) local timerSoulSeverCD = mod:NewCDTimer(11, 82255, nil, nil, nil, 3) local spamSIS = 0--We use custom updating so don't use prototype local BlazeHeavens = DBM:EJ_GetSectionInfo(2459) local HarbringerDarkness = DBM:EJ_GetSectionInfo(2473) function mod:OnCombatStart(delay) spamSIS = 0 end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 82622 then warnPlagueAges:Show(args.destName) timerPlagueAges:Start(args.destName) elseif spellId == 82506 then warnLashings:Show(args.destName) timerLashings:Start(args.destName) elseif spellId == 82320 and args.destName == L.name then warnRepentance:Show() spamSIS = GetTime() elseif spellId == 82255 then if args:IsPlayer() then specWarnSoulSever:Show() specWarnSoulSever:Play("targetyou") else warnSoulSever:Show(args.destName) end specWarnSoulSeverDps:Schedule(4) specWarnSoulSeverDps:ScheduleVoice(4, "killmob") timerSoulSever:Start(args.destName) timerSoulSeverCD:Start() elseif spellId == 88814 and args:IsPlayer() and GetTime() - spamSIS > 5.5 then spamSIS = GetTime() specWarnHallowedGround:Show() specWarnHallowedGround:Play("runaway") end end function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 82622 then timerPlagueAges:Cancel(args.destName) elseif spellId == 82506 then timerLashings:Cancel(args.destName) end end function mod:SPELL_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId) if spellId == 81942 and destGUID == UnitGUID("player") and GetTime() - spamSIS > 3 then spamSIS = GetTime() specWarnHeavenFury:Show() specWarnHeavenFury:Play("runaway") end end mod.SPELL_MISSED = mod.SPELL_DAMAGE