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.
75 lines
2.3 KiB
75 lines
2.3 KiB
local mod = DBM:NewMod(692, "DBM-Party-MoP", 6, 324)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod.statTypes = "normal,heroic,challenge,timewalker"
|
|
|
|
mod:SetRevision("20230424022226")
|
|
mod:SetCreatureID(61485)
|
|
mod:SetEncounterID(1447)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_AURA_APPLIED 119476",
|
|
"SPELL_AURA_REMOVED 119476",
|
|
"SPELL_CAST_START 124283 119875"
|
|
)
|
|
|
|
local warnBladeRush = mod:NewSpellAnnounce(124283, 3)
|
|
|
|
local specWarnTempest = mod:NewSpecialWarningSpell(119875, "Healer", nil, nil, 2, 2)
|
|
local specWarnBulwark = mod:NewSpecialWarningSpell(119476, nil, nil, nil, 2, 2)
|
|
|
|
local timerBladeRushCD = mod:NewCDTimer(12, 124283, nil, nil, nil, 3)--12-20sec variation
|
|
local timerTempestCD = mod:NewCDTimer(43, 119875, nil, nil, nil, 2)--Tempest has a higher cast priority than blade rush, if it's do, it'll delay blade rush.
|
|
|
|
mod:AddInfoFrameOption(119875, true)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
self:SetStage(1)
|
|
timerBladeRushCD:Start(10.6-delay)
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args.spellId == 119476 then
|
|
self:SetStage(2)
|
|
specWarnBulwark:Show()
|
|
specWarnBulwark:Play("attackshield")
|
|
timerBladeRushCD:Cancel()
|
|
timerTempestCD:Cancel()
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:SetHeader(args.spellName)
|
|
DBM.InfoFrame:Show(2, "enemyabsorb", nil, UnitGetTotalAbsorbs("boss1"))
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if args.spellId == 119476 then--When bullwark breaks, he will instantly cast either tempest or blade rush, need more logs to determine if it's random or set.
|
|
if self.Options.InfoFrame then
|
|
DBM.InfoFrame:Hide()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args.spellId == 124283 then--he do not target anything. so can't use target scan.
|
|
warnBladeRush:Show()
|
|
timerBladeRushCD:Start()
|
|
elseif args.spellId == 119875 then
|
|
specWarnTempest:Show()
|
|
specWarnTempest:Play("specialsoon")
|
|
timerBladeRushCD:Start(7)--always 7-7.5 seconds after tempest.
|
|
if self:GetStage(2) then
|
|
timerTempestCD:Start(33)--seems to be cast more often between 66-33% health. (might be 100-33 but didn't get 2 casts before first bulwark)
|
|
else
|
|
timerTempestCD:Start()
|
|
end
|
|
end
|
|
end
|
|
|