local mod = DBM : NewMod ( " UndermineTrash " , " DBM-Party-BfA " , 7 )
local L = mod : GetLocalizedStrings ( )
mod : SetRevision ( " 20230813054730 " )
--mod:SetModelID(47785)
mod.isTrashMod = true
mod : RegisterEvents (
" SPELL_CAST_START 268709 268129 263275 267433 263103 263066 268865 268797 269090 262540 262554 262092 263202 267354 " ,
" SPELL_AURA_APPLIED 268702 262947 262540 262092 " ,
" SPELL_CAST_SUCCESS 280604 262515 "
)
local warnActivateMech = mod : NewCastAnnounce ( 267433 , 4 )
local warnRepair = mod : NewCastAnnounce ( 262554 , 4 )
local warnAzeriteHeartseeker = mod : NewTargetNoFilterAnnounce ( 262515 , 3 )
--local yellArrowBarrage = mod:NewYell(200343)
local specWarnHailofFlechettes = mod : NewSpecialWarningSpell ( 267354 , nil , nil , nil , 2 , 3 )
local specWarnCover = mod : NewSpecialWarningMove ( 263275 , " Tank " , nil , nil , 1 , 2 )
local specWarnEarthShield = mod : NewSpecialWarningInterrupt ( 268709 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnRockLance = mod : NewSpecialWarningInterrupt ( 263202 , false , nil , nil , 1 , 2 )
local specWarnIcedSpritzer = mod : NewSpecialWarningInterrupt ( 280604 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnCola = mod : NewSpecialWarningInterrupt ( 268129 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnFuriousQuake = mod : NewSpecialWarningInterrupt ( 268702 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnBlowtorch = mod : NewSpecialWarningInterrupt ( 263103 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnTransSyrum = mod : NewSpecialWarningInterrupt ( 263066 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnEnemyToGoo = mod : NewSpecialWarningInterrupt ( 268797 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnArtilleryBarrage = mod : NewSpecialWarningInterrupt ( 269090 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnOvercharge = mod : NewSpecialWarningInterrupt ( 262540 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnInhaleVapors = mod : NewSpecialWarningInterrupt ( 262092 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnForceCannon = mod : NewSpecialWarningDodge ( 268865 , nil , nil , nil , 2 , 2 )
local specWarnAzeriteInjection = mod : NewSpecialWarningDispel ( 262947 , " MagicDispeller " , nil , nil , 1 , 2 )
local specWarnOverchargeDispel = mod : NewSpecialWarningDispel ( 262540 , " MagicDispeller " , nil , nil , 1 , 2 )
local specWarnInhaleVaporsDispel = mod : NewSpecialWarningDispel ( 262092 , " RemoveEnrage " , nil , 2 , 1 , 2 )
function mod : SPELL_CAST_START ( args )
if not self.Options . Enabled then return end
local spellId = args.spellId
if spellId == 268709 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnEarthShield : Show ( args.sourceName )
specWarnEarthShield : Play ( " kickcast " )
elseif spellId == 268129 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnCola : Show ( args.sourceName )
specWarnCola : Play ( " kickcast " )
elseif spellId == 263103 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnBlowtorch : Show ( args.sourceName )
specWarnBlowtorch : Play ( " kickcast " )
elseif spellId == 263066 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnTransSyrum : Show ( args.sourceName )
specWarnTransSyrum : Play ( " kickcast " )
elseif spellId == 268797 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnEnemyToGoo : Show ( args.sourceName )
specWarnEnemyToGoo : Play ( " kickcast " )
elseif spellId == 269090 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnArtilleryBarrage : Show ( args.sourceName )
specWarnArtilleryBarrage : Play ( " kickcast " )
elseif spellId == 262540 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnOvercharge : Show ( args.sourceName )
specWarnOvercharge : Play ( " kickcast " )
elseif spellId == 262092 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnInhaleVapors : Show ( args.sourceName )
specWarnInhaleVapors : Play ( " kickcast " )
elseif spellId == 263202 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnRockLance : Show ( args.sourceName )
specWarnRockLance : Play ( " kickcast " )
elseif spellId == 263275 and self : IsValidWarning ( args.sourceGUID ) then
specWarnCover : Show ( )
specWarnCover : Play ( " moveboss " )
elseif spellId == 267433 and self : AntiSpam ( 4 , 1 ) then --IsValidWarning removed because it caused most activate mechs not to announce. re-add if it becomes problem
warnActivateMech : Show ( )
elseif spellId == 262554 and self : IsValidWarning ( args.sourceGUID ) and self : AntiSpam ( 4 , 2 ) then
warnRepair : Show ( )
elseif spellId == 268865 and self : IsValidWarning ( args.sourceGUID ) and self : AntiSpam ( 4 , 3 ) then
specWarnForceCannon : Show ( )
specWarnForceCannon : Play ( " shockwave " )
elseif spellId == 267354 and self : IsValidWarning ( args.sourceGUID ) and self : AntiSpam ( 4 , 5 ) then
specWarnHailofFlechettes : Show ( )
specWarnHailofFlechettes : Play ( " crowdcontrol " )
end
end
function mod : SPELL_AURA_APPLIED ( args )
if not self.Options . Enabled then return end
local spellId = args.spellId
if spellId == 268702 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnFuriousQuake : Show ( args.sourceName )
specWarnFuriousQuake : Play ( " kickcast " )
elseif spellId == 262947 and not args : IsDestTypePlayer ( ) and self : AntiSpam ( 3 , 4 ) then
specWarnAzeriteInjection : Show ( args.destName )
specWarnAzeriteInjection : Play ( " helpdispel " )
elseif spellId == 262540 and not args : IsDestTypePlayer ( ) and self : AntiSpam ( 3 , 4 ) then
specWarnOverchargeDispel : Show ( args.destName )
specWarnOverchargeDispel : Play ( " helpdispel " )
elseif spellId == 262092 and not args : IsDestTypePlayer ( ) and self : AntiSpam ( 3 , 4 ) then
specWarnInhaleVaporsDispel : Show ( args.destName )
specWarnInhaleVaporsDispel : Play ( " helpdispel " )
end
end
function mod : SPELL_CAST_SUCCESS ( args )
if not self.Options . Enabled then return end
local spellId = args.spellId
if spellId == 280604 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnIcedSpritzer : Show ( args.sourceName )
specWarnIcedSpritzer : Play ( " kickcast " )
elseif spellId == 262515 and self : AntiSpam ( 2.5 , args.destName ) then
warnAzeriteHeartseeker : CombinedShow ( 0.5 , args.destName )
end
end