From 338c4bd7e49e2cc718593bd0d4c415c84f3b65e4 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 9 Apr 2023 14:11:42 +0300 Subject: [PATCH] toString extension including sign (+/-) --- core/src/com/unciv/logic/map/tile/TileDescription.kt | 6 +++--- .../ui/components/extensions/FormattingExtensions.kt | 2 ++ core/src/com/unciv/ui/popups/AskNumberPopup.kt | 10 +++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/src/com/unciv/logic/map/tile/TileDescription.kt b/core/src/com/unciv/logic/map/tile/TileDescription.kt index e902e04a17..c523145ccd 100644 --- a/core/src/com/unciv/logic/map/tile/TileDescription.kt +++ b/core/src/com/unciv/logic/map/tile/TileDescription.kt @@ -4,8 +4,9 @@ import com.unciv.Constants import com.unciv.logic.civilization.Civilization import com.unciv.models.ruleset.tile.ResourceType import com.unciv.models.translations.tr -import com.unciv.ui.screens.civilopediascreen.FormattedLine import com.unciv.ui.components.Fonts +import com.unciv.ui.components.extensions.toStringSigned +import com.unciv.ui.screens.civilopediascreen.FormattedLine import com.unciv.utils.DebugUtils object TileDescription { @@ -76,8 +77,7 @@ object TileDescription { val defenceBonus = tile.getDefensiveBonus() if (defenceBonus != 0f) { - var defencePercentString = (defenceBonus * 100).toInt().toString() + "%" - if (!defencePercentString.startsWith("-")) defencePercentString = "+$defencePercentString" + val defencePercentString = (defenceBonus * 100).toInt().toStringSigned() + "%" lineList += FormattedLine("[$defencePercentString] to unit defence") } if (tile.isImpassible()) lineList += FormattedLine(Constants.impassable) diff --git a/core/src/com/unciv/ui/components/extensions/FormattingExtensions.kt b/core/src/com/unciv/ui/components/extensions/FormattingExtensions.kt index 1fefef6e25..e1e86b985d 100644 --- a/core/src/com/unciv/ui/components/extensions/FormattingExtensions.kt +++ b/core/src/com/unciv/ui/components/extensions/FormattingExtensions.kt @@ -22,6 +22,8 @@ fun String.getConsumesAmountString(amount: Int) = "Consumes [$amount] [$this]" /** Convert a [resource name][this] into "Need [amount] more $resource" string (untranslated) */ fun String.getNeedMoreAmountString(amount: Int) = "Need [$amount] more [$this]" +fun Int.toStringSigned() = if (this > 0) "+$this" else this.toString() + /** Formats the [Duration] into a translated string */ fun Duration.format(): String { val sb = StringBuilder() diff --git a/core/src/com/unciv/ui/popups/AskNumberPopup.kt b/core/src/com/unciv/ui/popups/AskNumberPopup.kt index ae5c204ce0..c9510a5d8f 100644 --- a/core/src/com/unciv/ui/popups/AskNumberPopup.kt +++ b/core/src/com/unciv/ui/popups/AskNumberPopup.kt @@ -4,14 +4,15 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.scenes.scene2d.ui.Button import com.badlogic.gdx.scenes.scene2d.ui.Table import com.badlogic.gdx.scenes.scene2d.ui.TextField -import com.unciv.ui.images.IconCircleGroup -import com.unciv.ui.images.ImageGetter -import com.unciv.ui.screens.basescreen.BaseScreen import com.unciv.ui.components.UncivTextField import com.unciv.ui.components.extensions.onChange 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.toStringSigned +import com.unciv.ui.images.IconCircleGroup +import com.unciv.ui.images.ImageGetter +import com.unciv.ui.screens.basescreen.BaseScreen /** Simple class for showing a prompt for a positive integer to the user * @param screen The previous screen the user was on @@ -90,8 +91,7 @@ class AskNumberPopup( fun addValueButton(value: Int) { centerTable.add( Button( - if (value > 0) "+$value".toLabel() - else value.toLabel(), + value.toStringSigned().toLabel(), skin ).apply { onClick {