From 4844a0e0055899946c1da3e39a7623f8ba8c6a11 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Fri, 11 Sep 2020 11:02:05 +0300 Subject: [PATCH] Fixed fresh water adjacency - @HadeanLake --- core/src/com/unciv/logic/map/TileInfo.kt | 2 +- core/src/com/unciv/models/ruleset/Building.kt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/map/TileInfo.kt b/core/src/com/unciv/logic/map/TileInfo.kt index c403aa8aef..4441bf447a 100644 --- a/core/src/com/unciv/logic/map/TileInfo.kt +++ b/core/src/com/unciv/logic/map/TileInfo.kt @@ -309,7 +309,7 @@ open class TileInfo { fun fitsUniqueFilter(filter:String): Boolean { return filter == baseTerrain - || (filter == "River" || filter == "Fresh water") && isAdjacentToRiver() + || filter == "River" && isAdjacentToRiver() || filter == terrainFeature || baseTerrainObject.uniques.contains(filter) || terrainFeature != null && getTerrainFeature()!!.uniques.contains(filter) diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index 014c7e7d28..74ea67239d 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -235,7 +235,8 @@ class Building : NamedStats(), IConstruction { for(unique in uniqueObjects) when (unique.placeholderText) { "Must be on []" -> if (!cityCenter.fitsUniqueFilter(unique.params[0])) return unique.text "Must not be on []" -> if (cityCenter.fitsUniqueFilter(unique.params[0])) return unique.text - "Must be next to []" -> if (cityCenter.getTilesInDistance(1).none { it.fitsUniqueFilter(unique.params[0]) }) return unique.text + "Must be next to []" -> if (!(unique.params[0] == "Fresh water" && cityCenter.isAdjacentToRiver()) // Fresh water is special, in that rivers are not tiles themselves but also fit the filter.. + && cityCenter.getTilesInDistance(1).none { it.fitsUniqueFilter(unique.params[0])}) return unique.text "Must not be next to []" -> if (cityCenter.getTilesInDistance(1).any { it.fitsUniqueFilter(unique.params[0]) }) return unique.text "Must have an owned [] within [] tiles" -> if (cityCenter.getTilesInDistance(distance = unique.params[1].toInt()).none { it.fitsUniqueFilter(unique.params[0]) && it.getOwner() == construction.cityInfo.civInfo }) return unique.text