Exemplo n.º 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);
     }
 }
Exemplo n.º 2
0
        private static BeamExplosion NewBeamExplosion()
        {
            BeamExplosion ret = null;

            if (beamExplosions.Count > 0)
            {
                ret = beamExplosions[beamExplosions.Count - 1];
                beamExplosions.RemoveAt(beamExplosions.Count - 1);
            }
            else
            {
                ret = new BeamExplosion();
            }
            return(ret);
        }
Exemplo n.º 3
0
        }   // end of ExplosionManager CreateExplosion()

        /// <summary>
        /// Public call which allows the creation of an beam explosion 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 CreateBeamExplosion(Vector3 position, float radius)
        {
            BeamExplosion e = NewBeamExplosion();

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

            e.beamSmokeDuration  = 0.85f;
            e.beamSmoke          = new BeamSmokeEmitter(InGame.inGame.ParticleSystemManager);
            e.beamSmoke.Position = position;
            e.beamSmoke.ResetPreviousPosition();
            e.beamSmoke.PositionJitter = 0.0f;  // Random offset for each particle.
            e.beamSmoke.StartRadius    = radius * 0.2f;
            e.beamSmoke.EndRadius      = radius * 1.4f;
            e.beamSmoke.EmissionRate   = 15.0f;
            e.beamSmoke.Color          = new Vector4(0.4f, 0.8f, 1.0f, 0.5f);
            e.beamSmoke.Active         = true;

            e.beamFireballDuration  = 0.6f;
            e.beamFireball          = new BeamExplosionEmitter(InGame.inGame.ParticleSystemManager);
            e.beamFireball.Position = position;
            e.beamFireball.ResetPreviousPosition();
            e.beamFireball.PositionJitter  = 0.0f;  // Random offset for each particle.
            e.beamFireball.StartRadius     = radius * 0.2f;
            e.beamFireball.EndRadius       = radius * 1.4f;
            e.beamFireball.EmissionRate    = 15.0f;
            e.beamFireball.MinLifetime     = 0.1f;
            e.beamFireball.MaxLifetime     = 0.4f;
            e.beamFireball.MaxRotationRate = 0.1f;
            e.beamFireball.Active          = true;

            e.startTime = Time.GameTimeTotalSeconds;

            e.beamSmoke.AddToManager();
            e.beamFireball.AddToManager();

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