From 80b470e8672b420cb984d35f2909fb2cde16d975 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 3 Jan 2021 21:37:38 +0200 Subject: [PATCH] Resolved #3497 - city state quests always show correctly when diplomacy screen accessed from city button Added some scrollbars as per #3495 --- .../unciv/ui/newgamescreen/NewGameScreen.kt | 2 +- .../ui/newgamescreen/PlayerPickerTable.kt | 18 +++++++++--------- .../src/com/unciv/ui/trade/DiplomacyScreen.kt | 4 ++-- .../com/unciv/app/desktop/DesktopLauncher.kt | 19 ++++++++++--------- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt b/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt index 9759b4695f..dee2a59926 100644 --- a/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt +++ b/core/src/com/unciv/ui/newgamescreen/NewGameScreen.kt @@ -49,7 +49,7 @@ class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSe setDefaultCloseAction(previousScreen) scrollPane.setScrollingDisabled(true, true) - topTable.add(ScrollPane(newGameOptionsTable).apply { setOverscroll(false, false) }) + topTable.add(ScrollPane(newGameOptionsTable, skin).apply { setOverscroll(false, false) }) .maxHeight(topTable.parent.height).width(stage.width / 3).padTop(20f).top() topTable.addSeparatorVertical() topTable.add(ScrollPane(mapOptionsTable).apply { setOverscroll(false, false) }) diff --git a/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt b/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt index 610127b2aa..8275b45eca 100644 --- a/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt @@ -35,7 +35,6 @@ import java.util.* */ class PlayerPickerTable(val previousScreen: IPreviousScreen, var gameParameters: GameParameters): Table() { val playerListTable = Table() - val nationsPopupWidth = previousScreen.stage.width / 2f val civBlocksWidth = previousScreen.stage.width / 3 /** Locks player table for editing, used during new game creation with scenario.*/ @@ -50,7 +49,7 @@ class PlayerPickerTable(val previousScreen: IPreviousScreen, var gameParameters: top() add("Civilizations".toLabel(fontSize = 24)).padBottom(20f).row() - add(ScrollPane(playerListTable).apply { setOverscroll(false, false) }).width(civBlocksWidth) + add(ScrollPane(playerListTable, skin).apply { setOverscroll(false, false) }).width(civBlocksWidth) update() } @@ -72,10 +71,10 @@ class PlayerPickerTable(val previousScreen: IPreviousScreen, var gameParameters: for (player in gameParameters.players) { playerListTable.add(getPlayerTable(player)).width(civBlocksWidth).padBottom(20f).row() } - if (gameParameters.players.count() < gameBasics.nations.values.count { it.isMajorCiv() } - && !locked) { - playerListTable.add("+".toLabel(Color.BLACK, 30).apply { this.setAlignment(Align.center) } - .surroundWithCircle(50f).onClick { + if (!locked && gameParameters.players.size < gameBasics.nations.values.count { it.isMajorCiv() }) { + val addPlayerButton = "+".toLabel(Color.BLACK, 30).apply { this.setAlignment(Align.center) } + .surroundWithCircle(50f) + .onClick { var player = Player() // no random mode - add first not spectator civ if still available if (noRandom) { @@ -86,7 +85,8 @@ class PlayerPickerTable(val previousScreen: IPreviousScreen, var gameParameters: } gameParameters.players.add(player) update() - }).pad(10f) + } + playerListTable.add(addPlayerButton).pad(10f) } // can enable start game when more than 1 active player previousScreen.setRightSideButtonEnabled(gameParameters.players.count { it.chosenCiv != Constants.spectator } > 1) @@ -152,7 +152,7 @@ class PlayerPickerTable(val previousScreen: IPreviousScreen, var gameParameters: val playerIdTextfield = TextField(player.playerId, CameraStageBaseScreen.skin) playerIdTextfield.messageText = "Please input Player ID!".tr() playerTable.add(playerIdTextfield).colspan(2).fillX().pad(5f) - var errorLabel = "✘".toLabel(Color.RED) + val errorLabel = "✘".toLabel(Color.RED) playerTable.add(errorLabel).pad(5f).row() fun onPlayerIdTextUpdated() { @@ -275,7 +275,7 @@ class PlayerPickerTable(val previousScreen: IPreviousScreen, var gameParameters: * @return [ArrayList] of available [Nation]s */ private fun getAvailablePlayerCivs(): ArrayList { - var nations = ArrayList() + val nations = ArrayList() for (nation in previousScreen.ruleset.nations.values .filter { it.isMajorCiv() || it.isSpectator() }) { if (gameParameters.players.any { it.chosenCiv == nation.name }) diff --git a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt index 9f05b96635..151f88d1d2 100644 --- a/core/src/com/unciv/ui/trade/DiplomacyScreen.kt +++ b/core/src/com/unciv/ui/trade/DiplomacyScreen.kt @@ -200,8 +200,8 @@ class DiplomacyScreen(val viewingCiv:CivilizationInfo):CameraStageBaseScreen() { val description = assignedQuest.getDescription() questTable.add(title.toLabel(fontSize = 24)).row() - questTable.add(description.toLabel().apply { setWrap(true); setAlignment(Align.center) }) - .width(rightSideTable.width - 50f).row() + questTable.add(description.toLabel().apply { wrap = true; setAlignment(Align.center) }) + .width(stage.width/2).row() if (quest.duration > 0) questTable.add("[${remainingTurns}] turns remaining".toLabel()).row() diff --git a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt index 4d5275b2fc..41600b9cb0 100644 --- a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt +++ b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt @@ -52,7 +52,7 @@ internal object DesktopLauncher { val game = UncivGame(desktopParameters) - if(!RaspberryPiDetector.isRaspberryPi()) // No discord RPC for Raspberry Pi, see https://github.com/yairm210/Unciv/issues/1624 + if (!RaspberryPiDetector.isRaspberryPi()) // No discord RPC for Raspberry Pi, see https://github.com/yairm210/Unciv/issues/1624 tryActivateDiscord(game) LwjglApplication(game, config) @@ -163,10 +163,10 @@ internal object DesktopLauncher { private fun packImagesIfOutdated(settings: TexturePacker.Settings, input: String, output: String, packFileName: String) { fun File.listTree(): Sequence = when { - this.isFile -> sequenceOf(this) - this.isDirectory -> this.listFiles().asSequence().flatMap { it.listTree() } - else -> sequenceOf() - } + this.isFile -> sequenceOf(this) + this.isDirectory -> this.listFiles().asSequence().flatMap { it.listTree() } + else -> sequenceOf() + } val atlasFile = File("$output${File.separator}$packFileName.atlas") if (atlasFile.exists() && File("$output${File.separator}$packFileName.png").exists()) { @@ -187,7 +187,8 @@ internal object DesktopLauncher { discordTimer = timer(name = "Discord", daemon = true, period = 1000) { try { updateRpc(game) - } catch (ex: Exception){} + } catch (ex: Exception) { + } } } catch (ex: Exception) { println("Could not initialize Discord") @@ -195,12 +196,12 @@ internal object DesktopLauncher { } private fun updateRpc(game: UncivGame) { - if(!game.isInitialized) return + if (!game.isInitialized) return val presence = DiscordRichPresence() val currentPlayerCiv = game.gameInfo.getCurrentPlayerCivilization() - presence.details=currentPlayerCiv.nation.getLeaderDisplayName().tr() + presence.details = currentPlayerCiv.nation.getLeaderDisplayName().tr() presence.largeImageKey = "logo" // The actual image is uploaded to the discord app / applications webpage - presence.largeImageText ="Turn".tr()+" " + currentPlayerCiv.gameInfo.turns + presence.largeImageText = "Turn".tr() + " " + currentPlayerCiv.gameInfo.turns DiscordRPC.INSTANCE.Discord_UpdatePresence(presence) } }