From 2e51de3b22255f7489384f94e5852fd8b88c0c66 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Thu, 10 Oct 2024 23:14:14 +0300 Subject: [PATCH] Added "Remaining [civFilter] Civilizations" as countable value --- android/assets/jsons/translations/template.properties | 8 ++------ core/src/com/unciv/models/ruleset/unique/Countables.kt | 4 ++++ .../unciv/models/ruleset/unique/UniqueParameterType.kt | 5 +++++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index f2404c65e6a68..63b0dda461b16 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -1968,13 +1968,9 @@ Cannot be built on [tileFilter] tiles = Does not need removal of [feature] = Gain a free [building] [cityFilter] = -# Uniques not found in JSON files +# Countables -Only available after [] turns = -This Unit upgrades for free = -[stats] when a city adopts this religion for the first time = -Never destroyed when the city is captured = -Invisible to others = +Remaining [civFilter] Civilizations = # Unused Resources diff --git a/core/src/com/unciv/models/ruleset/unique/Countables.kt b/core/src/com/unciv/models/ruleset/unique/Countables.kt index 4e79f24c6e71e..0f83942639ecc 100644 --- a/core/src/com/unciv/models/ruleset/unique/Countables.kt +++ b/core/src/com/unciv/models/ruleset/unique/Countables.kt @@ -32,6 +32,10 @@ object Countables { if (countable.equalsPlaceholderText("[] Buildings")) return civInfo.cities.sumOf { it.cityConstructions.getBuiltBuildings() .count { it.matchesFilter(placeholderParameters[0]) } } + + if (countable.equalsPlaceholderText("Remaining [] Civilizations")) + return gameInfo.civilizations.filter { !it.isDefeated() } + .count { it.matchesFilter(placeholderParameters[0]) } if (gameInfo.ruleset.tileResources.containsKey(countable)) return stateForConditionals.getResourceAmount(countable) diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt index dd37b8555849d..82f987c02d4aa 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt @@ -12,6 +12,7 @@ import com.unciv.models.ruleset.unique.UniqueParameterType.Companion.guessTypeFo import com.unciv.models.ruleset.validation.Suppression import com.unciv.models.stats.Stat import com.unciv.models.translations.TranslationFileWriter +import com.unciv.models.translations.equalsPlaceholderText // 'region' names beginning with an underscore are used here for a prettier "Structure window" - they go in front of the rest. @@ -71,6 +72,10 @@ enum class UniqueParameterType( override fun isKnownValue(parameterText: String, ruleset: Ruleset) = when { parameterText.toIntOrNull() != null -> true + parameterText.equalsPlaceholderText("[] Buildings") -> true + parameterText.equalsPlaceholderText("[] Cities") -> true + parameterText.equalsPlaceholderText("[] Units") -> true + parameterText.equalsPlaceholderText("Remaining [] Civilizations") -> true else -> super.isKnownValue(parameterText, ruleset) }