From abc876f4a16974b5e0ecd9c8d9400473bcdf4f10 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 3 Mar 2024 21:51:15 +0200 Subject: [PATCH] Allow multifilter uniques to count for filtering --- .../unciv/models/ruleset/validation/UniqueValidator.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/validation/UniqueValidator.kt b/core/src/com/unciv/models/ruleset/validation/UniqueValidator.kt index 2ba9fe53ed..e7ec5bb2ee 100644 --- a/core/src/com/unciv/models/ruleset/validation/UniqueValidator.kt +++ b/core/src/com/unciv/models/ruleset/validation/UniqueValidator.kt @@ -15,14 +15,20 @@ import com.unciv.models.ruleset.unique.UniqueType class UniqueValidator(val ruleset: Ruleset) { - + /** Used to determine if certain uniques are used for filtering */ private val allNonTypedUniques = HashSet() + /** Used to determine if certain uniques are used for filtering */ private val allUniqueParameters = HashSet() private fun addToHashsets(uniqueHolder: IHasUniques) { for (unique in uniqueHolder.uniqueObjects) { if (unique.type == null) allNonTypedUniques.add(unique.text) - else allUniqueParameters.addAll(unique.allParams) + else allUniqueParameters.addAll(unique.allParams.flatMap { + // Multifilters have the actual filtering uniques + it.removePrefix("{").removeSuffix("}").split("} {")} + // Non-filters + .map { if (it.startsWith("non-[")) {it.removePrefix("non-[").removeSuffix("]")} else it } + ) } }