diff --git a/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt b/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt index 356cc7cc2e..5dae566efe 100644 --- a/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt +++ b/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt @@ -139,6 +139,7 @@ class WorkerAutomation( fun automateConnectRoad(unit: MapUnit, tilesWhereWeWillBeCaptured: Set){ if (actualBestRoadAvailable == RoadStatus.None) return + var currentTile = unit.getTile() /** Reset side effects from automation, return worker to non-automated state*/ @@ -150,6 +151,11 @@ class WorkerAutomation( currentTile.stopWorkingOnImprovement() } + if (unit.automatedRoadConnectionDestination == null){ + stopAndCleanAutomation() + return + } + /** Conditions for whether it is acceptable to build a road on this tile */ fun shouldBuildRoadOnTile(tile: Tile): Boolean { return !tile.isCityCenter() // Can't build road on city tiles diff --git a/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt b/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt index 96c04b35fe..667f15419c 100644 --- a/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt +++ b/core/src/com/unciv/ui/screens/worldscreen/WorldMapHolder.kt @@ -791,6 +791,7 @@ class WorldMapHolder( // Z-Layer: 4 // Highlight road path for workers currently connecting roads if (unit.isAutomatingRoadConnection()) { + if (unit.automatedRoadConnectionPath == null) return val currTileIndex = unit.automatedRoadConnectionPath!!.indexOf(unit.currentTile.position) if (currTileIndex != -1) { val futureTiles = unit.automatedRoadConnectionPath!!.filterIndexed { index, _ ->