--UNIT_COMBAT:player UNIT_AURA:player
function(e, ...)
	if e == "UNIT_AURA" then
		if aura_env.CUnitBuff("Null Barrier") then
			aura_env.amount = select(16, aura_env.CUnitBuff("Null Barrier"))
			local expTime = math.floor((select(6, aura_env.CUnitBuff("Null Barrier")) * 100))
			local ctime = math.floor((GetTime() * 100))
			if ctime + 1000 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Null Barrier")) end
		end
		return true
	elseif e == "UNIT_COMBAT" then
		if aura_env.CUnitBuff("Null Barrier") then
			aura_env.amount = select(16, aura_env.CUnitBuff("Null Barrier"))
		end
		return true
	end
end

--DURATION
function()
	if aura_env.CUnitBuff("Null Barrier") then
		aura_env.region:SetInverse(false)
		aura_env.region:Color(0.5, 0, 0.5, 1)
		return aura_env.amount, aura_env.maxamount, 1
	else
		aura_env.region:SetInverse(true)
		aura_env.region:Color(0.5, 0.5, 0.5, 1)
		return 15, aura_env.lastTime + 15
	end
end

--INIT
aura_env.maxamount = 0
aura_env.amount = 0
aura_env.lastTime = GetTime()
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