示例#1
0
 void Explode()
 {
     if (!exploded)
     {
         foreach (ShipObj ship in Sector.Redria.Ships.table)
         {
             Vector3 outVector = ship.Position - Position;
             float   distance  = outVector.Length();
             if (distance < Data.ExplosionSize)
             {
                 ship.ExplosionStrike(Data.Power, Data.ExplosionSize, distance);
             }
         }
         MessageWriter.ExplosionMessage(ID, Data.ExplosionSize);
         if (Target is ShipObj)
         {
             var EnemyShip = (ShipObj)Target;
             MessageWriter.MissileLockonMessage(EnemyShip.Client.Owner, 0, LockonStatus.MissileDestroyed);
         }
         Sector.Redria.Objects.Remove(this);
         Sector.Redria.Space.Remove(rocketMotor);
         Sector.Redria.Space.Remove(trackingMotor);
         Sector.Redria.Space.Remove(this.Entity);
         exploded = true;
     }
 }