local mod = DBM : NewMod ( 2109 , " DBM-Party-BfA " , 7 , 1012 )
local L = mod : GetLocalizedStrings ( )
mod : SetRevision ( " 20240417180519 " )
mod : SetCreatureID ( 129214 )
mod : SetEncounterID ( 2105 )
mod : RegisterCombat ( " combat " )
mod : RegisterEventsInCombat (
" SPELL_AURA_APPLIED 256493 " ,
" SPELL_AURA_APPLIED_DOSE 256493 " ,
" SPELL_AURA_REFRESH 256493 " ,
" SPELL_CAST_START 262347 257337 271903 " ,
" SPELL_CAST_SUCCESS 269493 262347 " ,
" UNIT_SPELLCAST_SUCCEEDED boss1 "
)
--Change Static Pulse to dodge warning if it's dodgable by all parties
--New voice, "Gather Item"?
--[[
( ability.id = 262347 or ability.id = 257337 or ability.id = 271903 ) and type = " begincast "
or ability.id = 269493 and type = " cast "
or ability.id = 256493 and not type = " damage "
--]]
local warnFootbombLauncher = mod : NewSpellAnnounce ( 269493 , 2 )
local warnCoinMagnet = mod : NewSpellAnnounce ( 271903 , 2 )
local specWarnStaticPulse = mod : NewSpecialWarningSpell ( 262347 , nil , nil , nil , 2 , 2 )
local specWarnShockingClaw = mod : NewSpecialWarningDodge ( 257337 , nil , nil , nil , 2 , 2 )
local specWarnThrowCoins = mod : NewSpecialWarningMove ( 271784 , " Tank " , nil , nil , 1 , 2 )
--local specWarnGTFO = mod:NewSpecialWarningGTFO(238028, nil, nil, nil, 1, 8)
local timerStaticPulseCD = mod : NewCDTimer ( 23.1 , 262347 , nil , nil , nil , 2 )
local timerFootbombLauncherCD = mod : NewCDTimer ( 32.8 , 269493 , nil , nil , nil , 5 )
local timerBlazingAzeriteCD = mod : NewBuffFadesTimer ( 15 , 256493 , nil , nil , nil , 5 )
local timerShockingClawCD = mod : NewCDTimer ( 21.8 , 257337 , nil , nil , nil , 3 ) --14.3, 41.3 (not sure if still true, not going to leave it ai though, 23 it is til i see lower)
local timerThrowCoinsCD = mod : NewCDTimer ( 17.4 , 271784 , nil , nil , nil , 3 , nil , DBM_COMMON_L.HEROIC_ICON .. DBM_COMMON_L.TANK_ICON ) --18.8, 17.4, 25.5, 25.5
mod.vb . coinCast = 0
function mod : OnCombatStart ( delay )
self.vb . coinCast = 0
timerStaticPulseCD : Start ( 5.7 - delay )
timerFootbombLauncherCD : Start ( 9 - delay )
timerShockingClawCD : Start ( 14.3 - delay )
if not self : IsNormal ( ) then
timerThrowCoinsCD : Start ( 18 - delay )
end
end
function mod : SPELL_AURA_APPLIED ( args )
local spellId = args.spellId
if spellId == 256493 then --270882 for players?
timerBlazingAzeriteCD : Stop ( )
timerBlazingAzeriteCD : Start ( )
end
end
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
mod.SPELL_AURA_REFRESH = mod.SPELL_AURA_APPLIED
function mod : SPELL_CAST_START ( args )
local spellId = args.spellId
if spellId == 262347 then
specWarnStaticPulse : Show ( )
specWarnStaticPulse : Play ( " carefly " )
elseif spellId == 257337 then
specWarnShockingClaw : Show ( )
specWarnShockingClaw : Play ( " shockwave " )
timerShockingClawCD : Start ( )
elseif spellId == 271903 then
warnCoinMagnet : Show ( )
end
end
function mod : SPELL_CAST_SUCCESS ( args )
local spellId = args.spellId
if spellId == 269493 then
warnFootbombLauncher : Show ( )
timerFootbombLauncherCD : Start ( )
elseif spellId == 262347 then
timerStaticPulseCD : Start ( 20.6 ) --23.1-2.5
end
end
function mod : UNIT_SPELLCAST_SUCCEEDED ( uId , _ , spellId )
if spellId == 271859 then --Pay to Win
self.vb . coinCast = self.vb . coinCast + 1
specWarnThrowCoins : Show ( )
specWarnThrowCoins : Play ( " moveboss " )
if self.vb . coinCast == 1 then
timerThrowCoinsCD : Start ( 17 )
else
timerThrowCoinsCD : Start ( 25 )
end
end
end