hit_wood.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. class Hit_Wood : EffBulletImpactBase
  2. {
  3. void Hit_Wood()
  4. {
  5. SetEnterParticle(ParticleList.IMPACT_WOOD_ENTER);
  6. SetExitParticle(ParticleList.IMPACT_WOOD_EXIT);
  7. SetRicochetParticle(ParticleList.IMPACT_WOOD_RICOCHET);
  8. }
  9. override void OnEnterCalculations( Particle p )
  10. {
  11. // All values represent scale
  12. float velocity_min = MIN_SCALING_PARAM + (m_StoppingForce * m_EnterSplashCoef);
  13. float velocity_max = MIN_SCALING_PARAM + (m_StoppingForce * m_EnterSplashCoef);
  14. float size = MIN_SCALING_PARAM + ( m_StoppingForce * m_EnterSplashCoef)*0.5;
  15. float birth_rate = MIN_SCALING_PARAM + (m_StoppingForce * m_EnterSplashCoef)*0.5;
  16. if (velocity_min < MIN_SCALING_PARAM)
  17. velocity_min = MIN_SCALING_PARAM;
  18. if (size < MIN_SCALING_PARAM)
  19. size = MIN_SCALING_PARAM;
  20. if (birth_rate < MIN_SCALING_PARAM)
  21. birth_rate = MIN_SCALING_PARAM;
  22. p.ScaleParticleParam(EmitorParam.VELOCITY, velocity_min);
  23. p.ScaleParticleParam(EmitorParam.VELOCITY_RND, velocity_max);
  24. p.ScaleParticleParam(EmitorParam.SIZE, size);
  25. p.ScaleParticleParam(EmitorParam.BIRTH_RATE, birth_rate);
  26. }
  27. override void OnExitCalculations(Particle p, float outSpeedf)
  28. {
  29. float velocity_min = 1 + (outSpeedf * m_ExitSplashCoef);
  30. float velocity_max = 1 + (outSpeedf * m_ExitSplashCoef);
  31. float size = 1 + ( outSpeedf * m_ExitSplashCoef)*0.5;
  32. float birth_rate = 1 + (outSpeedf * m_ExitSplashCoef)*0.5;
  33. if (velocity_min < MIN_SCALING_PARAM)
  34. velocity_min = MIN_SCALING_PARAM;
  35. if (size < MIN_SCALING_PARAM)
  36. size = MIN_SCALING_PARAM;
  37. if (birth_rate < MIN_SCALING_PARAM)
  38. birth_rate = MIN_SCALING_PARAM;
  39. p.ScaleParticleParam(EmitorParam.VELOCITY, velocity_min);
  40. p.ScaleParticleParam(EmitorParam.VELOCITY_RND, velocity_max);
  41. p.ScaleParticleParam(EmitorParam.SIZE, size);
  42. p.ScaleParticleParam(EmitorParam.BIRTH_RATE, birth_rate);
  43. }
  44. }