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; } }