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.
84 lines
3.4 KiB
84 lines
3.4 KiB
local mod = DBM:NewMod(656, "DBM-Party-MoP", 8, 311)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20220218034305")
|
|
mod:SetCreatureID(59150)
|
|
mod:SetEncounterID(1420)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 113690 113691 113364",
|
|
"SPELL_CAST_SUCCESS 113626",
|
|
"SPELL_AURA_APPLIED 113682 113641",
|
|
"SPELL_AURA_REMOVED 113641"
|
|
)
|
|
|
|
local warnQuickenedMind = mod:NewSpellAnnounce(113682, 3)--This is Magic dispelable, you can't interrupt anything if you don't dispel this.
|
|
local warnBookBurner = mod:NewSpellAnnounce(113364, 3)
|
|
|
|
local specWarnFireballVolley = mod:NewSpecialWarningInterrupt(113691, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnPyroblast = mod:NewSpecialWarningInterrupt(113690, false, nil, nil, 1, 2)
|
|
local specWarnQuickenedMind = mod:NewSpecialWarningDispel(113682, "MagicDispeller", nil, nil, 1, 2)
|
|
--local specWarnDragonsBreathDispel = mod:NewSpecialWarningDispel(113641, "MagicDispeller", nil, nil, 1, 2)
|
|
local specWarnDragonsBreath = mod:NewSpecialWarningDodge(113641, nil, nil, nil, 2, 8)
|
|
|
|
local timerPyroblastCD = mod:NewCDTimer(6, 113690, nil, "HasInterrupt", nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
|
|
--local timerQuickenedMindCD = mod:NewCDTimer(30, 113682)--Needs more data. I see both 30 sec and 1 min cds, so I just need larger sample size.
|
|
--local timerFireballVolleyCD = mod:NewCDTimer(30, 113691)--Seems very random, maybe affected by school lockout so kicking pyroblast prevents this?
|
|
local timerBookBurnerCD = mod:NewCDTimer(15.5, 113364, nil, nil, nil, 5)
|
|
local timerDragonsBreath = mod:NewBuffActiveTimer(10, 113641, nil, nil, nil, 6)
|
|
local timerDragonsBreathCD = mod:NewNextTimer(50, 113641, nil, nil, nil, 2)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
timerPyroblastCD:Start(5-delay)
|
|
-- timerQuickenedMindCD:Start(9-delay)
|
|
-- timerFireballVolleyCD:Start(15.5-delay)
|
|
timerBookBurnerCD:Start(20.5-delay)
|
|
timerDragonsBreathCD:Start(30-delay)
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args.spellId == 113690 then
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnPyroblast:Show(args.sourceName)
|
|
specWarnPyroblast:Play("kickcast")
|
|
end
|
|
timerPyroblastCD:Start()
|
|
elseif args.spellId == 113691 then
|
|
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnFireballVolley:Show(args.sourceName)
|
|
specWarnFireballVolley:Play("kickcast")
|
|
end
|
|
-- timerFireballVolleyCD:Start()
|
|
elseif args.spellId == 113364 then
|
|
warnBookBurner:Show()
|
|
timerBookBurnerCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if args.spellId == 113626 then--Teleport, cast before dragons breath. Provides an earlier warning by almost 1 sec.
|
|
timerPyroblastCD:Cancel()--Will just cast it instantly when dragon breath ends, Cd is irrelevant at this point.
|
|
specWarnDragonsBreath:Show()
|
|
specWarnDragonsBreath:Play("behindboss")
|
|
timerDragonsBreathCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 113682 and not args:IsDestTypePlayer() then
|
|
specWarnQuickenedMind:Show(args.destName)
|
|
specWarnQuickenedMind:Play("dispelboss")
|
|
-- timerQuickenedMindCD:Start()
|
|
elseif args.spellId == 113641 then--Actual dragons breath buff, don't want to give a dispel warning too early
|
|
-- specWarnDragonsBreath:Show(args.destName)
|
|
timerDragonsBreath:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args.spellId == 113641 then
|
|
timerDragonsBreath:Cancel()
|
|
end
|
|
end
|
|
|