protected override void CycleThink() { if (Ring != null) { foreach (var player in Player.GetWorldPlayers(World)) { if ((player?.Fleet?.Ships?.Count ?? 0) > 0) { var fleet = player.Fleet; foreach (var ship in fleet.Ships.ToList()) { if (Vector2.Distance(ship.Position, Ring.Position) > Ring.Size) { fleet.AbandonShip(ship); } } } } } if (World.Hook.SumoMode && Ring == null) { Ring = new Sumo.RingBody(World, new Vector2(0, 0), World.Hook.SumoRingSize); World.GetActor <SpawnLocationsActor>().GeneratorAdd("sumo", this.FleetSpawnPosition); World.Hook.SpawnLocationMode = "sumo"; } if (!World.Hook.SumoMode && Ring != null) { Ring.Destroy(); World.FleetSpawnPositionGenerator = null; } }
void IActor.CreateDestroy() { if (World.Hook.SumoMode && Ring == null) { Ring = new Sumo.RingBody(new Vector2(0, 0), World.Hook.SumoRingSize); Ring.Init(World); World.FleetSpawnPositionGenerator = this.FleetSpawnPosition; } if (!World.Hook.SumoMode && Ring != null) { Ring.Destroy(); World.FleetSpawnPositionGenerator = null; } }