Quantcast
Alerter = CreateFrame("Frame")
Alerter.items = {}
Alerter.update = 0
Alerter.free = {
	[1] = true,
	[2] = true,
	[3] = true,
	[4] = true,
	[5] = true,
}
Alerter.wipe = {}

local Alerts = {}

do
	yOfs = 250
	for i = 1,5 do
		Alerter.items[i] = Alerter:CreateFontString()
		Alerter.items[i]:SetFont("Fonts\\FRIZQT__.TTF",40,"OUTLINE")
		Alerter.items[i]:SetPoint("CENTER",ALERT,"CENTER",0,yOfs)
		yOfs = yOfs - 50
	end
end

function Alerter:SendAlert(msg,duration)
	tinsert(Alerts,{m=msg,t=GetTime()+duration})
end

Alerter:SetScript("OnUpdate",function()
	if Alerter.update < GetTime() then

		for k,_ in pairs(Alerter.wipe) do
			if Alerter.wipe[k] < GetTime() then
				Alerter.items[k]:SetText("")
				Alerter.wipe[k] = nil
				Alerter.free[k] = true
			end
		end


		for k,_ in pairs(Alerts) do
			for j,_ in pairs(Alerter.free) do
				if Alerter.free[j] then
					Alerter.items[j]:SetText(Alerts[k].m)
					Alerter.wipe[j] = Alerts[k].t
					Alerter.free[j] = false
					Alerts[k] = nil
					break
				end
			end
		end


		Alerter.update = GetTime() + 0.2
	end
end)