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.

97 lines
3.2 KiB

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