1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- class EffEngineSmoke : EffVehicleSmoke
- {
- private float m_Time;
- static private float m_UpdateInterval = 2;
-
- void EffEngineSmoke()
- {
- SetEnableEventFrame(true);
- }
-
- override void SetParticleStateLight()
- {
- SetParticleState( ParticleList.HATCHBACK_ENGINE_OVERHEATING );
- }
-
- override void SetParticleStateHeavy()
- {
- SetParticleState( ParticleList.HATCHBACK_ENGINE_OVERHEATED );
- }
-
- override void Event_OnFrameUpdate(float time_delta)
- {
- m_Time += time_delta;
-
- if (m_Time >= m_UpdateInterval)
- {
- m_Time = 0;
-
- Car parent = Car.Cast( GetAttachmentParent() );
-
- if (parent)
- {
- Particle p = GetParticle();
- if (p)
- {
- SetParticleState( p.GetParticleID() );
-
- float speed = parent.GetSpeedometerAbsolute();
- float lifetime_scale;
-
- if (speed < 100)
- lifetime_scale = (100 - speed) / 100;
- else
- lifetime_scale = 0.1;
-
- float birthrate_scale = 1 + (speed * 0.02 );
-
- p.ScaleParticleParamFromOriginal( EmitorParam.LIFETIME, lifetime_scale );
- p.ScaleParticleParamFromOriginal( EmitorParam.LIFETIME_RND, lifetime_scale );
- p.ScaleParticleParamFromOriginal( EmitorParam.BIRTH_RATE, birthrate_scale );
- p.ScaleParticleParamFromOriginal( EmitorParam.BIRTH_RATE_RND, birthrate_scale );
- }
- }
- }
- }
- }
|