diff --git a/core/src/com/unciv/models/ruleset/IConstruction.kt b/core/src/com/unciv/models/ruleset/IConstruction.kt index 22535132b4f3e..0a25448d010d3 100644 --- a/core/src/com/unciv/models/ruleset/IConstruction.kt +++ b/core/src/com/unciv/models/ruleset/IConstruction.kt @@ -55,17 +55,17 @@ interface INonPerpetualConstruction : IConstruction, INamed, IHasUniques { if (hasUnique(UniqueType.CannotBePurchased, stateForConditionals)) return PurchaseReason.Unpurchasable // Can be purchased with [Stat] [cityFilter] if (getMatchingUniques(UniqueType.CanBePurchasedWithStat, StateForConditionals.IgnoreConditionals) - .any { - it.params[0] == stat.name && + .any { + it.params[0] == stat.name && (city == null || (it.conditionalsApply(stateForConditionals) && city.matchesFilter(it.params[1]))) - } + } ) return PurchaseReason.UniqueAllowed // Can be purchased for [amount] [Stat] [cityFilter] if (getMatchingUniques(UniqueType.CanBePurchasedForAmountStat, StateForConditionals.IgnoreConditionals) - .any { - it.params[1] == stat.name && + .any { + it.params[1] == stat.name && (city == null || (it.conditionalsApply(stateForConditionals) && city.matchesFilter(it.params[2]))) - } + } ) return PurchaseReason.UniqueAllowed if (stat == Stat.Gold && !hasUnique(UniqueType.Unbuildable, stateForConditionals)) return PurchaseReason.Allowed return PurchaseReason.NotAllowed