mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-12 16:59:11 +07:00
City stats fixes
- Translation fixes - #6131 - Stats button never hidden by "we love the king day"
This commit is contained in:
@ -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()
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
Reference in New Issue
Block a user