diff --git a/core/src/com/unciv/logic/map/tile/Tile.kt b/core/src/com/unciv/logic/map/tile/Tile.kt index d600ece540..a8e54ba5ca 100644 --- a/core/src/com/unciv/logic/map/tile/Tile.kt +++ b/core/src/com/unciv/logic/map/tile/Tile.kt @@ -390,7 +390,8 @@ class Tile : IsPartOfGameInfoSerialization, Json.Serializable { fun getWorkingCity(): City? { val civInfo = getOwner() ?: return null - return civInfo.cities.firstOrNull { it.isWorked(this) } + if (owningCity?.isWorked(this) == true) return owningCity // common case + return civInfo.cities.firstOrNull { it != owningCity && it.isWorked(this) } } fun isBlockaded(): Boolean { @@ -422,7 +423,8 @@ class Tile : IsPartOfGameInfoSerialization, Json.Serializable { fun isWorked(): Boolean = getWorkingCity() != null fun providesYield(): Boolean { if (getCity() == null) return false - return isCityCenter() || isWorked() + return isCityCenter() + || isWorked() || getUnpillagedTileImprovement()?.hasUnique(UniqueType.TileProvidesYieldWithoutPopulation) == true || terrainHasUnique(UniqueType.TileProvidesYieldWithoutPopulation) }