local mod = DBM:NewMod("GRDTrash", "DBM-Party-WoD", 3) local L = mod:GetLocalizedStrings() mod:SetRevision("20230907220903") --mod:SetModelID(47785) mod.isTrashMod = true mod:RegisterEvents( "SPELL_CAST_START 166675 176032", "SPELL_CAST_SUCCESS 163966", "SPELL_AURA_APPLIED 176025 166340 171900", "SPELL_AURA_APPLIED_DOSE 166340", "SPELL_PERIODIC_DAMAGE 176033", "SPELL_ABSORBED 176033" ) --TODO, add https://www.wowhead.com/spell=166380/reckless-slash ? local warnLavaWreath = mod:NewTargetNoFilterAnnounce(176025, 4) local warnThunderousBreath = mod:NewSpellAnnounce(171900, 3) local specWarnActivating = mod:NewSpecialWarningInterrupt(163966, false, nil, 2, 1, 8) local specWarnLavaWreath = mod:NewSpecialWarningMoveAway(176025, nil, nil, nil, 1, 2) local specWarnFlametongueGround = mod:NewSpecialWarningMove(176033, nil, nil, nil, 1, 8)--Ground aoe, may add an earlier personal warning if target scanning works. local specWarnShrapnelblast = mod:NewSpecialWarningDodge(166675, nil, nil, 2, 3, 2)--160943 boss version, 166675 trash version. local specWarnThunderzone = mod:NewSpecialWarningMove(166340, nil, nil, nil, 1, 8) --Antispam IDs for this mod: 1 run away, 2 dodge, 3 dispel, 4 incoming damage, 5 you/role, 6 misc, 7 off interrupt, 8 gtfo function mod:SPELL_CAST_START(args) if not self.Options.Enabled then return end if not self:IsValidWarning(args.sourceGUID) then return end local spellId = args.spellId if spellId == 166675 and self:AntiSpam(2, 1) then if self:IsTanking("player", nil, nil, true, args.sourceGUID) then specWarnShrapnelblast:Show() specWarnShrapnelblast:Play("shockwave") end elseif spellId == 176032 then if self:IsTank() then specWarnFlametongueGround:Show()--Pre warn here for tanks, because this attack also massively buffs trash damage if they are standing in the fire too. specWarnFlametongueGround:Play("watchfeet") end end end function mod:SPELL_CAST_SUCCESS(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 163966 and self:AntiSpam(3, 3) then specWarnActivating:Show(args.sourceName) specWarnActivating:Play("crowdcontrol") end end function mod:SPELL_AURA_APPLIED(args) if not self.Options.Enabled then return end local spellId = args.spellId if spellId == 176025 then if args:IsPlayer() then specWarnLavaWreath:Show() specWarnLavaWreath:Play("runout") else warnLavaWreath:Show(args.destName) end elseif spellId == 166340 and args:IsPlayer() and self:AntiSpam(2, 3) then specWarnThunderzone:Show() specWarnThunderzone:Play("watchfeet") elseif spellId == 171900 then warnThunderousBreath:Show() end end mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED function mod:SPELL_PERIODIC_DAMAGE(_, _, _, _, destGUID, _, _, _, spellId) if spellId == 176033 and destGUID == UnitGUID("player") and self:AntiSpam(2, 2) and not self:IsTrivial() then specWarnFlametongueGround:Show() specWarnFlametongueGround:Play("watchfeet") end end mod.SPELL_ABSORBED = mod.SPELL_PERIODIC_DAMAGE