local mod	= DBM:NewMod("BSMTrash", "DBM-Party-WoD", 2)
local L		= mod:GetLocalizedStrings()

mod:SetRevision("20240128051616")
--mod:SetModelID(47785)

mod.isTrashMod = true

mod:RegisterEvents(
	"SPELL_AURA_APPLIED 164597 151548 151697 151965",
	"SPELL_CAST_START 152298 151447 151545 151558 151581"
)
local warnCinderSplash					= mod:NewSpellAnnounce(152298, 3)

local specWarnCrush						= mod:NewSpecialWarningDodge(151447, "Tank", nil, nil, 1, 2)
local specWarnRoar						= mod:NewSpecialWarningInterrupt(151545, "HasInterrupt", nil, 2, 1, 2)--Maybe healer need warning too, if interrupt gets off, healer can't heal for 5 seconds
local specWarnLavaBurst					= mod:NewSpecialWarningInterrupt(151558, "HasInterrupt", nil, 2, 1, 2)
local specWarnSuppressionField			= mod:NewSpecialWarningInterrupt(151581, "HasInterrupt", nil, 2, 1, 2)--Maybe healer need warning too, if interrupt gets off, healer can't heal for 5 seconds
local specWarnStoneBulwark				= mod:NewSpecialWarningDispel(164597, "MagicDispeller", nil, nil, 1, 2)
local specWarnBloodRage					= mod:NewSpecialWarningDispel(151548, "MagicDispeller", nil, nil, 1, 2)
local specWarnSubjugate					= mod:NewSpecialWarningDispel(151697, "RemoveMagic", nil, 2, 1, 2)
local specWarnSlaversRage				= mod:NewSpecialWarningDispel(151965, "RemoveEnrage", nil, nil, 1, 2)

function mod:SPELL_AURA_APPLIED(args)
	if not self.Options.Enabled then return end
	local spellId = args.spellId
	if spellId == 164597 and not args:IsDestTypePlayer() then
		specWarnStoneBulwark:Show(args.destName)
		specWarnStoneBulwark:Play("helpdispel")
	elseif spellId == 151548 and not args:IsDestTypePlayer() and self:IsValidWarning(args.sourceGUID) then--Antispam
		specWarnBloodRage:Show(args.destName)
		specWarnBloodRage:Play("helpdispel")
	elseif spellId == 151697 and self:CheckDispelFilter("magic") then
		specWarnSubjugate:Show(args.destName)
		specWarnSubjugate:Play("helpdispel")
	elseif spellId == 151965 then
		specWarnSlaversRage:Show(args.destName)
		specWarnSlaversRage:Play("enrage")
	end
end

function mod:SPELL_CAST_START(args)
	if not self.Options.Enabled then return end
	local spellId = args.spellId
	if spellId == 152298 and self:AntiSpam(5, 1) then
		warnCinderSplash:Show()
	elseif spellId == 151447 then
		specWarnCrush:Show()
		specWarnCrush:Play("shockwave")
	elseif spellId == 151545 and self:IsValidWarning(args.sourceGUID) and self:CheckInterruptFilter(args.sourceGUID, false, true) then
		specWarnRoar:Show(args.sourceName)
		specWarnRoar:Play("kickcast")
	elseif spellId == 151558 and self:IsValidWarning(args.sourceGUID) and self:CheckInterruptFilter(args.sourceGUID, false, true) then
		specWarnLavaBurst:Show(args.sourceName)
		specWarnLavaBurst:Play("kickcast")
	elseif spellId == 151581 and self:CheckInterruptFilter(args.sourceGUID, false, true) then
		specWarnSuppressionField:Show(args.sourceName)
		specWarnSuppressionField:Play("kickcast")
	end
end
