local mod = DBM:NewMod(1497, "DBM-Party-Legion", 6, 726) local L = mod:GetLocalizedStrings() mod.statTypes = "heroic,mythic,challenge" mod:SetRevision("20230307064655") mod:SetCreatureID(98203) mod:SetEncounterID(1827) mod:RegisterCombat("combat") mod:RegisterEventsInCombat( "SPELL_AURA_APPLIED 196562 196805", "SPELL_AURA_REMOVED 196562", "SPELL_CAST_SUCCESS 196562 196804 196392", "SPELL_PERIODIC_DAMAGE 196824", "SPELL_PERIODIC_MISSED 196824" ) --TODO, verify some of this is actually timer based and not just mana depletion related. --TODO, verify first special timers some more local warnVolatileMagic = mod:NewTargetAnnounce(196562, 3) local warnNetherLink = mod:NewTargetAnnounce(196805, 4) local specWarnVolatileMagic = mod:NewSpecialWarningMoveAway(196562, nil, nil, nil, 1, 2) local yellVolatileMagic = mod:NewYell(196562) local specWarnNetherLink = mod:NewSpecialWarningYou(196805, nil, nil, nil, 1, 2) local specWarnNetherLinkGTFO = mod:NewSpecialWarningMove(196805, nil, nil, nil, 1, 2) local specWarnOverchargeMana = mod:NewSpecialWarningInterrupt(196392, "HasInterrupt", nil, nil, 1, 2) local timerVolatileMagicCD = mod:NewCDTimer(32, 196562, nil, nil, nil, 3)--Review, Might be health based? or just really variable local timerNetherLinkCD = mod:NewCDTimer(30, 196805, nil, nil, nil, 3) local timerOverchargeManaCD = mod:NewCDTimer(40, 196392, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON) mod:AddRangeFrameOption(8, 196562) function mod:OnCombatStart(delay) --Watch closely, review. He may be able to swap nether link and volatile magic? timerVolatileMagicCD:Start(7.7-delay)--APPLIED timerNetherLinkCD:Start(17.5-delay)--APPLIED timerOverchargeManaCD:Start(30-delay) end function mod:OnCombatEnd() if self.Options.RangeFrame then DBM.RangeCheck:Hide() end end function mod:SPELL_CAST_SUCCESS(args) local spellId = args.spellId if spellId == 196562 then timerVolatileMagicCD:Start() elseif spellId == 196804 then timerNetherLinkCD:Start() elseif spellId == 196392 then specWarnOverchargeMana:Show(args.sourceName) specWarnOverchargeMana:Play("kickcast") timerOverchargeManaCD:Start() end end function mod:SPELL_AURA_APPLIED(args) local spellId = args.spellId if spellId == 196562 then warnVolatileMagic:CombinedShow(0.5, args.destName) if args:IsPlayer() then specWarnVolatileMagic:Show() specWarnVolatileMagic:Play("runout") yellVolatileMagic:Yell() if self.Options.RangeFrame then DBM.RangeCheck:Show(8) end end elseif spellId == 196805 then warnNetherLink:CombinedShow(0.5, args.destName) if args:IsPlayer() then specWarnNetherLink:Show() specWarnNetherLink:Play("targetyou") end end end function mod:SPELL_AURA_REMOVED(args) local spellId = args.spellId if spellId == 196562 and args:IsPlayer() and self.Options.RangeFrame then DBM.RangeCheck:Hide() end end function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId) if spellId == 196824 and destGUID == UnitGUID("player") and self:AntiSpam(2, 1) then specWarnNetherLinkGTFO:Show() specWarnNetherLinkGTFO:Play("runaway") end end mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE