69 {
70 vector pos = start_pos;
71
72 float groundHeight =
g_Game.SurfaceY(pos[0], pos[2]);
73 if (groundHeight > start_pos[1])
74 return;
75
77 float upscale = 1;
78 float rnd_offset = 0.5;
79 float rnd_offset_2 = rnd_offset * 0.5;
80
81 while (power > 200)
82 {
83 pos = pos + ( speed_vector * 0.001 );
84 pos = pos +
Vector( rnd_offset_2 - Math.RandomFloat( 0, rnd_offset ), 0, rnd_offset_2 - Math.RandomFloat( 0, rnd_offset ) );
85 pos[1] =
g_Game.SurfaceY(pos[0], pos[2]);
86
88 eff.SetAutodestroy(true);
89 SEffectManager.PlayInWorld(eff, pos);
90
92
93 vector ori =
g_Game.GetSurfaceOrientation(pos[0], pos[2]);
94
95 blood.SetOrientation(ori);
97
98 Particle blood_chunks =
ParticleManager.GetInstance().PlayInWorld(ParticleList.BLOOD_SURFACE_CHUNKS, pos);
99 blood_chunks.SetOrientation(ori);
100
101 power = power * decay_coef;
102 upscale = upscale + Math.RandomFloat(0.1, 1);
103
105 }
106 }
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Particle GetParticle()
Gets the main particle which this Effect is managing.
void EffectParticle()
ctor
void ScaleParticleParam(int parameter_id, float coef)
Scales the given parameter on all emitors relatively to their CURRENT value.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.