Quantcast
local function UpdateElement(self)
	local notFull = UnitHealth('player') ~= UnitHealthMax('player') or
		(UnitPowerType("player") == 1 and UnitMana('player') > 0) or
		(UnitPowerType("player") ~= 1 and UnitMana('player') ~= UnitManaMax('player'))

	if(notFull) then
		self:SetAlpha(1)
	elseif(UnitAffectingCombat('player')) then
		self:SetAlpha(1)
	elseif(UnitExists('target')) then
		self:SetAlpha(1)
	elseif(self.Castbar.casting) then
		self:SetAlpha(1)
	else
		self:SetAlpha(self.BarFade.alpha or 0.25)
	end
end

oUF:RegisterInitCallback(function(self)
	local unit = self.unit
	if(self.BarFade) then
		local val = 0
		local event = CreateFrame('Frame')
		event:SetScript('OnUpdate', function(_, al)
			val = val + al
			if(val > 0.25) then
				UpdateElement(self)
				val = 0
			end
		end)
	end
end)