local mod	= DBM:NewMod("Gluth", "DBM-Naxx", 2)
local L		= mod:GetLocalizedStrings()

mod:SetRevision("20220116041753")
mod:SetCreatureID(15932)
mod:SetEncounterID(1108)
mod:SetModelID(16064)
mod:RegisterCombat("combat")

mod:RegisterEventsInCombat(
	"SPELL_CAST_SUCCESS 29685",
	"SPELL_AURA_APPLIED 28371",
	"SPELL_AURA_REMOVED 28371",
	"SPELL_DAMAGE 28375"
)

--TODO, is it really nessesarly to use SPELL_DAMAGE here?
local warnEnrage		= mod:NewTargetNoFilterAnnounce(19451, 3, nil , "Healer|Tank|RemoveEnrage", 2)
local warnRoar			= mod:NewSpellAnnounce(29685, 2)
local warnDecimateNow	= mod:NewSpellAnnounce(28374, 3)

local specWarnEnrage	= mod:NewSpecialWarningDispel(19451, "RemoveEnrage", nil, nil, 1, 6)

local timerEnrage		= mod:NewBuffActiveTimer(8, 19451, nil, nil, nil, 5, nil, DBM_COMMON_L.ENRAGE_ICON)
local timerRoarCD		= mod:NewCDTimer(19.4, 29685, nil, nil, nil, 2)--19.4-22.5
local enrageTimer		= mod:NewBerserkTimer(420)

function mod:OnCombatStart(delay)
	timerRoarCD:Start(19.4 - delay)
	enrageTimer:Start(420 - delay)
--	warnDecimateSoon:Schedule(100 - delay)
end

do
	local Roar = DBM:GetSpellInfo(29685)
	function mod:SPELL_CAST_SUCCESS(args)
		--if args.spellId == 29685 then
		if args.spellName == Roar then
			warnRoar:Show()
			timerRoarCD:Start()
		end
	end
end

do
	local Enrage = DBM:GetSpellInfo(28371)
	function mod:SPELL_AURA_APPLIED(args)
		--if args.spellId == 28371 then
		if args.spellName == Enrage and args:IsDestTypeHostile() then
			if self.Options.SpecWarn19451dispel then
				specWarnEnrage:Show(args.destName)
				specWarnEnrage:Play("enrage")
			else
				warnEnrage:Show(args.destName)
			end
			timerEnrage:Start()
		end
	end

	function mod:SPELL_AURA_REMOVED(args)
		--if args.spellId == 28371 then
		if args.spellName == Enrage and args:IsDestTypeHostile() then
			timerEnrage:Stop()
		end
	end
end

do
	local Decimate = DBM:GetSpellInfo(28375)
	function mod:SPELL_DAMAGE(_, _, _, _, _, _, _, _, spellId, spellName)
		--if spellId == 28375 and self:AntiSpam(20) then
		if spellName == Decimate and self:AntiSpam(20) then
			warnDecimateNow:Show()
--			timerDecimate:Start()
--			warnDecimateSoon:Schedule(96)
		end
	end
end
