mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -04:00
Close immediate win loophole (playing alone) (#9176)
This commit is contained in:
parent
19b243abfe
commit
2e61023248
@ -225,13 +225,10 @@ class GameOptionsTable(
|
|||||||
gameParameters.randomNumberOfPlayers = newRandomNumberOfPlayers
|
gameParameters.randomNumberOfPlayers = newRandomNumberOfPlayers
|
||||||
if (newRandomNumberOfPlayers) {
|
if (newRandomNumberOfPlayers) {
|
||||||
// remove all random AI from player picker
|
// remove all random AI from player picker
|
||||||
val newPlayers = gameParameters.players.asSequence()
|
gameParameters.players = gameParameters.players.asSequence()
|
||||||
.filterNot { it.playerType == PlayerType.AI && it.chosenCiv == Constants.random }
|
.filterNot { it.playerType == PlayerType.AI && it.chosenCiv == Constants.random }
|
||||||
.toCollection(ArrayList(gameParameters.players.size))
|
.toCollection(ArrayList(gameParameters.players.size))
|
||||||
if (newPlayers.size != gameParameters.players.size) {
|
|
||||||
gameParameters.players = newPlayers
|
|
||||||
updatePlayerPickerTable("")
|
updatePlayerPickerTable("")
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// Fill up player picker with random AI until previously active min reached
|
// Fill up player picker with random AI until previously active min reached
|
||||||
val additionalRandom = gameParameters.minNumberOfPlayers - gameParameters.players.size
|
val additionalRandom = gameParameters.minNumberOfPlayers - gameParameters.players.size
|
||||||
|
@ -65,6 +65,7 @@ class NewGameScreen(
|
|||||||
if (gameSetupInfo.gameParameters.victoryTypes.isEmpty())
|
if (gameSetupInfo.gameParameters.victoryTypes.isEmpty())
|
||||||
gameSetupInfo.gameParameters.victoryTypes.addAll(ruleset.victories.keys)
|
gameSetupInfo.gameParameters.victoryTypes.addAll(ruleset.victories.keys)
|
||||||
|
|
||||||
|
rightSideButton.enable() // now because PlayerPickerTable init might disable it again
|
||||||
playerPickerTable = PlayerPickerTable(
|
playerPickerTable = PlayerPickerTable(
|
||||||
this, gameSetupInfo.gameParameters,
|
this, gameSetupInfo.gameParameters,
|
||||||
if (isPortrait) stage.width - 20f else 0f
|
if (isPortrait) stage.width - 20f else 0f
|
||||||
@ -98,7 +99,6 @@ class NewGameScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rightSideButton.enable()
|
|
||||||
rightSideButton.setText("Start game!".tr())
|
rightSideButton.setText("Start game!".tr())
|
||||||
rightSideButton.onClick(this::onStartGameClicked)
|
rightSideButton.onClick(this::onStartGameClicked)
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ class PlayerPickerTable(
|
|||||||
|
|
||||||
// enable start game when at least one human player and they're not alone
|
// enable start game when at least one human player and they're not alone
|
||||||
val humanPlayerCount = gameParameters.players.count { it.playerType == PlayerType.Human }
|
val humanPlayerCount = gameParameters.players.count { it.playerType == PlayerType.Human }
|
||||||
val isValid = humanPlayerCount >= 1
|
val isValid = humanPlayerCount >= 1 && (isRandomNumberOfPlayers || gameParameters.players.size >= 2)
|
||||||
(previousScreen as? PickerScreen)?.setRightSideButtonEnabled(isValid)
|
(previousScreen as? PickerScreen)?.setRightSideButtonEnabled(isValid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user