Пример #1
0
 private static void Nuke(BaseFoo foo)
 {
     if (foo is DustPuff)
     {
         DustPuff puff = foo as DustPuff;
         puff.Emitter.RemoveFromManager();
         dustPuffs.Add(puff);
     }
     else if (foo is SteamPuff)
     {
         SteamPuff puff = foo as SteamPuff;
         puff.Emitter.RemoveFromManager();
         steamPuffs.Add(puff);
     }
     else if (foo is Explosion)
     {
         Explosion explosion = foo as Explosion;
         explosion.fireball.RemoveFromManager();
         explosion.smoke.RemoveFromManager();
         explosions.Add(explosion);
     }
     else if (foo is BeamExplosion)
     {
         BeamExplosion beamExplosion = foo as BeamExplosion;
         beamExplosion.beamFireball.RemoveFromManager();
         beamExplosion.beamSmoke.RemoveFromManager();
         beamExplosions.Add(beamExplosion);
     }
     else if (foo is ScanVFX)
     {
         ScanVFX scanVFX = foo as ScanVFX;
         scanVFX.scanExplode.RemoveFromManager();
         scanVFX.scanSmoke.RemoveFromManager();
         scanVFXs.Add(scanVFX);
     }
     else if (foo is RoverScanEffect)
     {
         RoverScanEffect roverEffect = foo as RoverScanEffect;
         roverEffect.scanExplode.RemoveFromManager();
         roverEffect.scanSmoke.RemoveFromManager();
         roverEffects.Add(roverEffect);
     }
     else if (foo is InspectVFX)
     {
         InspectVFX inspect = foo as InspectVFX;
         inspect.inspectExplode.RemoveFromManager();
         inspect.inspectSmoke.RemoveFromManager();
         inspectVFXs.Add(inspect);
     }
 }
Пример #2
0
        private static InspectVFX NewInspectEffect()
        {
            InspectVFX ret = null;

            if (inspectVFXs.Count > 0)
            {
                ret = inspectVFXs[inspectVFXs.Count - 1];
                inspectVFXs.RemoveAt(inspectVFXs.Count - 1);
            }
            else
            {
                ret = new InspectVFX();
            }
            return(ret);
        }
Пример #3
0
        }   // end of ExplosionManager CreateRoverScanEffect()

        /// <summary>
        /// Public call which allows the creation of an scan effect from anywhere in game.
        /// </summary>
        /// <param name="position">Where the explosion occurs.</param>
        /// <param name="radius">Approximate size of the explosion.</param>
        public static void CreateInspectEffect(Vector3 position, float radius)
        {
            InspectVFX e = NewInspectEffect();

            e.position = position;
            e.radius   = radius;

            e.inspectSmokeDuration  = 0.9f;
            e.inspectSmoke          = new InspectSmokeEmitter(InGame.inGame.ParticleSystemManager);
            e.inspectSmoke.Position = position;
            e.inspectSmoke.ResetPreviousPosition();
            e.inspectSmoke.PositionJitter  = 0.2f; // Random offset for each particle.
            e.inspectSmoke.StartRadius     = radius * 0.5f;
            e.inspectSmoke.EndRadius       = radius * 1.3f;
            e.inspectSmoke.EmissionRate    = 20.0f;
            e.inspectSmoke.MaxRotationRate = 0.1f;
            e.inspectSmoke.Color           = new Vector4(1.0f, 0.8f, 0.6f, 0.4f);
            e.inspectSmoke.Active          = true;

            e.inspectExplosionDuration = 0.4f;
            e.inspectExplode           = new InspectExplosionEmitter(InGame.inGame.ParticleSystemManager);
            e.inspectExplode.Position  = position;
            e.inspectExplode.ResetPreviousPosition();
            e.inspectExplode.PositionJitter  = 0.0f;  // Random offset for each particle.
            e.inspectExplode.StartRadius     = radius * 0.2f;
            e.inspectExplode.EndRadius       = radius * 1.3f;
            e.inspectExplode.MaxRotationRate = 0.1f;
            e.inspectExplode.EmissionRate    = 30.0f;
            e.inspectExplode.MinLifetime     = 0.1f;
            e.inspectExplode.MaxLifetime     = 0.3f;
            e.inspectExplode.Color           = new Vector4(1.0f, 1.0f, 1.0f, 1.0f);
            e.inspectExplode.Active          = true;

            e.startTime = Time.GameTimeTotalSeconds;

            e.inspectSmoke.AddToManager();
            e.inspectExplode.AddToManager();

            fooList.Add(e);
        }   // end of ExplosionManager CreateScanEffect()