From 50e479b21df1c2a121e8f954887b32a393b58497 Mon Sep 17 00:00:00 2001 From: OptimizedForDensity <105244635+OptimizedForDensity@users.noreply.github.com> Date: Wed, 22 Jun 2022 02:29:43 -0400 Subject: [PATCH] Fix cases where AI great people get stuck trying to build a great improvement (#7239) --- core/src/com/unciv/logic/automation/SpecificUnitAutomation.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/automation/SpecificUnitAutomation.kt b/core/src/com/unciv/logic/automation/SpecificUnitAutomation.kt index 963328e349..661ef8b6cd 100644 --- a/core/src/com/unciv/logic/automation/SpecificUnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/SpecificUnitAutomation.kt @@ -257,14 +257,14 @@ object SpecificUnitAutomation { val applicableTiles = city.getWorkableTiles().filter { it.isLand && it.resource == null && !it.isCityCenter() && (unit.currentTile == it || unit.movement.canMoveTo(it)) - && !it.containsGreatImprovement() + && !it.containsGreatImprovement() && it.canBuildImprovement(improvement, unit.civInfo) } if (applicableTiles.none()) continue val pathToCity = unit.movement.getShortestPath(city.getCenterTile()) if (pathToCity.isEmpty()) continue - if (pathToCity.size > 2) { + if (pathToCity.size > 2 && unit.getTile().getCity() != city) { if (unit.getTile().militaryUnit == null) return // Don't move until you're accompanied by a military unit unit.movement.headTowards(city.getCenterTile()) return