DIFF

Hit_Water.c

class Hit_Water : EffBulletImpactBase
{
	void Hit_Water()
	{
		SetSingleParticle(ParticleList.IMPACT_WATER_SMALL_ENTER);
		
		m_AngledEnter = 10;
	}
	
	override void EvaluateEffect(Object directHit, int componentIndex, vector pos, int impact_type, vector surfNormal, vector exitPos, vector inSpeed, vector outSpeed, string ammoType)
	{
		super.EvaluateEffect(directHit, componentIndex, pos, impact_type, surfNormal, exitPos, inSpeed, outSpeed, ammoType);
		
		m_SurfNormal = "0 0 0";
	}
	
	override float CalculateStoppingForce(float in_speedf, float out_speedf, string ammoType, float weight)
	{
		float projectile_weight_coef = weight / DEFAULT_PROJECTILE_WEIGHT;
		
		float stopping_force = (in_speedf - out_speedf) * projectile_weight_coef;
		
		if ( stopping_force < 350 )
			SetEnterParticle(ParticleList.IMPACT_WATER_SMALL_ENTER);
		
		if ( stopping_force >= 350  &&  stopping_force < 750 )
			SetEnterParticle(ParticleList.IMPACT_WATER_MEDIUM_ENTER);
		
		if ( stopping_force >= 750 )
			SetEnterParticle(ParticleList.IMPACT_WATER_LARGE_ENTER);
		
		return stopping_force;
	}
	
	override void OnEnterCalculations( Particle p )
	{
		// no particle scaling
	}
	
	override void OnExitCalculations(Particle p, float outSpeedf)
	{
		// no particle scaling
	}
	
	override void OnRicochetCalculations(Particle p, float outspeedf)
	{
		// no particle scaling
	}
	
	override void OnEnterAngledCalculations(Particle p)
	{
		// no particle scaling
	}
}