From c69f54408beca7ee22113c68bd6833eb2e136287 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Tue, 29 Jan 2019 14:46:24 +0800 Subject: [PATCH 1/2] Allow to add real free promotions to unit. --- core/src/com/unciv/logic/map/UnitPromotions.kt | 4 ++-- core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/logic/map/UnitPromotions.kt b/core/src/com/unciv/logic/map/UnitPromotions.kt index 9398f0d43c..564d5c0c3c 100644 --- a/core/src/com/unciv/logic/map/UnitPromotions.kt +++ b/core/src/com/unciv/logic/map/UnitPromotions.kt @@ -15,8 +15,8 @@ class UnitPromotions{ fun xpForNextPromotion() = (numberOfPromotions+1)*10 fun canBePromoted() = XP >= xpForNextPromotion() - fun addPromotion(promotionName:String){ - XP -= xpForNextPromotion() + fun addPromotion(promotionName:String, isFree:Boolean = false){ + if (!isFree) XP -= xpForNextPromotion() promotions.add(promotionName) numberOfPromotions++ unit.updateUniques() diff --git a/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt b/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt index 8e9609b0b4..43d1764635 100644 --- a/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/gamebasics/unit/BaseUnit.kt @@ -125,7 +125,7 @@ class BaseUnit : INamed, IConstruction, ICivilopedia { if(unit.type in listOf(UnitType.Melee,UnitType.Mounted,UnitType.Armor) && construction.cityInfo.getBuildingUniques() .contains("All newly-trained melee, mounted, and armored units in this city receive the Drill I promotion")) - unit.promotions.addPromotion("Drill I") + unit.promotions.addPromotion("Drill I", isFree = true) } fun getUpgradeUnit(civInfo: CivilizationInfo):BaseUnit{ From 49f0fe725a7996644a56179aa002343314e9ab93 Mon Sep 17 00:00:00 2001 From: Duan Tao Date: Tue, 29 Jan 2019 18:24:28 +0800 Subject: [PATCH 2/2] Free promotions don't affect future xp. --- core/src/com/unciv/logic/map/UnitPromotions.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/logic/map/UnitPromotions.kt b/core/src/com/unciv/logic/map/UnitPromotions.kt index 564d5c0c3c..81a7f661cb 100644 --- a/core/src/com/unciv/logic/map/UnitPromotions.kt +++ b/core/src/com/unciv/logic/map/UnitPromotions.kt @@ -16,9 +16,11 @@ class UnitPromotions{ fun canBePromoted() = XP >= xpForNextPromotion() fun addPromotion(promotionName:String, isFree:Boolean = false){ - if (!isFree) XP -= xpForNextPromotion() + if (!isFree) { + XP -= xpForNextPromotion() + numberOfPromotions++ + } promotions.add(promotionName) - numberOfPromotions++ unit.updateUniques() unit.civInfo.updateViewableTiles() // some promotions give the unit bonus sight }