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