From d652294ea9d92742a84c92a9f12a94d231038ec3 Mon Sep 17 00:00:00 2001 From: General_E <121508218+Emandac@users.noreply.github.com> Date: Thu, 31 Oct 2024 06:26:35 +0100 Subject: [PATCH] Fixing workers not repairing tiles with Great improvement when pillaged (#12382) * Settler settle best tile when not escort and dangerous Tiles instead of running away Settler unit will now settle on best tile in dangerous Tiles without escort instead of running away. * Update WorkerAutomation.kt * Update SpecificUnitAutomation.kt * Update WorkerAutomation.kt * Update SpecificUnitAutomation.kt --- .../com/unciv/logic/automation/unit/SpecificUnitAutomation.kt | 1 - core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/core/src/com/unciv/logic/automation/unit/SpecificUnitAutomation.kt b/core/src/com/unciv/logic/automation/unit/SpecificUnitAutomation.kt index 20241c0cbf..9104fe1be8 100644 --- a/core/src/com/unciv/logic/automation/unit/SpecificUnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/unit/SpecificUnitAutomation.kt @@ -190,7 +190,6 @@ object SpecificUnitAutomation { throw Exception("City within distance") return } - unit.movement.headTowards(bestCityLocation) if (unit.getTile() == bestCityLocation && unit.hasMovement()) foundCityAction.action.invoke() diff --git a/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt b/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt index ff847556eb..b1552e6b64 100644 --- a/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt +++ b/core/src/com/unciv/logic/automation/unit/WorkerAutomation.kt @@ -232,7 +232,7 @@ class WorkerAutomation( if (!tile.hasViewableResource(civInfo) && tile.getTilesInDistance(civInfo.gameInfo.ruleset.modOptions.constants.cityWorkRange) .none { it.isCityCenter() && it.getCity()?.civ == civInfo } ) return false - if (tile.getTileImprovement()?.hasUnique(UniqueType.AutomatedUnitsWillNotReplace) == true) return false + if (tile.getTileImprovement()?.hasUnique(UniqueType.AutomatedUnitsWillNotReplace) == true && !tile.isPillaged()) return false return true } @@ -270,8 +270,6 @@ class WorkerAutomation( tileRankings[tile] = TileImprovementRank(priority) return priority + unitSpecificPriority } - - /** * Calculates the priority building the improvement on the tile */