From 5fc7d1ce46cdfd57628ccb56062aa53f9c843558 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sun, 19 Sep 2021 21:18:56 +0300 Subject: [PATCH] Gain free building uniqueType'D --- core/src/com/unciv/logic/city/CityInfo.kt | 2 +- .../unciv/models/ruleset/unique/UniqueParameterType.kt | 9 +++++++++ core/src/com/unciv/models/ruleset/unique/UniqueType.kt | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 71e4723a62..ccff711db6 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -160,7 +160,7 @@ class CityInfo { civInfo.civConstructions.tryAddFreeBuildings() - for (unique in getMatchingUniques("Gain a free [] []")) { + for (unique in getMatchingUniques(UniqueType.GainFreeBuildings)) { val freeBuildingName = unique.params[0] if (matchesFilter(unique.params[1])) { if (!cityConstructions.isBuilt(freeBuildingName)) diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt index a19aad38fb..b649f1acd4 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt @@ -53,6 +53,15 @@ enum class UniqueParameterType(val parameterName:String) { return null } }, + BuildingName("buildingName") { + override fun getErrorSeverity( + parameterText: String, + ruleset: Ruleset + ): UniqueType.UniqueComplianceErrorSeverity? { + if (ruleset.buildings.containsKey(parameterText)) return null + return UniqueType.UniqueComplianceErrorSeverity.RulesetSpecific + } + }, Unknown("param") { override fun getErrorSeverity(parameterText: String, ruleset: Ruleset): UniqueType.UniqueComplianceErrorSeverity? { diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index a760726e70..8d90ea34b0 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -27,7 +27,7 @@ enum class UniqueType(val text:String, val replacedBy: UniqueType? = null) { DecreasedUnitMaintenanceCostsGlobally("-[amount]% unit upkeep costs", UnitMaintenanceDiscount), // No conditional support @Deprecated("As of 3.16.16", ReplaceWith("Stats <>")) StatBonusForNumberOfSpecialists("[stats] if this city has at least [amount] specialists"), // No conditional support - + GainFreeBuildings("Gain a free [buildingName] [cityFilter]"), CityStateStatsPerTurn("Provides [stats] per turn"), // Should not be Happiness! CityStateStatsPerCity("Provides [stats] [cityFilter]"),