local mod = DBM : NewMod ( " AtonementTrash " , " DBM-Party-Shadowlands " , 4 )
local L = mod : GetLocalizedStrings ( )
mod : SetRevision ( " 20240808043723 " )
--mod:SetModelID(47785)
mod.isTrashMod = true
mod.isTrashModBossFightAllowed = true
mod : RegisterEvents (
" SPELL_CAST_START 326409 326450 325523 325700 325701 326607 326441 " ,
" SPELL_AURA_APPLIED 326450 326891 "
-- "SPELL_AURA_REMOVED 326409"
)
--All warnings/recommendations drycoded from https://www.wowhead.com/guides/halls-of-atonement-shadowlands-dungeon-strategy-guide
--Notable Halkias Trash
local warnThrash = mod : NewSpellAnnounce ( 326409 , 3 )
local warnLoyalBeasts = mod : NewCastAnnounce ( 326450 , 4 ) --Announce the cast, in case someone can stun it
--General
--local specWarnGTFO = mod:NewSpecialWarningGTFO(257274, nil, nil, nil, 1, 8)
--Notable Halkias Trash
local specWarnSinQuake = mod : NewSpecialWarningDodge ( 326441 , nil , nil , nil , 2 , 2 )
local specWarnLoyalBeasts = mod : NewSpecialWarningTarget ( 326450 , " RemoveEnrage|Tank " , nil , nil , 1 , 2 ) --Target because it's hybrid warning
local specWarnDeadlyThrust = mod : NewSpecialWarningDodge ( 325523 , " Tank " , nil , nil , 1 , 2 )
local specWarnCollectSins = mod : NewSpecialWarningInterrupt ( 325700 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnSiphonLife = mod : NewSpecialWarningInterrupt ( 325701 , " HasInterrupt " , nil , nil , 1 , 2 )
--Notable Echelon Trash
local specWarnTurntoStone = mod : NewSpecialWarningInterrupt ( 326607 , " HasInterrupt " , nil , nil , 1 , 2 )
local specWarnTurnToStoneOther = mod : NewSpecialWarningDodge ( 326607 , nil , nil , nil , 2 , 2 )
--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 generalized
function mod : SPELL_CAST_START ( args )
if not self.Options . Enabled then return end
local spellId = args.spellId
if spellId == 326409 and self : AntiSpam ( 3 , 4 ) then
warnThrash : Show ( )
elseif spellId == 326450 and self : AntiSpam ( 3 , 6 ) then
warnLoyalBeasts : Show ( )
elseif spellId == 325523 and self : AntiSpam ( 3 , 2 ) then
specWarnDeadlyThrust : Show ( )
specWarnDeadlyThrust : Play ( " shockwave " )
elseif spellId == 326441 and self : AntiSpam ( 3 , 2 ) then
specWarnSinQuake : Show ( )
specWarnSinQuake : Play ( " watchstep " )
elseif spellId == 325700 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnCollectSins : Show ( args.sourceName )
specWarnCollectSins : Play ( " kickcast " )
elseif spellId == 325701 and self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnSiphonLife : Show ( args.sourceName )
specWarnSiphonLife : Play ( " kickcast " )
elseif spellId == 326607 then
if self : CheckInterruptFilter ( args.sourceGUID , false , true ) then
specWarnTurntoStone : Show ( args.sourceName )
specWarnTurntoStone : Play ( " kickcast " )
elseif self : AntiSpam ( 3 , 2 ) then
specWarnTurnToStoneOther : Show ( )
specWarnTurnToStoneOther : Play ( " watchstep " )
end
end
end
function mod : SPELL_AURA_APPLIED ( args )
if not self.Options . Enabled then return end
local spellId = args.spellId
if spellId == 326450 and self : AntiSpam ( 3 , 5 ) then
specWarnLoyalBeasts : Show ( args.destName )
specWarnLoyalBeasts : Play ( " enrage " )
end
end
--[[
--This is faster but in reality it's actually too fast. it results in almost 4-5 seconds before damage goes out.
--"<185.37 23:03:18> [CLEU] SPELL_AURA_REMOVED#Creature-0-2085-2287-9145-164557-000126FD07#Shard of Halkias#Creature-0-2085-2287-9145-164557-000126FD07#Shard of Halkias#326409#Thrash#BUFF#nil", -- [1273]
--"<186.29 23:03:19> [CLEU] SPELL_CAST_START#Creature-0-2085-2287-9145-164557-000126FD07#Shard of Halkias##nil#326441#Sin Quake#nil#nil", -- [1286]
function mod : SPELL_AURA_REMOVED ( args )
if not self.Options . Enabled then return end
local spellId = args.spellId
if spellId == 326409 then
specWarnSinQuake : Show ( )
specWarnSinQuake : Play ( " watchstep " )
end
end
--]]