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.

90 lines
2.9 KiB

local isRetail = WOW_PROJECT_ID == (WOW_PROJECT_MAINLINE or 1)
local isClassic = WOW_PROJECT_ID == (WOW_PROJECT_CLASSIC or 2)
local isBCC = WOW_PROJECT_ID == (WOW_PROJECT_BURNING_CRUSADE_CLASSIC or 5)
--local isCata = WOW_PROJECT_ID == (WOW_PROJECT_CATA_CLASSIC or 99)--NYI in Cata beta
local tempTOC = DBM:GetTOC()
local isCata = (tempTOC >= 40400) and (tempTOC < 50000)
local mod = DBM:NewMod(422, "DBM-Party-Vanilla", (isCata or isRetail) and 4 or 7, 231)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20240316010232")
mod:SetCreatureID(7800)
mod:SetEncounterID(mod:IsClassic() and 2772 or 382)
mod:RegisterCombat("combat")
if isRetail then
mod:RegisterEventsInCombat(
"SPELL_CAST_START 93655",
"SPELL_CAST_SUCCESS 74720",
"SPELL_AURA_APPLIED 74720"
)
elseif isClassic or isBCC then
mod:RegisterEventsInCombat(
"SPELL_CAST_SUCCESS 10101 11130 11518 11521 11798 11524 11526 11527"
)
else
mod:RegisterEventsInCombat(
"SPELL_CAST_SUCCESS 10101 11130"
)
end
--Only retail, he was reworked in cataclysm, so it'll likely also apply to cataclysm classic
local warningPound, specWarnSteamBlast, timerSteamBlastCD, timerPoundCD
local warningKnockAway, timerKnockAwayCD
if isRetail or isCata then
warningPound = mod:NewTargetNoFilterAnnounce(32346, 2)
specWarnSteamBlast = mod:NewSpecialWarningInterrupt(93655, "HasInterrupt", nil, nil, 1, 2)
timerSteamBlastCD = mod:NewAITimer(180, 93655, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)
timerPoundCD = mod:NewAITimer(180, 74720, nil, "Tank|Healer", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
else--All Classic Flavors have this (including wrath and maybe cata?
warningKnockAway = mod:NewSpellAnnounce(10101, 2)
timerKnockAwayCD = mod:NewAITimer(180, 10101, nil, nil, nil, 2)
end
--Only vanilla and tbc have this
local warningActivateBomb
if isClassic or isBCC then
warningActivateBomb = mod:NewSpellAnnounce(11518, 2)
end
function mod:OnCombatStart(delay)
if isRetail or isCata then
timerSteamBlastCD:Start(1-delay)
timerPoundCD:Start(1-delay)
else
timerKnockAwayCD:Start(1-delay)
end
end
function mod:SPELL_CAST_START(args)
if args.spellId == 93655 then--Doesn't need IsSpell, its only registered on retail
timerSteamBlastCD:Start()
if self:CheckInterruptFilter(args.sourceGUID, false, true) then
specWarnSteamBlast:Show(args.sourceName)
specWarnSteamBlast:Play("kickcast")
end
end
end
function mod:SPELL_CAST_SUCCESS(args)
if args:IsSpell(10101, 11130) then
warningKnockAway:Show()
timerKnockAwayCD:Start()
elseif args:IsSpell(11518, 11521, 11798, 11524, 11526, 11527) and self:AntiSpam(3, 1) then
warningActivateBomb:Show()
elseif args:IsSpell(74720) then
timerSteamBlastCD:Start()
end
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpell(74720) then
warningPound:Show(args.destName)
timerPoundCD:Start()
end
end