mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-20 04:38:18 +07:00
Centralize infinity symbol (#11257)
This commit is contained in:
@ -25,6 +25,7 @@ import com.unciv.models.ruleset.unique.UniqueType
|
||||
import com.unciv.models.ruleset.unit.BaseUnit
|
||||
import com.unciv.ui.components.MayaCalendar
|
||||
import com.unciv.ui.components.extensions.withItem
|
||||
import com.unciv.ui.components.fonts.Fonts
|
||||
import kotlin.math.ceil
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
@ -148,7 +149,7 @@ class TechManager : IsPartOfGameInfoSerialization {
|
||||
val remainingCost = remainingScienceToTech(techName).toDouble()
|
||||
return when {
|
||||
remainingCost <= 0f -> "0"
|
||||
civInfo.stats.statsForNextTurn.science <= 0f -> "∞"
|
||||
civInfo.stats.statsForNextTurn.science <= 0f -> Fonts.infinity.toString()
|
||||
else -> max(1, ceil(remainingCost / civInfo.stats.statsForNextTurn.science).toInt()).toString()
|
||||
}
|
||||
}
|
||||
|
@ -122,6 +122,7 @@ object Fonts {
|
||||
const val greatScientist = '⚛' // U+269B 'atom'
|
||||
const val death = '☠' // U+2620 'skull and crossbones'
|
||||
const val automate = '⛏' // U+26CF 'pick'
|
||||
const val infinity = '∞' // U+221E - not in `allSymbols`, taken as-is from system font
|
||||
|
||||
val allSymbols = mapOf(
|
||||
turn to "EmojiIcons/Turn",
|
||||
|
@ -274,11 +274,11 @@ private class CityTable(city: City, forPopup: Boolean = false) : BorderedTable(
|
||||
val turnLabelText = when {
|
||||
city.isGrowing() -> {
|
||||
val turnsToGrowth = city.population.getNumTurnsToNewPopulation()
|
||||
if (turnsToGrowth != null && turnsToGrowth < 100) turnsToGrowth.toString() else "∞"
|
||||
if (turnsToGrowth != null && turnsToGrowth < 100) turnsToGrowth.toString() else Fonts.infinity.toString()
|
||||
}
|
||||
city.isStarving() -> {
|
||||
val turnsToStarvation = city.population.getNumTurnsToStarvation()
|
||||
if (turnsToStarvation != null && turnsToStarvation < 100) turnsToStarvation.toString() else "∞"
|
||||
if (turnsToStarvation != null && turnsToStarvation < 100) turnsToStarvation.toString() else Fonts.infinity.toString()
|
||||
}
|
||||
else -> "-"
|
||||
}
|
||||
@ -360,7 +360,7 @@ private class CityTable(city: City, forPopup: Boolean = false) : BorderedTable(
|
||||
if (nextTurnPercentage > 1f) nextTurnPercentage = 1f
|
||||
if (nextTurnPercentage < 0f) nextTurnPercentage = 0f
|
||||
} else {
|
||||
turns = "∞"
|
||||
turns = Fonts.infinity.toString()
|
||||
}
|
||||
icon = ImageGetter.getConstructionPortrait(cityCurrentConstruction.name, 24f)
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ import com.unciv.ui.components.extensions.packIfNeeded
|
||||
import com.unciv.ui.components.extensions.surroundWithCircle
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.extensions.toTextButton
|
||||
import com.unciv.ui.components.fonts.Fonts
|
||||
import com.unciv.ui.components.input.KeyboardBinding
|
||||
import com.unciv.ui.components.input.keyShortcuts
|
||||
import com.unciv.ui.components.input.onActivation
|
||||
@ -327,7 +328,7 @@ class CityConstructionsTable(private val cityScreen: CityScreen) {
|
||||
val isFirstConstructionOfItsKind = cityConstructions.isFirstConstructionOfItsKind(constructionQueueIndex, constructionName)
|
||||
|
||||
var text = constructionName.tr(true) +
|
||||
if (constructionName in PerpetualConstruction.perpetualConstructionsMap) "\n∞"
|
||||
if (constructionName in PerpetualConstruction.perpetualConstructionsMap) "\n" + Fonts.infinity
|
||||
else cityConstructions.getTurnsToConstructionString(construction, isFirstConstructionOfItsKind)
|
||||
|
||||
val constructionResource = if (construction is BaseUnit)
|
||||
|
@ -9,6 +9,7 @@ import com.unciv.ui.components.extensions.colorFromRGB
|
||||
import com.unciv.ui.components.extensions.setFontColor
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.extensions.toStringSigned
|
||||
import com.unciv.ui.components.fonts.Fonts
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.widgets.ScalingTableWrapper
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
@ -124,12 +125,13 @@ internal class WorldScreenTopBarStats(topbar: WorldScreenTopBar) : ScalingTableW
|
||||
|
||||
private fun getCultureText(civInfo: Civilization, nextTurnStats: Stats): String {
|
||||
var cultureString = rateLabel(nextTurnStats.culture)
|
||||
//if (nextTurnStats.culture == 0f) return cultureString // when you start the game, you're not producing any culture
|
||||
|
||||
// kotlin Float division by Zero produces `Float.POSITIVE_INFINITY`, not an exception
|
||||
val turnsToNextPolicy = (civInfo.policies.getCultureNeededForNextPolicy() - civInfo.policies.storedCulture) / nextTurnStats.culture
|
||||
cultureString += if (turnsToNextPolicy <= 0f) " (!)"
|
||||
else if (nextTurnStats.culture <= 0) " (∞)"
|
||||
else " (" + ceil(turnsToNextPolicy).toInt() + ")"
|
||||
cultureString += when {
|
||||
turnsToNextPolicy <= 0f -> " (!)" // Can choose policy right now
|
||||
nextTurnStats.culture <= 0 -> " (${Fonts.infinity})" // when you start the game, you're not producing any culture
|
||||
else -> " (" + ceil(turnsToNextPolicy).toInt() + ")"
|
||||
}
|
||||
return cultureString
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user