All pastes #897727 Raw Edit

Someone

public text v1 · immutable
·published 2008-02-09 20:01 UTC
rendered paste body


EFFECT.Mat = Material( "cable/redlaser" )

/*---------------------------------------------------------
   Init( data table )
---------------------------------------------------------*/
function EFFECT:Init( data )

	self.EndPos		= data:GetOrigin()
	self.StartPos 	= self.EndPos - data:GetStart()
	self.Enti		= data:GetEntity()
	
	self.TracerTime = 3
	self.Alpha = 200
	// Die when it reaches its target
	self.DieTime = CurTime() + self.TracerTime
	
end

/*---------------------------------------------------------
   THINK
---------------------------------------------------------*/
function EFFECT:Think( )
	if !self.Enti:IsValid() then return false end
	if ( CurTime() > self.DieTime ) then return false end
	self.Alpha = self.Alpha - 15
	return true

end

/*---------------------------------------------------------
   Draw the effect
---------------------------------------------------------*/
function EFFECT:Render( )
	if !self.Enti:IsValid() then return false end
	
	local randUp = math.random(-8, 8)
	local randRight = math.random(-8, 8)
	local RandOffset = self.Enti:GetRight() * randRight + self.Enti:GetForward() * randUp
			
	render.SetMaterial( self.Mat )
	
	self.StartPos 	= self.StartPos + RandOffset
	self.EndPos 	= self.EndPos + RandOffset
	render.DrawBeam( self.StartPos, 		
					 self.EndPos,
					 2,					
					 1,					
					 0,				
					 Color(0,0,255,self.Alpha))
					 
end