local mod	= DBM:NewMod(458, "DBM-Party-Classic", 17, 237)
local L		= mod:GetLocalizedStrings()

mod:SetRevision("20220116041753")
mod:SetCreatureID(5710)--5711 Ogom the Wretched
mod:SetEncounterID(488)

mod:RegisterCombat("combat")

mod:RegisterEventsInCombat(
	"SPELL_CAST_START 12492 12468 8376 12471",
	"SPELL_CAST_SUCCESS 12479",
	"SPELL_AURA_APPLIED 12479 11639 12493",
	"SPELL_AURA_REMOVED 12479",
	"UNIT_DIED"
)

local warningHealingWave				= mod:NewCastAnnounce(12492, 2)
local warningEarthgrabTotem				= mod:NewSpellAnnounce(8376, 2)
local warningFlamestrike				= mod:NewCastAnnounce(12468, 2)
local warningHexofJammalan				= mod:NewTargetNoFilterAnnounce(12479, 2)
--Ogom
local warningCurseofWeakness			= mod:NewTargetNoFilterAnnounce(12493, 2, nil, "RemoveCurse")
local warningShadowWordPain				= mod:NewTargetNoFilterAnnounce(11639, 2, nil, "RemoveMagic")

local specWarnHexofJammalan				= mod:NewSpecialWarningYou(12479, nil, nil, nil, 1, 2)
local yellHexofJammalan					= mod:NewYell(12479)
--local yellHexofJammalanFades			= mod:NewShortFadesYell(12479)--Requires BC plus, to distinquish 12479 vs 12480
--Ogom
local specWarnShadowBolt				= mod:NewSpecialWarningInterrupt(12471, "HasInterrupt", nil, nil, 1, 2)

--local timerHealingWaveCD				= mod:NewAITimer(180, 12492, nil, nil, nil, 3)
local timerEarthgrabTotemCD				= mod:NewAITimer(180, 8376, nil, nil, nil, 1)
local timerHexofJammalanCD				= mod:NewAITimer(180, 12479, nil, nil, nil, 3)
--Ogom
local timerShadowBoltCD					= mod:NewAITimer(180, 12479, nil, nil, nil, 4, nil, DBM_COMMON_L.INTERRUPT_ICON)

function mod:OnCombatStart(delay)
--	timerHealingWaveCD:Start(1-delay)
	timerEarthgrabTotemCD:Start(1-delay)
	timerHexofJammalanCD:Start(1-delay)
end

do
	local HealingWave, Flamestrike, Earthgrab, Shadowbolt = DBM:GetSpellInfo(12492), DBM:GetSpellInfo(12468), DBM:GetSpellInfo(8376), DBM:GetSpellInfo(12471)
	function mod:SPELL_CAST_START(args)
		--if args.spellId == 12492 then
		if args.spellName == HealingWave and args:IsSrcTypeHostile() then
			warningHealingWave:Show()
			--timerHealingWaveCD:Start()
		--elseif args.spellId == 12468 then
		elseif args.spellName == Flamestrike and args:IsSrcTypeHostile() then
			warningFlamestrike:Show()
		--elseif args.spellId == 8376 then
		elseif args.spellName == Earthgrab and args:IsSrcTypeHostile() then
			warningEarthgrabTotem:Show()
			timerEarthgrabTotemCD:Start()
		--elseif args.spellId == 12471 then
		elseif args.spellName == Shadowbolt and args:IsSrcTypeHostile() then
			timerShadowBoltCD:Start()
			if self:CheckInterruptFilter(args.sourceGUID, false, true) then
				specWarnShadowBolt:Show(args.sourceName)
				specWarnShadowBolt:Play("kickcast")
			end
		end
	end
end

do
	local HexofJammalan, ShadowWordPain, CurseofWeakness = DBM:GetSpellInfo(12479), DBM:GetSpellInfo(11639), DBM:GetSpellInfo(12493)
	function mod:SPELL_CAST_SUCCESS(args)
		--if args.spellId == 12479 then
		if args.spellName == HexofJammalan then
			timerHexofJammalanCD:Start()
		end
	end

	function mod:SPELL_AURA_APPLIED(args)
		--if args.spellId == 12479 then--12480 is curse debuff ID after initial 10 seconds
		if args.spellName == HexofJammalan then
			if args:IsPlayer() then
				specWarnHexofJammalan:Show()
				specWarnHexofJammalan:Play("targetyou")
				yellHexofJammalan:Yell()
				--yellHexofJammalanFades:Countdown(12479)--Valid in retail, in classic we can't tell what version of debuff is so disabled
			else
				warningHexofJammalan:Show(args.destName)
			end
		--elseif args.spellId == 11639 then
		elseif args.spellName == ShadowWordPain and args:IsDestTypePlayer() then
			warningShadowWordPain:Show(args.destName)
		--elseif args.spellId == 12493 then
		elseif args.spellName == CurseofWeakness and args:IsDestTypePlayer() then
			warningCurseofWeakness:Show(args.destName)
		end
	end
	--[[
	function mod:SPELL_AURA_REMOVED(args)
		if args.spellId == 12479 then
			if args:IsPlayer() then
				yellHexofJammalanFades:Cancel()--Valid in retail, in classic we can't tell what version of debuff is so disabled
			end
		end
	end
	--]]
end

function mod:UNIT_DIED(args)
	local cid = self:GetCIDFromGUID(args.destGUID)
	if cid == 5711 then--Ogom the Wretched
		timerShadowBoltCD:Stop()
	end
end
