--EVERY FRAME
function()
	local crit, haste, mastery = aura_env.round(GetCritChance(), 2), aura_env.round(GetHaste(), 2), aura_env.round(GetMastery(), 2)
	aura_env.region.crit:SetText(crit); aura_env.region.haste:SetText(haste); aura_env.region.mastery:SetText(mastery)
	if crit >= 15 and crit < 20 then aura_env.region.crit:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1)
	elseif crit >= 20 and crit < 25 then aura_env.region.crit:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1)
	elseif crit >= 25 and crit < 30 then aura_env.region.crit:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1)
	elseif crit >= 30 and crit < 35 then aura_env.region.crit:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1)
	elseif crit >= 35 and crit < 40 then aura_env.region.crit:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1)
	elseif crit >= 40 then aura_env.region.crit:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1)
	end
	if haste >= 10 and haste < 20 then aura_env.region.haste:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1)
	elseif haste >= 20 and haste < 30 then aura_env.region.haste:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1)
	elseif haste >= 30 and haste < 40 then aura_env.region.haste:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1)
	elseif haste >= 40 and haste < 50 then aura_env.region.haste:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1)
	elseif haste >= 50 and haste < 60 then aura_env.region.haste:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1)
	elseif haste >= 60 then aura_env.region.haste:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1)
	end
	if mastery >= 15 and mastery < 20 then aura_env.region.mastery:SetTextColor(aura_env.c11, aura_env.c12, aura_env.c13, 1)
	elseif mastery >= 20 and mastery < 25 then aura_env.region.mastery:SetTextColor(aura_env.c21, aura_env.c22, aura_env.c23, 1)
	elseif mastery >= 25 and mastery < 35 then aura_env.region.mastery:SetTextColor(aura_env.c31, aura_env.c32, aura_env.c33, 1)
	elseif mastery >= 35 and mastery < 40 then aura_env.region.mastery:SetTextColor(aura_env.c41, aura_env.c42, aura_env.c43, 1)
	elseif mastery >= 40 and mastery < 45 then aura_env.region.mastery:SetTextColor(aura_env.c51, aura_env.c52, aura_env.c53, 1)
	elseif mastery >= 45 then aura_env.region.mastery:SetTextColor(aura_env.c61, aura_env.c62, aura_env.c63, 1)
	end
	return "Crit\nHaste\nMastery"
end

--INIT
local font, size, flags = aura_env.region.text:GetFont()
if not aura_env.region.crit then
    local crit = aura_env.region:CreateFontString(nil, aura_env.region)
    aura_env.region.crit = crit
    print("ok!")
end
aura_env.region.crit:SetFont(font, size, flags)
aura_env.region.crit:SetTextColor(1,1,1,1)
aura_env.region.crit:SetPoint("RIGHT", aura_env.region, "CENTER", 96, size)
aura_env.region.crit:SetJustifyH("RIGHT")
aura_env.region.crit:SetText("11111111")
aura_env.region.crit:Show()
if not aura_env.region.haste then
    local haste = aura_env.region:CreateFontString(nil, aura_env.region)
    aura_env.region.haste = haste
    print("ok!")
end
aura_env.region.haste:SetFont(font, size, flags)
aura_env.region.haste:SetTextColor(1,1,1,1)
aura_env.region.haste:SetPoint("RIGHT", aura_env.region, "CENTER", 96, 0)
aura_env.region.haste:SetJustifyH("RIGHT")
aura_env.region.haste:SetText("22222222")
aura_env.region.haste:Show()
if not aura_env.region.mastery then
    local mastery = aura_env.region:CreateFontString(nil, aura_env.region)
    aura_env.region.mastery = mastery
    print("ok!")
end
aura_env.region.mastery:SetFont(font, size, flags)
aura_env.region.mastery:SetTextColor(1,1,1,1)
aura_env.region.mastery:SetPoint("RIGHT", aura_env.region, "CENTER", 96, - size)
aura_env.region.mastery:SetJustifyH("RIGHT")
aura_env.region.mastery:SetText("33333333")
aura_env.region.mastery:Show()
aura_env.round = function(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
aura_env.c11, aura_env.c12, aura_env.c13 = 1, 0, 0
aura_env.c21, aura_env.c22, aura_env.c23 = 1, 0.5, 0
aura_env.c31, aura_env.c32, aura_env.c33 = 0, 1, 0
aura_env.c41, aura_env.c42, aura_env.c43 = 0, 1, 1
aura_env.c51, aura_env.c52, aura_env.c53 = 1, 0, 1
aura_env.c61, aura_env.c62, aura_env.c63 = 1, 1, 0