dobrograd-13-06-2022/garrysmod/addons/feature-wire/lua/effects/jump_out.lua
Jonny_Bro (Nikita) e4d5311906 first commit
2023-11-16 15:01:19 +05:00

62 lines
1.6 KiB
Lua

EFFECT.Mat = Material( "effects/select_ring" )
/*---------------------------------------------------------
Initializes the effect. The data is a table of data
which was passed from the server.
---------------------------------------------------------*/
function EFFECT:Init( data )
local TargetEntity = data:GetEntity()
if ( !TargetEntity || !TargetEntity:IsValid() ) then return end
local vOffset = TargetEntity:GetPos()
local Low, High = TargetEntity:WorldSpaceAABB()
local Center = data:GetOrigin() //High - (( High - Low ) * 0.5)
local NumParticles = TargetEntity:BoundingRadius()
NumParticles = NumParticles * 2
NumParticles = math.Clamp( NumParticles, 10, 500 )
local emitter = ParticleEmitter( vOffset )
for i=0, NumParticles do
local vPos = Vector( math.Rand(Low.x,High.x), math.Rand(Low.y,High.y), math.Rand(Low.z,High.z) )
local vVel = (Center - vPos) * 6
local particle = emitter:Add( "effects/spark", vPos )
if (particle) then
particle:SetVelocity( vVel )
particle:SetLifeTime( 0 )
particle:SetDieTime( math.Rand( 0.1, 0.3 ) )
particle:SetStartAlpha( math.Rand( 200, 255 ) )
particle:SetEndAlpha( 0 )
particle:SetStartSize( 20 )
particle:SetEndSize( 0 )
particle:SetRoll( math.Rand(0, 360) )
particle:SetRollDelta( 0 )
end
end
emitter:Finish()
end
/*---------------------------------------------------------
THINK
---------------------------------------------------------*/
function EFFECT:Think( )
return false
end
/*---------------------------------------------------------
Draw the effect
---------------------------------------------------------*/
function EFFECT:Render()
end