public override void Delete() { if (OnGoing) { EndInvasion(); } if (Region != null) { Region.Unregister(); Region = null; } if (Timer != null) { Timer.Stop(); Timer = null; } foreach (WayPoint wp in WaypointsA.Where(w => w != null && !w.Deleted)) { wp.Delete(); } foreach (WayPoint wp in WaypointsB.Where(w => w != null && !w.Deleted)) { wp.Delete(); } if (Level3Spawner != null) { Level3Spawner.Deactivate(); Level3Spawner = null; } base.Delete(); }