City stats fixes

- Translation fixes - #6131
- Stats button never hidden by "we love the king day"
This commit is contained in:
Yair Morgenstern
2022-12-22 23:14:19 +02:00
parent 20b63da334
commit ccb5bb205f
3 changed files with 12 additions and 20 deletions

View File

@ -82,12 +82,6 @@ class CityScreen(
} }
} }
private val detailedStatsButton = "Stats".toTextButton().apply {
labelCell.pad(10f)
onActivation {
DetailedStatsPopup(this@CityScreen).open()
}
}
/** Holds City tiles group*/ /** Holds City tiles group*/
private var tileGroups = ArrayList<CityTileGroup>() private var tileGroups = ArrayList<CityTileGroup>()
@ -134,7 +128,6 @@ class CityScreen(
stage.addActor(tileTable) stage.addActor(tileTable)
stage.addActor(cityPickerTable) // add late so it's top in Z-order and doesn't get covered in cramped portrait stage.addActor(cityPickerTable) // add late so it's top in Z-order and doesn't get covered in cramped portrait
stage.addActor(exitCityButton) stage.addActor(exitCityButton)
stage.addActor(detailedStatsButton)
update() update()
globalShortcuts.add(Input.Keys.LEFT) { page(-1) } globalShortcuts.add(Input.Keys.LEFT) { page(-1) }
@ -181,8 +174,6 @@ class CityScreen(
cityStatsTable.update(statsHeight) cityStatsTable.update(statsHeight)
cityStatsTable.setPosition(stage.width - posFromEdge, stage.height - posFromEdge, Align.topRight) cityStatsTable.setPosition(stage.width - posFromEdge, stage.height - posFromEdge, Align.topRight)
detailedStatsButton.setPosition(cityStatsTable.x - detailedStatsButton.width, stage.height - 20f, Align.top)
// Top center: Annex/Raze button // Top center: Annex/Raze button
updateAnnexAndRazeCityButton() updateAnnexAndRazeCityButton()

View File

@ -2,9 +2,7 @@ package com.unciv.ui.cityscreen
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.scenes.scene2d.Actor import com.badlogic.gdx.scenes.scene2d.Actor
import com.badlogic.gdx.scenes.scene2d.Touchable
import com.badlogic.gdx.scenes.scene2d.ui.Cell import com.badlogic.gdx.scenes.scene2d.ui.Cell
import com.badlogic.gdx.scenes.scene2d.ui.Image
import com.badlogic.gdx.scenes.scene2d.ui.Label import com.badlogic.gdx.scenes.scene2d.ui.Label
import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.Table
import com.badlogic.gdx.utils.Align import com.badlogic.gdx.utils.Align
@ -13,14 +11,11 @@ import com.unciv.UncivGame
import com.unciv.logic.city.CityFlags import com.unciv.logic.city.CityFlags
import com.unciv.logic.city.CityFocus import com.unciv.logic.city.CityFocus
import com.unciv.logic.city.CityInfo import com.unciv.logic.city.CityInfo
import com.unciv.logic.city.CityStats
import com.unciv.logic.city.StatTreeNode
import com.unciv.models.ruleset.Building import com.unciv.models.ruleset.Building
import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.ruleset.unique.UniqueType
import com.unciv.models.stats.Stat import com.unciv.models.stats.Stat
import com.unciv.models.translations.tr import com.unciv.models.translations.tr
import com.unciv.ui.civilopedia.CivilopediaScreen import com.unciv.ui.civilopedia.CivilopediaScreen
import com.unciv.ui.images.IconCircleGroup
import com.unciv.ui.images.ImageGetter import com.unciv.ui.images.ImageGetter
import com.unciv.ui.utils.BaseScreen import com.unciv.ui.utils.BaseScreen
import com.unciv.ui.utils.ExpanderTab import com.unciv.ui.utils.ExpanderTab
@ -28,15 +23,13 @@ import com.unciv.ui.utils.Fonts
import com.unciv.ui.utils.extensions.addSeparator import com.unciv.ui.utils.extensions.addSeparator
import com.unciv.ui.utils.extensions.center import com.unciv.ui.utils.extensions.center
import com.unciv.ui.utils.extensions.colorFromRGB import com.unciv.ui.utils.extensions.colorFromRGB
import com.unciv.ui.utils.extensions.onActivation
import com.unciv.ui.utils.extensions.onClick import com.unciv.ui.utils.extensions.onClick
import com.unciv.ui.utils.extensions.setSize
import com.unciv.ui.utils.extensions.surroundWithCircle import com.unciv.ui.utils.extensions.surroundWithCircle
import com.unciv.ui.utils.extensions.toGroup import com.unciv.ui.utils.extensions.toGroup
import com.unciv.ui.utils.extensions.toLabel import com.unciv.ui.utils.extensions.toLabel
import java.text.DecimalFormat import com.unciv.ui.utils.extensions.toTextButton
import kotlin.math.ceil import kotlin.math.ceil
import kotlin.math.max
import kotlin.math.min
import kotlin.math.round import kotlin.math.round
import com.unciv.ui.utils.AutoScrollPane as ScrollPane import com.unciv.ui.utils.AutoScrollPane as ScrollPane
@ -48,6 +41,13 @@ class CityStatsTable(val cityScreen: CityScreen): Table() {
private val cityInfo = cityScreen.city private val cityInfo = cityScreen.city
private val lowerCell: Cell<ScrollPane> private val lowerCell: Cell<ScrollPane>
private val detailedStatsButton = "Stats".toTextButton().apply {
labelCell.pad(10f)
onActivation {
DetailedStatsPopup(cityScreen).open()
}
}
init { init {
pad(2f) pad(2f)
background = BaseScreen.skinStrings.getUiBackground( background = BaseScreen.skinStrings.getUiBackground(
@ -105,6 +105,7 @@ class CityStatsTable(val cityScreen: CityScreen): Table() {
upperTable.add(miniStatsTable) upperTable.add(miniStatsTable)
upperTable.addSeparator() upperTable.addSeparator()
upperTable.add(detailedStatsButton).row()
addText() addText()
// begin lowerTable // begin lowerTable

View File

@ -69,7 +69,7 @@ class DetailedStatsPopup(val cityScreen: CityScreen, stageToShowOn: Stage) : Pop
update() }).minWidth(150f).grow() update() }).minWidth(150f).grow()
for (stat in stats) { for (stat in stats) {
val label = (stat.character + " " + stat.name).toLabel() val label = stat.name.toLabel()
label.onClick { label.onClick {
onlyWithStat = if (onlyWithStat == null) stat else null onlyWithStat = if (onlyWithStat == null) stat else null
update() update()
@ -80,7 +80,7 @@ class DetailedStatsPopup(val cityScreen: CityScreen, stageToShowOn: Stage) : Pop
totalTable.row() totalTable.row()
totalTable.addSeparator().padBottom(2f) totalTable.addSeparator().padBottom(2f)
totalTable.add("Base stats".toLabel().apply { setAlignment(Align.center) }) totalTable.add("Base value".toLabel().apply { setAlignment(Align.center) })
.colspan(totalTable.columns).padLeft(0f).padRight(0f).growX().row() .colspan(totalTable.columns).padLeft(0f).padRight(0f).growX().row()
totalTable.addSeparator().padTop(2f) totalTable.addSeparator().padTop(2f)
traverseTree(totalTable, stats, cityStats.baseStatTree, mergeHappiness = true, percentage = false) traverseTree(totalTable, stats, cityStats.baseStatTree, mergeHappiness = true, percentage = false)