Example #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);
     }
 }
Example #2
0
        }   // end of ExplosionManager CreateDustPuff()

        /// <summary>
        /// Public call which allows the creation of a steam puff from anywhere in game.
        /// </summary>
        /// <param name="position">Where the steam puff occurs.</param>
        /// <param name="radius">Approximate size of the puff.</param>
        /// <param name="density">Acts as a multiplier on the emission rate to create more or less dense puffs.</param>
        public static void CreateSteamPuff(Vector3 position, float density, float scale)
        {
            SteamPuff steamPuff = NewFoo <SteamPuff>(steamPuffs);

            steamPuff.position = position;

            steamPuff.emitter.Position = position;
            steamPuff.emitter.ResetPreviousPosition();
            steamPuff.emitter.Scale          = scale;
            steamPuff.emitter.PositionJitter = steamPuff.emitter.StartRadius * scale * 0.5f;    // Random offset for each particle.
            steamPuff.emitter.EmissionRate   = 100.0f * density;
            steamPuff.emitter.Active         = true;
            steamPuff.emitter.Emitting       = true;

            steamPuff.startTime = Time.GameTimeTotalSeconds;
        }   // end of ExplosionManager CreateSteamPuff()