97 float stopping_force = (in_speedf - out_speedf) * projectile_weight_coef;
99 return stopping_force;
109 float air_resistance = velocity_min;
121 if (velocity_min < 0.75)
130 if (lifetime_rnd < 0.5)
133 if (velocity_max < 1)
224 vector particle_orientation;
235 particle_orientation =
m_OutSpeed.VectorToAngles();
236 particle_orientation = particle_orientation +
"0 -90 0";
237 p.SetOrientation(particle_orientation);
251 particle_orientation = particle_orientation +
"0 270 0";
255 particle_orientation =
"0 0 0";
258 p.SetOrientation(particle_orientation);
269 particle_orientation =
m_OutSpeed.VectorToAngles();
270 particle_orientation = particle_orientation +
"0 -90 0";
271 p.SetOrientation(particle_orientation);
282 vector bounce_ori = surfNormalN + inSpeedN;
284 float dot =
vector.
Dot(bounce_ori, surfNormalN);
293 particle_orientation = particle_orientation +
"0 -90 0";
294 p.SetOrientation(particle_orientation);
317 float scaling_by_distance = distance * 0.01;
320 float current_FOV =
Camera.GetCurrentFOV();
321 float config_FOV =
GetDayZGame().GetUserFOVFromConfig();
322 float FOV_scale = current_FOV / config_FOV;
323 scaling_by_distance = 1 + scaling_by_distance * FOV_scale;
325 if (scaling_by_distance > 1.1)
330 particle_orientation[1] = particle_orientation[1] + 270;
331 p_distant.SetOrientation(particle_orientation);
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
proto native float ConfigGetFloat(string path)
Get float value from config on path.
proto native vector GetCurrentCameraPosition()
float CalculateStoppingForce(float in_speedf, float out_speedf, string ammoType, float weight)
void OnEnterAngledCalculations(Particle p)
override void OnCheckUpdate()
static const int INFECTED_HEAD
void SetSingleParticle(int id)
void OnEnterCalculations(Particle p)
void SetExitParticle(int id)
static const int SURVIVOR_HEAD
void SetEnterParticle(int id)
void SetAngledEnterValue(float f)
override void Event_OnStarted()
void EvaluateEffect(Object directHit, int componentIndex, vector pos, int impact_type, vector surfNormal, vector exitPos, vector inSpeed, vector outSpeed, string ammoType)
void OnExitCalculations(Particle p, float outSpeedf)
void EffBulletImpactBase()
void OnRicochetCalculations(Particle p, float outspeedf)
void SetRicochetParticle(int id)
static float DEFAULT_PROJECTILE_WEIGHT
float m_RicochetSplashCoef
float m_EnterAngledSplashCoef
void SetParticle(Particle p)
Sets the main particle which this Effect will manage.
void EffectParticle()
ctor
static Particle PlayInWorld(int particle_id, vector global_pos)
Creates a particle emitter on the given position and activates it.
void ScaleParticleParam(int parameter_id, float coef)
Scales the given parameter on all emitors relatively to their CURRENT value.
Legacy way of using particles in the game.
static const int IMPACT_DISTANT_DUST
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
proto vector VectorToAngles()
Converts vector to spherical coordinates with radius = 1.
proto native CGame GetGame()
static proto float RandomFloat(float min, float max)
Returns a random float number between and min[inclusive] and max[exclusive].