From 88ecbc26b25c4c9ce098042f88c199b64132839a Mon Sep 17 00:00:00 2001 From: will-ca Date: Tue, 25 Jan 2022 11:51:35 -0800 Subject: [PATCH] Make sure units always have starting promotions. (#6051) --- core/src/com/unciv/logic/BackwardCompatibility.kt | 13 ++++++++++++- core/src/com/unciv/logic/GameInfo.kt | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/logic/BackwardCompatibility.kt b/core/src/com/unciv/logic/BackwardCompatibility.kt index 83ab0426ec..8d6afc0286 100644 --- a/core/src/com/unciv/logic/BackwardCompatibility.kt +++ b/core/src/com/unciv/logic/BackwardCompatibility.kt @@ -130,4 +130,15 @@ object BackwardCompatibility { civilizations.flatMap { civ -> civ.diplomacy.values }.forEach { it.replaceFlag() } } -} \ No newline at end of file + /** Make sure all MapUnits have the starting promotions that they're supposed to. */ + fun GameInfo.guaranteeUnitPromotions() { + for (tileInfo in tileMap.values) for (unit in tileInfo.getUnits()) { + for (startingPromo in unit.baseUnit.promotions) { + if (startingPromo !in unit.promotions.promotions) { + unit.promotions.addPromotion(startingPromo, true) + } + } + } + } + +} diff --git a/core/src/com/unciv/logic/GameInfo.kt b/core/src/com/unciv/logic/GameInfo.kt index cefda18a6e..7f145eb9e4 100644 --- a/core/src/com/unciv/logic/GameInfo.kt +++ b/core/src/com/unciv/logic/GameInfo.kt @@ -2,6 +2,7 @@ package com.unciv.logic import com.unciv.Constants import com.unciv.UncivGame +import com.unciv.logic.BackwardCompatibility.guaranteeUnitPromotions import com.unciv.logic.BackwardCompatibility.removeMissingModReferences import com.unciv.logic.automation.NextTurnAutomation import com.unciv.logic.civilization.* @@ -452,6 +453,8 @@ class GameInfo { .flatMap { it.getResourceRequirements().keys } ) barbarians.setTransients(this) + + guaranteeUnitPromotions() } //endregion