From b6240efd77444acda7991244ebe635252d190db4 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 13 Jan 2025 09:02:56 +0200 Subject: [PATCH] Fix worker improvement crash (#12807) --- .../src/com/unciv/logic/automation/unit/WorkerAutomation.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt b/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt index 37ce4aa011..733e2cccd9 100644 --- a/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt +++ b/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt @@ -84,7 +84,7 @@ class WorkerAutomation( val tileToWork = findTileToWork(unit, dangerousTiles, localUniqueCache) if (tileToWork != currentTile && tileToWork != null) { - headTowardsTileToWork(unit, tileToWork) + headTowardsTileToWork(unit, tileToWork, localUniqueCache) return } @@ -160,6 +160,7 @@ class WorkerAutomation( private fun headTowardsTileToWork( unit: MapUnit, tileToWork: Tile, + localUniqueCache: LocalUniqueCache ) { debug("WorkerAutomation: %s -> head towards %s", unit.toString(), tileToWork) val currentTile = unit.getTile() @@ -194,7 +195,8 @@ class WorkerAutomation( // tileRankings is updated in getBasePriority, which is only called if isAutomationWorkableTile is true // Meaning, there are tiles we can't/shouldn't work, and they won't even be in tileRankings - if (unit.currentTile in tileRankings) startWorkOnCurrentTile(unit) + if (tileHasWorkToDo(unit.currentTile, unit, localUniqueCache)) + startWorkOnCurrentTile(unit) }