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.
111 lines
4.8 KiB
111 lines
4.8 KiB
local mod = DBM:NewMod("SanguineDepthsTrash", "DBM-Party-Shadowlands", 8)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20230117063410")
|
|
--mod:SetModelID(47785)
|
|
|
|
mod.isTrashMod = true
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START 320991 321038 324103 326827 328170 326836",
|
|
"SPELL_CAST_SUCCESS 324086 334558",
|
|
"SPELL_AURA_APPLIED 334673 321038 324089 326836",
|
|
"SPELL_AURA_REMOVED 326827"
|
|
)
|
|
|
|
--https://www.wowhead.com/guides/sanguine-depths-shadowlands-dungeon-strategy-guide
|
|
--TODO, verify echoing thrust actually targets only tank, and that it can be side stepped
|
|
--TODO, more trash warnings? this is all that was in guide
|
|
--General
|
|
local warnZralisEssence = mod:NewTargetNoFilterAnnounce(324089, 1)
|
|
local warnShiningRadiance = mod:NewTargetNoFilterAnnounce(324086, 1)
|
|
local warnDreadBindings = mod:NewFadesAnnounce(326827, 1)
|
|
|
|
--General
|
|
--local specWarnGTFO = mod:NewSpecialWarningGTFO(257274, nil, nil, nil, 1, 8)
|
|
--Notable Kryxis Trash
|
|
local specWarnSanctifiedMists = mod:NewSpecialWarningMove(334673, "Tank", nil, nil, 1, 10)
|
|
local specWarnEchoingThrust = mod:NewSpecialWarningDodge(320991, "Tank", nil, nil, 1, 2)
|
|
--Notable Grand Proctor Berylli
|
|
local specWarnCurseofSuppression = mod:NewSpecialWarningInterrupt(326836, "HasInterrupt", nil, nil, 1, 2)
|
|
local specWarnCurseofSuppressionDispel = mod:NewSpecialWarningDispel(326836, "RemoveCurse", nil, nil, 1, 2)
|
|
local specWarnWrackSoul = mod:NewSpecialWarningInterrupt(321038, false, nil, 2, 1, 2)
|
|
local specWarnWrackSoulDispel = mod:NewSpecialWarningDispel(321038, "RemoveMagic", nil, nil, 1, 2)
|
|
--Notable General Kaal Trash
|
|
local specWarnGloomSquall = mod:NewSpecialWarningMoveTo(324103, nil, nil, nil, 3, 2)--Boss version, trash version is 322903
|
|
local yellShiningRadiance = mod:NewYell(324086, nil, nil, nil, "YELL")
|
|
--Unknown, user request
|
|
local specWarnDreadBindings = mod:NewSpecialWarningRun(326827, nil, nil, nil, 4, 2)
|
|
local specWarnCraggyFracture = mod:NewSpecialWarningDodge(328170, nil, nil, nil, 2, 2)
|
|
local specWarnVolatileTrap = mod:NewSpecialWarningDodge(334558, nil, nil, nil, 2, 2)
|
|
|
|
--local timerShiningRadiance = mod:NewCDTimer(35, 324086, nil, nil, nil, 5)
|
|
|
|
local shelter = DBM:GetSpellInfo(324086)
|
|
|
|
--Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 320991 and self:AntiSpam(3, 2) then
|
|
specWarnEchoingThrust:Show()
|
|
specWarnEchoingThrust:Play("shockwave")
|
|
elseif spellId == 326836 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnCurseofSuppression:Show(args.sourceName)
|
|
specWarnCurseofSuppression:Play("kickcast")
|
|
elseif spellId == 321038 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
|
|
specWarnWrackSoul:Show(args.sourceName)
|
|
specWarnWrackSoul:Play("kickcast")
|
|
elseif spellId == 324103 then
|
|
specWarnGloomSquall:Show(shelter)
|
|
specWarnGloomSquall:Play("findshelter")
|
|
elseif spellId == 326827 then
|
|
specWarnDreadBindings:Show()
|
|
specWarnDreadBindings:Play("justrun")
|
|
elseif spellId == 328170 and self:AntiSpam(3, 2) then
|
|
specWarnCraggyFracture:Show()
|
|
specWarnCraggyFracture:Play("watchstep")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 324086 then
|
|
warnShiningRadiance:Show(args.sourceName)
|
|
-- timerShiningRadiance:Start()
|
|
if args:IsPlayerSource() then
|
|
yellShiningRadiance:Yell()
|
|
end
|
|
elseif spellId == 334558 and self:AntiSpam(3, 2) then
|
|
--Using success because it can be interrupted, so we don't want to warn to dodge it unless it's NOT interupted
|
|
specWarnVolatileTrap:Show()
|
|
specWarnVolatileTrap:Play("watchstep")
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 334673 and args:IsDestTypeHostile() and self:AntiSpam(3, 5) then
|
|
specWarnSanctifiedMists:Show()
|
|
specWarnSanctifiedMists:Play("mobout")
|
|
elseif spellId == 326836 and args:IsDestTypePlayer() and self:CheckDispelFilter("curse") and self:AntiSpam(3, 5) then
|
|
specWarnCurseofSuppressionDispel:Show(args.destName)
|
|
specWarnCurseofSuppressionDispel:Play("helpdispel")
|
|
elseif spellId == 321038 and args:IsDestTypePlayer() and self:CheckDispelFilter("magic") and self:AntiSpam(3, 5) then
|
|
specWarnWrackSoulDispel:Show(args.destName)
|
|
specWarnWrackSoulDispel:Play("helpdispel")
|
|
elseif spellId == 324089 then
|
|
warnZralisEssence:Show(args.destName)
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
if not self.Options.Enabled then return end
|
|
local spellId = args.spellId
|
|
if spellId == 326827 and args:IsPlayer() then
|
|
warnDreadBindings:Show()
|
|
end
|
|
end
|
|
|