--UNIT_COMBAT:player UNIT_AURA:player
function(e, ...)
	if e == "UNIT_AURA" then
		if aura_env.CUnitBuff("Ignore Pain") then
			aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain"))
			local expTime = math.floor((select(6, aura_env.CUnitBuff("Ignore Pain")) * 100))
			local ctime = math.floor((GetTime() * 100))
			if ctime + 1200 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Ignore Pain")) end
			aura_env.region.text:SetText(aura_env.shorten(aura_env.amount))
			aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount))
		else
			aura_env.region.text:SetText("")
			aura_env.region.timer:SetText("")
			aura_env.maxamount = 0
		end
		return true
	elseif e == "UNIT_COMBAT" then
		if aura_env.CUnitBuff("Ignore Pain") then
			aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain"))
			aura_env.region.text:SetText(aura_env.shorten(aura_env.amount))
			aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount))
		end
		return true
	end
end

--DURATION
function()
	return aura_env.amount, aura_env.maxamount, 1
end

--INIT
aura_env.absorb = 0
aura_env.CUnitBuff = function(spell)
	for i = 1, 40 do
		local name = UnitBuff("player", i)
		if name then
			if name == spell then
				return UnitBuff("player", i)
			end
		else
			break
		end
	end
end
aura_env.shorten = function(val)
	local function round(var, n)
		if (n) then
			var = math.floor((var * 10^n) + 0.5) / (10^n)
		else
			var = math.floor(var+0.5)
		end
		return var
	end
	local n = 2
	if val < 1e3 then
		return round(val, n)
	elseif val > 1e3 and val < 1e6 then
		return round(val / 1e3, n) .. "k"
	elseif val > 1e6 and val < 1e9 then
		return round(val / 1e6, n) .. "M"
	elseif val > 1e9 then
		return round(val / 1e9, n) .. "G"
	end
end