public static void AddExplosion(Vector3 Position, float radius, float intensity, float duration)
 {
     if (radius <= 0f)
     {
         radius = 1f;
     }
     Explosion newExp = new Explosion()
     {
         duration = 2.25f,
         pos = Position
     };
     if (ExplosionManager.universeScreen.viewState == UniverseScreen.UnivScreenState.ShipView)
     {
         newExp.light = new PointLight();
         newExp.Radius = radius;
         newExp.light.World = Matrix.Identity * Matrix.CreateTranslation(Position);
         newExp.light.Position = Position;
         newExp.light.Radius = radius;
         newExp.light.ObjectType = ObjectType.Dynamic;
         newExp.light.DiffuseColor = new Vector3(0.9f, 0.8f, 0.7f);
         newExp.light.Intensity = intensity;
         newExp.light.Enabled = true;
         lock (GlobalStats.ObjectManagerLocker)
         {
             ExplosionManager.universeScreen.ScreenManager.inter.LightManager.Submit(newExp.light);
         }
     }
     switch ((int)RandomMath2.RandomBetween(0f, 2f))
     {
         case 0:
         {
             newExp.AnimationTexture = "sd_explosion_12a_cc/sd_explosion_12a_cc_00000";
             newExp.AnimationBasePath = "sd_explosion_12a_cc/sd_explosion_12a_cc_";
             break;
         }
         case 1:
         {
             newExp.AnimationTexture = "sd_explosion_14a_cc/sd_explosion_14a_cc_00000";
             newExp.AnimationBasePath = "sd_explosion_14a_cc/sd_explosion_14a_cc_";
             break;
         }
         case 2:
         {
             newExp.AnimationTexture = "sd_explosion_07a_cc/sd_explosion_07a_cc_00000";
             newExp.AnimationBasePath = "sd_explosion_07a_cc/sd_explosion_07a_cc_00000";
             break;
         }
     }
     newExp.Rotation = (float)RandomMath2.RandomBetween(0f, 6.28318548f);
     lock (GlobalStats.ExplosionLocker)
     {
         ExplosionManager.ExplosionList.Add(newExp);
     }
 }
 public static void AddExplosion(Vector3 Position, float radius, float intensity, float duration, bool Shockwave)
 {
     if (radius == 0f)
     {
         radius = 1f;
     }
     Explosion newExp = new Explosion()
     {
         hasShockwave = Shockwave,
         pos = Position,
         duration = duration
     };
     if (ExplosionManager.universeScreen.viewState == UniverseScreen.UnivScreenState.ShipView)
     {
         newExp.light = new PointLight();
         newExp.Radius = radius;
         newExp.light.World = Matrix.Identity * Matrix.CreateTranslation(Position);
         newExp.light.Position = Position;
         newExp.light.Radius = radius;
         newExp.light.ObjectType = ObjectType.Dynamic;
         newExp.light.DiffuseColor = new Vector3(0.9f, 0.8f, 0.7f);
         newExp.light.Intensity = intensity;
         newExp.light.Enabled = true;
         lock (GlobalStats.ObjectManagerLocker)
         {
             ExplosionManager.universeScreen.ScreenManager.inter.LightManager.Submit(newExp.light);
         }
     }
     lock (GlobalStats.ExplosionLocker)
     {
         ExplosionManager.ExplosionList.Add(newExp);
     }
 }