AI prioritizes work boats, and creates work boats for close non-contiguous cities

This commit is contained in:
Yair Morgenstern 2023-06-14 09:48:32 +03:00
parent e558ebcc59
commit b776790556

View File

@ -3,15 +3,15 @@ package com.unciv.logic.automation.city
import com.unciv.logic.automation.Automation import com.unciv.logic.automation.Automation
import com.unciv.logic.automation.civilization.NextTurnAutomation import com.unciv.logic.automation.civilization.NextTurnAutomation
import com.unciv.logic.city.CityConstructions import com.unciv.logic.city.CityConstructions
import com.unciv.models.ruleset.INonPerpetualConstruction
import com.unciv.models.ruleset.PerpetualConstruction
import com.unciv.logic.civilization.CityAction import com.unciv.logic.civilization.CityAction
import com.unciv.logic.civilization.NotificationCategory import com.unciv.logic.civilization.NotificationCategory
import com.unciv.logic.civilization.NotificationIcon import com.unciv.logic.civilization.NotificationIcon
import com.unciv.logic.civilization.PlayerType import com.unciv.logic.civilization.PlayerType
import com.unciv.logic.map.BFS import com.unciv.logic.map.BFS
import com.unciv.models.ruleset.Building import com.unciv.models.ruleset.Building
import com.unciv.models.ruleset.INonPerpetualConstruction
import com.unciv.models.ruleset.MilestoneType import com.unciv.models.ruleset.MilestoneType
import com.unciv.models.ruleset.PerpetualConstruction
import com.unciv.models.ruleset.Victory import com.unciv.models.ruleset.Victory
import com.unciv.models.ruleset.unique.StateForConditionals import com.unciv.models.ruleset.unique.StateForConditionals
import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.ruleset.unique.UniqueType
@ -159,9 +159,10 @@ class ConstructionAutomation(val cityConstructions: CityConstructions){
val bfs = BFS(cityInfo.getCenterTile()) { val bfs = BFS(cityInfo.getCenterTile()) {
(it.isWater || it.isCityCenter()) && it.isFriendlyTerritory(civInfo) (it.isWater || it.isCityCenter()) && (it.getOwner() == null || it.isFriendlyTerritory(civInfo))
} }
repeat(10) { bfs.nextStep() } repeat(20) { bfs.nextStep() } //
if (!bfs.getReachedTiles() if (!bfs.getReachedTiles()
.any { tile -> .any { tile ->
tile.hasViewableResource(civInfo) && tile.improvement == null && tile.getOwner() == civInfo tile.hasViewableResource(civInfo) && tile.improvement == null && tile.getOwner() == civInfo