mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-09 23:39:40 +07:00
New columns in overview-units: promotion, health (#2187)
This commit is contained in:
@ -16,6 +16,7 @@ import com.unciv.logic.trade.TradeOffersList
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.cityscreen.CityScreen
|
||||
import com.unciv.ui.pickerscreens.PromotionPickerScreen
|
||||
import com.unciv.ui.utils.*
|
||||
import java.text.DecimalFormat
|
||||
import kotlin.math.*
|
||||
@ -339,10 +340,12 @@ class EmpireOverviewScreen(private val viewingPlayer:CivilizationInfo) : CameraS
|
||||
table.add("Ranged strength".tr())
|
||||
table.add("Movement".tr())
|
||||
table.add("Closest city".tr())
|
||||
table.add("Promotions".tr())
|
||||
table.add("Health".tr())
|
||||
table.row()
|
||||
table.addSeparator()
|
||||
|
||||
for(unit in viewingPlayer.getCivUnits().sortedBy { it.name }){
|
||||
for(unit in viewingPlayer.getCivUnits().sortedWith(compareBy({it.name},{!it.due},{it.currentMovement<0.1f},{abs(it.currentTile.position.x)+abs(it.currentTile.position.y)}))) {
|
||||
val baseUnit = unit.baseUnit()
|
||||
val button = TextButton(unit.name.tr(), skin)
|
||||
button.onClick {
|
||||
@ -357,6 +360,19 @@ class EmpireOverviewScreen(private val viewingPlayer:CivilizationInfo) : CameraS
|
||||
table.add(DecimalFormat("0.#").format(unit.currentMovement)+"/"+unit.getMaxMovement())
|
||||
val closestCity = unit.getTile().getTilesInDistance(3).firstOrNull{it.isCityCenter()}
|
||||
if (closestCity!=null) table.add(closestCity.getCity()!!.name) else table.add()
|
||||
val promotionsTable = Table()
|
||||
val promotionsForUnit = unit.civInfo.gameInfo.ruleSet.unitPromotions.values.filter { unit.promotions.promotions.contains(it.name) } // force same sorting as on picker (.sorted() would be simpler code, but...)
|
||||
for(promotion in promotionsForUnit)
|
||||
promotionsTable.add(ImageGetter.getPromotionIcon(promotion.name))
|
||||
if (unit.promotions.canBePromoted()) promotionsTable.add(ImageGetter.getImage("OtherIcons/Star").apply { color= Color.GOLDENROD }).size(24f).padLeft(8f)
|
||||
if (unit.canUpgrade()) promotionsTable.add(ImageGetter.getUnitIcon(baseUnit.upgradesTo!!, Color.GREEN)).size(28f).padLeft(8f)
|
||||
promotionsTable.onClick {
|
||||
if (unit.promotions.canBePromoted() || unit.promotions.promotions.isNotEmpty()) {
|
||||
UncivGame.Current.setScreen(PromotionPickerScreen(unit))
|
||||
}
|
||||
}
|
||||
table.add(promotionsTable)
|
||||
if (unit.health in 1..99) table.add(unit.health.toString()) else table.add()
|
||||
table.row()
|
||||
}
|
||||
table.pack()
|
||||
|
Reference in New Issue
Block a user