From 96c480af0266a7dccc151bd7621781c75f9275ac Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 21 Dec 2020 21:14:39 +0200 Subject: [PATCH] Resolved #3437 - reselecting improvement in progress does not reset progress Unit improvement picker displays correct turns for improvement in progress --- .../ui/pickerscreens/ImprovementPickerScreen.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt index f261c5deaf..3e3b2d2ba3 100644 --- a/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/ImprovementPickerScreen.kt @@ -21,7 +21,7 @@ class ImprovementPickerScreen(val tileInfo: TileInfo, val onAccept: ()->Unit) : val currentPlayerCiv = game.gameInfo.getCurrentPlayerCivilization() fun accept(improvement: TileImprovement?) { - if (improvement == null) return + if (improvement == null || improvement.name == tileInfo.improvementInProgress) return if (improvement.name == Constants.cancelImprovementOrder) { tileInfo.stopWorkingOnImprovement() // no onAccept() - Worker can stay selected @@ -58,7 +58,8 @@ class ImprovementPickerScreen(val tileInfo: TileInfo, val onAccept: ()->Unit) : var labelText = improvement.name.tr() if (improvement.shortcutKey != null) labelText += " (${improvement.shortcutKey})" - val turnsToBuild = improvement.getTurnsToBuild(currentPlayerCiv) + val turnsToBuild = if (tileInfo.improvementInProgress == improvement.name) tileInfo.turnsToImprovement + else improvement.getTurnsToBuild(currentPlayerCiv) if (turnsToBuild > 0) labelText += " - $turnsToBuild${Fonts.turn}" val provideResource = tileInfo.hasViewableResource(currentPlayerCiv) && tileInfo.getTileResource().improvement == improvement.name if (provideResource) labelText += "\n" + "Provides [${tileInfo.resource}]".tr() @@ -76,7 +77,9 @@ class ImprovementPickerScreen(val tileInfo: TileInfo, val onAccept: ()->Unit) : descriptionLabel.setText(improvement.getDescription(ruleSet)) } - val pickNow = "Pick now!".toLabel().onClick { accept(improvement) } + val pickNow = if (tileInfo.improvementInProgress != improvement.name) + "Pick now!".toLabel().onClick { accept(improvement) } + else "Current construction".toLabel() if (improvement.shortcutKey != null) keyPressDispatcher[improvement.shortcutKey.toLowerCase()] = { accept(improvement) } @@ -147,5 +150,4 @@ class ImprovementPickerScreen(val tileInfo: TileInfo, val onAccept: ()->Unit) : } return statsTable } -} - +} \ No newline at end of file