From e18a964a283b8f40ec4ab64c4a8b8c8104408d95 Mon Sep 17 00:00:00 2001 From: itanasi <44038014+itanasi@users.noreply.github.com> Date: Sun, 26 Mar 2023 01:47:45 -0700 Subject: [PATCH] Automated Civilians don't multi-turn path through Enemy Territory (#9038) --- core/src/com/unciv/logic/map/mapunit/UnitMovement.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/com/unciv/logic/map/mapunit/UnitMovement.kt b/core/src/com/unciv/logic/map/mapunit/UnitMovement.kt index ac9e5a8f7f..a1a0508d4b 100644 --- a/core/src/com/unciv/logic/map/mapunit/UnitMovement.kt +++ b/core/src/com/unciv/logic/map/mapunit/UnitMovement.kt @@ -237,6 +237,7 @@ class UnitMovement(val unit: MapUnit) { val newTilesToCheck = ArrayList() var considerZoneOfControl = true // only for first distance! val visitedTiles: HashSet = hashSetOf(currentTile) + val civilization = unit.civ while (true) { if (distance == 2) { // only set this once after distance > 1 @@ -261,6 +262,9 @@ class UnitMovement(val unit: MapUnit) { // Avoid damaging terrain on first pass if (avoidDamagingTerrain && unit.getDamageFromTerrain(reachableTile) > 0) continue + // Avoid Enemy Territory if Civilian and Automated. For multi-turn pathing + if (unit.isCivilian() && unit.isAutomated() && reachableTile.isEnemyTerritory(civilization)) + continue if (reachableTile == destination) { val path = mutableListOf(destination) // Traverse the tree upwards to get the list of tiles leading to the destination