From b7f9472308a7ea289e89e086a5e18167af6844e6 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sun, 31 Oct 2021 22:24:27 +0200 Subject: [PATCH] If we're already at it, same thing for anti-local effects, this should help performance in the tileInfo.getStats() function --- core/src/com/unciv/logic/city/CityInfo.kt | 4 ++-- core/src/com/unciv/models/ruleset/unique/Unique.kt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) 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