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.

86 lines
3.7 KiB

local mod = DBM:NewMod("AtonementTrash", "DBM-Party-Shadowlands", 4)
local L = mod:GetLocalizedStrings()
mod:SetRevision("20221030212932")
--mod:SetModelID(47785)
mod.isTrashMod = 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
--]]