diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index 851d77c10a..cfa4bbf092 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -246,6 +246,13 @@ class Building : NamedStats(), IConstruction { if(uniqueObjects.any { it.placeholderText=="Not displayed as an available construction unless [] is built" && !construction.containsBuildingOrEquivalent(it.params[0])} ) return "Should not be displayed" + + for (unique in uniqueObjects.filter { it.placeholderText == "Not displayed as an available construction without []"}) { + val filter = unique.params[0] + if ((filter in civInfo.gameInfo.ruleSet.tileResources && !construction.cityInfo.civInfo.hasResource(filter)) + || (filter in civInfo.gameInfo.ruleSet.buildings && !construction.containsBuildingOrEquivalent(filter))) + return "Should not be displayed" + } for(unique in uniqueObjects) when (unique.placeholderText) { "Must be on []" -> if (!cityCenter.matchesUniqueFilter(unique.params[0])) return unique.text diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt index f62322c5a8..b7a2c34a2c 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt @@ -125,11 +125,9 @@ class BaseUnit : INamed, IConstruction { return "Can only build water units in coastal cities" for (unique in uniqueObjects.filter { it.placeholderText == "Not displayed as an available construction without []"}) { val filter = unique.params[0] - return if (construction.containsBuildingOrEquivalent(filter) - || (construction.cityInfo.civInfo.gameInfo.ruleSet.tileResources.containsKey(filter) - && construction.cityInfo.civInfo.hasResource(filter))) - "" - else "Should not be displayed" + if ((filter in construction.cityInfo.civInfo.gameInfo.ruleSet.tileResources && !construction.cityInfo.civInfo.hasResource(filter)) + || (filter in construction.cityInfo.civInfo.gameInfo.ruleSet.buildings && !construction.containsBuildingOrEquivalent(filter))) + return "Should not be displayed" } val civRejectionReason = getRejectionReason(construction.cityInfo.civInfo) if (civRejectionReason != "") return civRejectionReason