diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 3f3042ce8e..1a2340937a 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -749,21 +749,21 @@ class CityInfo { // Get all matching uniques that don't apply to only this city fun getMatchingUniquesWithNonLocalEffects(placeholderText: String): Sequence { return cityConstructions.builtBuildingUniqueMap.getUniques(placeholderText) - .filter { it.params.none { param -> param == "in this city" } } + .filter { !it.isLocalEffect } // Note that we don't query religion here, as those only have local effects } fun getMatchingUniquesWithNonLocalEffects(uniqueType: UniqueType): Sequence { return cityConstructions.builtBuildingUniqueMap.getUniques(uniqueType) - .filter { it.params.none { param -> param == "in this city" } } + .filter { !it.isLocalEffect } // Note that we don't query religion here, as those only have local effects } // Get all uniques that don't apply to only this city fun getAllUniquesWithNonLocalEffects(): Sequence { return cityConstructions.builtBuildingUniqueMap.getAllUniques() - .filter { it.params.none { param -> param == "in this city" } } + .filter { !it.isLocalEffect } // Note that we don't query religion here, as those only have local effects } diff --git a/core/src/com/unciv/models/ruleset/unique/Unique.kt b/core/src/com/unciv/models/ruleset/unique/Unique.kt index 191b6eda51..9715dbe961 100644 --- a/core/src/com/unciv/models/ruleset/unique/Unique.kt +++ b/core/src/com/unciv/models/ruleset/unique/Unique.kt @@ -26,6 +26,8 @@ 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") + fun isOfType(uniqueType: UniqueType) = uniqueType == type fun conditionalsApply(civInfo: CivilizationInfo? = null, city: CityInfo? = null): Boolean {