From be80aaecdab3e3cbba4eadb67dd34f0875602ed8 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Sun, 30 Dec 2018 19:19:06 +0800 Subject: [PATCH] Worker automation leaves great tile improvement alone. --- core/src/com/unciv/logic/automation/WorkerAutomation.kt | 2 +- core/src/com/unciv/logic/map/TileInfo.kt | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/automation/WorkerAutomation.kt b/core/src/com/unciv/logic/automation/WorkerAutomation.kt index 24713acd5b..cf022f8cbe 100644 --- a/core/src/com/unciv/logic/automation/WorkerAutomation.kt +++ b/core/src/com/unciv/logic/automation/WorkerAutomation.kt @@ -98,7 +98,7 @@ class WorkerAutomation(val unit: MapUnit) { val workableTiles = currentTile.getTilesInDistance(4) .filter { (it.civilianUnit== null || it == currentTile) - && (it.improvement == null || (it.hasViewableResource(unit.civInfo) && it.getTileResource().improvement != it.improvement)) + && (it.improvement == null || (it.hasViewableResource(unit.civInfo) && !it.containsGreatImprovement() && it.getTileResource().improvement != it.improvement)) && it.isLand() && !it.getBaseTerrain().impassable && it.canBuildImprovement(chooseImprovement(it, unit.civInfo), unit.civInfo) diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index 16edd89db1..b1430f4d26 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -44,6 +44,11 @@ open class TileInfo { return toReturn } + fun containsGreatImprovement(): Boolean { + if (getTileImprovement() == null) return false + return getTileImprovement()!!.name in listOf("Academy", "Landmark", "Manufactory", "Customs house") + } + //region pure functions fun getUnits(): List { val list = ArrayList(2) @@ -162,7 +167,7 @@ open class TileInfo { if (improvement.improvingTech != null && observingCiv.tech.isResearched(improvement.improvingTech!!)) stats.add(improvement.improvingTechStats!!) // eg Chemistry for mines if (improvement.name == "Trading post" && city != null && city.civInfo.policies.isAdopted("Free Thought")) stats.science += 1f - if (improvement.name in listOf("Academy", "Landmark", "Manufactory", "Customs house") && observingCiv.policies.isAdopted("Freedom Complete")) + if (containsGreatImprovement() && observingCiv.policies.isAdopted("Freedom Complete")) stats.add(improvement) // again, for the double effect }