public static List<IslandCM> GetBridgedNeibourIslands(MapCM map, int islandID, int playerID, bool enemyOnly = false) { List<IslandCM> bridgedNeibours = new List<IslandCM>(); List<IslandCM> neibours = (enemyOnly ? GetNeibourEnemyIslands(map, islandID, playerID) : GetNeibourIslands(map, islandID)); for (int i = 0; i < neibours.Count; ++i) { IslandCM island = neibours[i]; if (map.HasIslandsShipBrige(islandID, island.ID, playerID)) bridgedNeibours.Add(island); } return bridgedNeibours; }
public static List<IslandCM> GetEnemyNeibourIslandsWithTheirBridge(MapCM map, int playerID) { List<IslandCM> res = new List<IslandCM>(); List<IslandCM> playerIslands = map.GetIslandsByOwner(playerID); for (int i = 0; i < playerIslands.Count; ++i) { IslandCM island = playerIslands[i]; List<IslandCM> neibourEnemy = GetNeibourEnemyIslands(map, island.ID, playerID); res.AddRange(neibourEnemy.Where(e => map.HasIslandsShipBrige(e.ID, island.ID, e.OwnerID))); } return res.Distinct().ToList(); }