Effect fading out instead of just dissapearing?

Is it possible? If yes, then how?

What effect?


function EFFECT:Init( data )

self.LifeTime = 0.1;

		local dynlight = DynamicLight(0);
		dynlight.Pos = data:GetOrigin();
		dynlight.Size = 400;
		dynlight.Decay = 3000;
		dynlight.R = 255;
		dynlight.G = math.random(50,150);
		dynlight.B = 0;
		dynlight.DieTime = CurTime()+self.LifeTime+1;

        self.time = CurTime()+1
        self.mat = Material( "sprites/muzz"..math.random(1,2).."" )
               
        self.Refract = 0       
        self.Size = 16
        self.Entity:SetRenderBounds( Vector()*-32, Vector()*32 )
 
end
 
function EFFECT:Think()
        self.Refract = self.Refract + FrameTime()
        self.Size = 32 * self.Refract^(0.03)
       
        if ( self.Refract >= 0.03 ) then return false end
       
        return true
end

 
function EFFECT:Render()
        local Pos = self.Entity:GetPos() + (EyePos()-self.Entity:GetPos()):GetNormal()
 
        render.SetMaterial( self.mat )
        self.mat:SetInt("$frame", math.Clamp(math.floor(30-(self.time-CurTime())*30),0,15))
        render.DrawSprite( Pos, self.Size, self.Size )
end