From 5d1c05d8e4d82fa45ad4b7f7d2b0ca2859c5ac7d Mon Sep 17 00:00:00 2001 From: PLynx Date: Sun, 6 Oct 2024 15:46:34 +0200 Subject: [PATCH] Add two population-related conditional uniques (#12258) * Added the Conditional Below Population * Added the Conditional Between Population --- .../com/unciv/models/ruleset/unique/Conditionals.kt | 4 ++++ core/src/com/unciv/models/ruleset/unique/UniqueType.kt | 2 ++ docs/Modders/uniques.md | 10 ++++++++++ 3 files changed, 16 insertions(+) diff --git a/core/src/com/unciv/models/ruleset/unique/Conditionals.kt b/core/src/com/unciv/models/ruleset/unique/Conditionals.kt index cc413dbec2b85..b6eb60d347114 100644 --- a/core/src/com/unciv/models/ruleset/unique/Conditionals.kt +++ b/core/src/com/unciv/models/ruleset/unique/Conditionals.kt @@ -195,6 +195,10 @@ object Conditionals { checkOnCity { population.getPopulationFilterAmount(conditional.params[1]) >= conditional.params[0].toInt() } UniqueType.ConditionalExactPopulationFilter -> checkOnCity { population.getPopulationFilterAmount(conditional.params[1]) == conditional.params[0].toInt() } + UniqueType.ConditionalBetweenPopulationFilter -> + checkOnCity {population.getPopulationFilterAmount(conditional.params[2]) in conditional.params[0].toInt()..conditional.params[1].toInt() } + UniqueType.ConditionalBelowPopulationFilter -> + checkOnCity { population.getPopulationFilterAmount(conditional.params[1]) < conditional.params[0].toInt() } UniqueType.ConditionalWhenGarrisoned -> checkOnCity { getCenterTile().militaryUnit?.canGarrison() == true } diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index df4b7e71cc61e..6f9ead6818423 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -729,6 +729,8 @@ enum class UniqueType( ConditionalCityWithoutBuilding("in cities without a [buildingFilter]", UniqueTarget.Conditional), ConditionalPopulationFilter("in cities with at least [amount] [populationFilter]", UniqueTarget.Conditional), ConditionalExactPopulationFilter("in cities with [amount] [populationFilter]", UniqueTarget.Conditional), + ConditionalBetweenPopulationFilter("in cities with between [amount] and [amount] [populationFilter]", UniqueTarget.Conditional), + ConditionalBelowPopulationFilter("in cities with less than [amount] [populationFilter]", UniqueTarget.Conditional), ConditionalWhenGarrisoned("with a garrison", UniqueTarget.Conditional), /////// unit conditionals diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index abd36a157b0f3..686083305ed2f 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -3005,6 +3005,16 @@ If your mod renames Coast or Lakes, do not use this with one of these as paramet Applicable to: Conditional +??? example "<in cities with between [amount] and [amount] [populationFilter]>" + Example: "<in cities with between [3] and [3] [Followers of this Religion]>" + + Applicable to: Conditional + +??? example "<in cities with less than [amount] [populationFilter]>" + Example: "<in cities with less than [3] [Followers of this Religion]>" + + Applicable to: Conditional + ??? example "<with a garrison>" Applicable to: Conditional