private void InitSmokeEmitter(Vector4 color) { attachments.Clear(); if (!smokeEnabled) { return; } SharedSmokeSource smokeSource = new SharedSmokeSource(InGame.inGame.ParticleSystemManager); smokeSource.Position = Movement.Position; smokeSource.ResetPreviousPosition(); smokeSource.LinearEmission = true; smokeSource.Active = true; smokeSource.Emitting = false; smokeSource.Color = color; smokeSource.PositionJitter = 0.03f; smokeSource.StartRadius = 0.1f; smokeSource.EndRadius = 1.0f; smokeSource.StartAlpha = 0.4f; smokeSource.MinLifetime = .5f; smokeSource.MaxLifetime = 1.5f; smokeSource.InitFlash(2.4f, 0.5f); smokeSource.MaxRotationRate = 3.0f; smokeSource.EmissionRate = 5.0f; smokeSource.Velocity = Vector3.Zero; smokeSource.Acceleration = new Vector3(0.0f, 0.0f, 0.2f); // Have smoke float up a bit. smokeSource.Usage = BaseEmitter.Use.Regular; AddEmitter(smokeSource, Vector3.Zero); // And the optional heat wash versions if (Fx.DistortionManager.PartyEnabled) { smokeSource = new SharedSmokeSource(InGame.inGame.ParticleSystemManager); smokeSource.Position = Movement.Position; smokeSource.ResetPreviousPosition(); smokeSource.LinearEmission = true; smokeSource.Active = true; smokeSource.Emitting = false; smokeSource.Color = new Vector4(0.85f, 0.85f, 0.95f, 1.0f); smokeSource.PositionJitter = 0.03f; smokeSource.StartRadius = 0.2f; smokeSource.EndRadius = 1.0f; smokeSource.StartAlpha = 0.9f; smokeSource.MinLifetime = 0.25f; smokeSource.MaxLifetime = 0.5f; smokeSource.MaxRotationRate = 3.0f; smokeSource.EmissionRate = 2.0f; smokeSource.Velocity = Vector3.Zero; smokeSource.Acceleration = new Vector3(0.0f, 0.0f, 0.2f); // Have smoke float up a bit. smokeSource.Usage = BaseEmitter.Use.Distort; AddEmitter(smokeSource, new Vector3(-1.0f, 0.0f, 0.0f)); } } // end of CruiseMissile InitSmokeEmitter()
} // end of CruiseMissile InitSmokeEmitter() public override void SetColor(Classification.Colors color) { // Set the body color. base.SetColor(color); // Also change the smoke color. if (smokeEnabled) { OffsetEmitter oe = attachments[0] as OffsetEmitter; SharedSmokeSource sss = oe.Emitter as SharedSmokeSource; sss.Color = Classification.ColorVector4(color); } } // end of SetColor()