summaryrefslogtreecommitdiff
path: root/entities/effects/smoke_crater/init.lua
blob: 68c713b702b4647439dc239082204ca74d8e1054 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function EFFECT:Init( data )

	self.Pos = data:GetOrigin()
	self.Magnitude = data:GetMagnitude() or 1
	
	self.Emitter = ParticleEmitter( self.Pos )
	self.DieTime = CurTime() + 15
	self.Interval = 0

end


function EFFECT:Think( )

	if self.Interval < CurTime() then
	
		self.Interval = CurTime() + 0.2
		
		local particle = self.Emitter:Add( "particles/smokey", self.Pos + VectorRand() * 10 )

		particle:SetVelocity( Vector( math.Rand(-3,3), math.Rand(-3,3), math.Rand(20,40) ) + WindVector )
		particle:SetDieTime( math.Rand( 10, 15 ) + self.Magnitude )
		particle:SetStartAlpha( math.random( 25, 50 ) )
		particle:SetEndAlpha( 0 )
		particle:SetStartSize( math.Rand( 5, 25 ) * self.Magnitude )
		particle:SetEndSize( math.Rand( 50, 200 ) * self.Magnitude )
		particle:SetRoll( math.Rand( -360, 360 ) )
		particle:SetRollDelta( math.Rand( -0.1, 0.1 ) )
		
		local rand = math.random(10,50)
		particle:SetColor( rand, rand, rand ) 

	end
		
	if self.DieTime > CurTime() then
	
		return true
		
	else
	
		self.Emitter:Finish()
		return false
		
	end
	
end

function EFFECT:Render()
	
end