From 8294352fcce29796bc4f3ceb1c97491bb41b2de3 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 20 Mar 2023 10:26:39 +0200 Subject: [PATCH] Better promotion positioning in unit overview --- .../overviewscreen/UnitOverviewTable.kt | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/ui/screens/overviewscreen/UnitOverviewTable.kt b/core/src/com/unciv/ui/screens/overviewscreen/UnitOverviewTable.kt index 660f2ab410..da42788369 100644 --- a/core/src/com/unciv/ui/screens/overviewscreen/UnitOverviewTable.kt +++ b/core/src/com/unciv/ui/screens/overviewscreen/UnitOverviewTable.kt @@ -15,11 +15,6 @@ import com.unciv.logic.map.mapunit.MapUnit import com.unciv.logic.map.tile.Tile import com.unciv.models.UnitActionType import com.unciv.ui.audio.SoundPlayer -import com.unciv.ui.images.IconTextButton -import com.unciv.ui.images.ImageGetter -import com.unciv.ui.screens.pickerscreens.PromotionPickerScreen -import com.unciv.ui.screens.pickerscreens.UnitRenamePopup -import com.unciv.ui.screens.basescreen.BaseScreen import com.unciv.ui.components.ExpanderTab import com.unciv.ui.components.Fonts import com.unciv.ui.components.TabbedPager @@ -32,8 +27,14 @@ import com.unciv.ui.components.extensions.onClick import com.unciv.ui.components.extensions.surroundWithCircle import com.unciv.ui.components.extensions.toLabel import com.unciv.ui.components.extensions.toPrettyString +import com.unciv.ui.images.IconTextButton +import com.unciv.ui.images.ImageGetter +import com.unciv.ui.screens.basescreen.BaseScreen +import com.unciv.ui.screens.pickerscreens.PromotionPickerScreen +import com.unciv.ui.screens.pickerscreens.UnitRenamePopup import com.unciv.ui.screens.worldscreen.unit.actions.UnitActionsUpgrade import kotlin.math.abs +import kotlin.math.ceil /** * Supplies the Unit sub-table for the Empire Overview @@ -232,8 +233,18 @@ class UnitOverviewTab( // Promotions column val promotionsTable = Table() // getPromotions goes by json order on demand, so this is same sorting as on picker - for (promotion in unit.promotions.getPromotions(true)) - promotionsTable.add(ImageGetter.getPromotionPortrait(promotion.name)) + val promotions = unit.promotions.getPromotions(true) + if (promotions.any()) { + val numberOfLines = ceil(promotions.count() / 8f).toInt() + val promotionsPerLine = promotions.count() / numberOfLines + var promotionsThisLine = 0 + for (promotion in promotions) { + promotionsTable.add(ImageGetter.getPromotionPortrait(promotion.name)) + promotionsThisLine++ + if (promotionsThisLine == promotionsPerLine && numberOfLines>1) promotionsTable.row() + } + } + if (unit.promotions.canBePromoted()) promotionsTable.add( ImageGetter.getImage("OtherIcons/Star").apply {