From d15c3da0e043e27d81bc010498d801acbfef316b Mon Sep 17 00:00:00 2001 From: SeventhM <127357473+SeventhM@users.noreply.github.com> Date: Thu, 7 Dec 2023 00:09:11 -0800 Subject: [PATCH] Fix not getting unique unit from tile based free unit trigger (#10665) --- .../ruleset/unique/UniqueTriggerActivation.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt b/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt index f317a599bf..89173d0b09 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueTriggerActivation.kt @@ -57,10 +57,11 @@ object UniqueTriggerActivation { when (unique.type) { UniqueType.OneTimeFreeUnit -> { val unitName = unique.params[0] - val unit = ruleSet.units[unitName] - if ((chosenCity == null && tile == null) - || unit == null - || unit.isCityFounder() && civInfo.isOneCityChallenger()) + val baseUnit = ruleSet.units[unitName] + if ((chosenCity == null && tile == null) || baseUnit == null) + return false + val unit = civInfo.getEquivalentUnit(baseUnit) + if (unit.isCityFounder() && civInfo.isOneCityChallenger()) return false val limit = unit.getMatchingUniques(UniqueType.MaxNumberBuildable) @@ -86,8 +87,11 @@ object UniqueTriggerActivation { } UniqueType.OneTimeAmountFreeUnits -> { val unitName = unique.params[1] - val unit = ruleSet.units[unitName] - if ((chosenCity == null && tile == null) || unit == null || (unit.isCityFounder() && civInfo.isOneCityChallenger())) + val baseUnit = ruleSet.units[unitName] + if ((chosenCity == null && tile == null) || baseUnit == null) + return false + val unit = civInfo.getEquivalentUnit(baseUnit) + if (unit.isCityFounder() && civInfo.isOneCityChallenger()) return false val limit = unit.getMatchingUniques(UniqueType.MaxNumberBuildable)