diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 1a2340937a..22b2d72a56 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -727,14 +727,14 @@ class CityInfo { // Matching uniques provided by sources in the city itself fun getLocalMatchingUniques(placeholderText: String): Sequence { return cityConstructions.builtBuildingUniqueMap.getUniques(placeholderText) - .filter { it.params.none { param -> param == "in other cities" } } + + .filter { !it.isAntiLocalEffect } + religion.getUniques().filter { it.placeholderText == placeholderText } } fun getLocalMatchingUniques(uniqueType: UniqueType, stateForConditionals: StateForConditionals? = null): Sequence { return ( cityConstructions.builtBuildingUniqueMap.getUniques(uniqueType) - .filter { it.params.none { param -> param == "in other cities" } } + .filter { !it.isAntiLocalEffect } + religion.getUniques().filter { it.isOfType(uniqueType) } ).filter { it.conditionalsApply(stateForConditionals) diff --git a/core/src/com/unciv/models/ruleset/unique/Unique.kt b/core/src/com/unciv/models/ruleset/unique/Unique.kt index 9715dbe961..237a422503 100644 --- a/core/src/com/unciv/models/ruleset/unique/Unique.kt +++ b/core/src/com/unciv/models/ruleset/unique/Unique.kt @@ -27,6 +27,7 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s val allParams = params + conditionals.flatMap { it.params } val isLocalEffect = params.contains("in this city") + val isAntiLocalEffect = params.contains("in other cities") fun isOfType(uniqueType: UniqueType) = uniqueType == type