mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 14:24:43 -04:00
Redid layout for the New Game screen - see #2549
This commit is contained in:
parent
105a7d63b0
commit
0190854b88
@ -9,17 +9,17 @@ import com.unciv.ui.utils.CameraStageBaseScreen
|
|||||||
import com.unciv.ui.utils.onChange
|
import com.unciv.ui.utils.onChange
|
||||||
import com.unciv.ui.utils.toLabel
|
import com.unciv.ui.utils.toLabel
|
||||||
|
|
||||||
class MapOptionsTable(val newGameScreen: NewGameScreen): Table(){
|
class MapOptionsTable(val newGameScreen: NewGameScreen): Table() {
|
||||||
|
|
||||||
val mapParameters = newGameScreen.gameSetupInfo.mapParameters
|
val mapParameters = newGameScreen.gameSetupInfo.mapParameters
|
||||||
private var mapTypeSpecificTable = Table()
|
private var mapTypeSpecificTable = Table()
|
||||||
private val generatedMapOptionsTable = MapParametersTable(mapParameters)
|
private val generatedMapOptionsTable = MapParametersTable(mapParameters)
|
||||||
private val savedMapOptionsTable = Table()
|
private val savedMapOptionsTable = Table()
|
||||||
|
|
||||||
init{
|
init {
|
||||||
defaults().pad(5f)
|
defaults().pad(5f)
|
||||||
|
|
||||||
add("Map options".toLabel(fontSize = 24)).colspan(2).row()
|
add("Map options".toLabel(fontSize = 24)).top().colspan(2).row()
|
||||||
addMapTypeSelection()
|
addMapTypeSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,19 +27,24 @@ class GameSetupInfo(var gameId:String, var gameParameters: GameParameters, var m
|
|||||||
constructor(gameInfo: GameInfo) : this("", gameInfo.gameParameters.clone(), gameInfo.tileMap.mapParameters)
|
constructor(gameInfo: GameInfo) : this("", gameInfo.gameParameters.clone(), gameInfo.tileMap.mapParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSetupInfo?=null): PickerScreen(){
|
class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSetupInfo?=null): PickerScreen() {
|
||||||
|
|
||||||
var gameSetupInfo:GameSetupInfo= _gameSetupInfo ?: GameSetupInfo()
|
var gameSetupInfo: GameSetupInfo = _gameSetupInfo ?: GameSetupInfo()
|
||||||
val ruleset = RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters.mods)
|
val ruleset = RulesetCache.getComplexRuleset(gameSetupInfo.gameParameters.mods)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
setDefaultCloseAction(previousScreen)
|
setDefaultCloseAction(previousScreen)
|
||||||
scrollPane.setScrollingDisabled(true,true)
|
scrollPane.setScrollingDisabled(true, true)
|
||||||
|
|
||||||
val playerPickerTable = PlayerPickerTable(this, gameSetupInfo.gameParameters)
|
val playerPickerTable = PlayerPickerTable(this, gameSetupInfo.gameParameters)
|
||||||
val newGameScreenOptionsTable = NewGameScreenOptionsTable(this) { desiredCiv: String -> playerPickerTable.update(desiredCiv) }
|
val newGameScreenOptionsTable = NewGameScreenOptionsTable(this) { desiredCiv: String -> playerPickerTable.update(desiredCiv) }
|
||||||
topTable.add(ScrollPane(newGameScreenOptionsTable).apply{setOverscroll(false,false)}).height(topTable.parent.height)
|
topTable.add(ScrollPane(MapOptionsTable(this)).apply { setOverscroll(false, false) })
|
||||||
topTable.add(playerPickerTable).height(topTable.parent.height)
|
.maxHeight(topTable.parent.height).width(stage.width / 3).padTop(20f).top()
|
||||||
|
topTable.addSeparatorVertical()
|
||||||
|
topTable.add(playerPickerTable).maxHeight(topTable.parent.height).width(stage.width / 3).padTop(20f).top()
|
||||||
|
topTable.addSeparatorVertical()
|
||||||
|
topTable.add(ScrollPane(newGameScreenOptionsTable).apply { setOverscroll(false, false) })
|
||||||
|
.maxHeight(topTable.parent.height).width(stage.width / 3).padTop(20f).top()
|
||||||
topTable.pack()
|
topTable.pack()
|
||||||
topTable.setFillParent(true)
|
topTable.setFillParent(true)
|
||||||
|
|
||||||
@ -72,7 +77,7 @@ class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSe
|
|||||||
rightSideButton.disable()
|
rightSideButton.disable()
|
||||||
rightSideButton.setText("Working...".tr())
|
rightSideButton.setText("Working...".tr())
|
||||||
|
|
||||||
thread(name="NewGame") {
|
thread(name = "NewGame") {
|
||||||
// Creating a new game can take a while and we don't want ANRs
|
// Creating a new game can take a while and we don't want ANRs
|
||||||
newGameThread()
|
newGameThread()
|
||||||
}
|
}
|
||||||
@ -115,16 +120,16 @@ class NewGameScreen(previousScreen:CameraStageBaseScreen, _gameSetupInfo: GameSe
|
|||||||
Gdx.graphics.requestRendering()
|
Gdx.graphics.requestRendering()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setNewGameButtonEnabled(bool:Boolean){
|
fun setNewGameButtonEnabled(bool: Boolean) {
|
||||||
if(bool) rightSideButton.enable()
|
if (bool) rightSideButton.enable()
|
||||||
else rightSideButton.disable()
|
else rightSideButton.disable()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var newGame:GameInfo?=null
|
var newGame: GameInfo? = null
|
||||||
|
|
||||||
override fun render(delta: Float) {
|
override fun render(delta: Float) {
|
||||||
if (newGame != null){
|
if (newGame != null) {
|
||||||
game.loadGame(newGame!!)
|
game.loadGame(newGame!!)
|
||||||
}
|
}
|
||||||
super.render(delta)
|
super.render(delta)
|
||||||
@ -145,4 +150,3 @@ class TranslatedSelectBox(values : Collection<String>, default:String, skin: Ski
|
|||||||
selected = if (defaultItem != null) defaultItem else array.first()
|
selected = if (defaultItem != null) defaultItem else array.first()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,11 +23,8 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
top()
|
top()
|
||||||
defaults().pad(5f)
|
defaults().pad(5f)
|
||||||
|
|
||||||
val mapOptionsColumn = MapOptionsTable(newGameScreen)
|
|
||||||
add(mapOptionsColumn).row()
|
|
||||||
|
|
||||||
val gameOptionsColumn = Table().apply { defaults().pad(5f) }
|
val gameOptionsColumn = Table().apply { defaults().pad(5f) }
|
||||||
gameOptionsColumn.add("Game options".toLabel(fontSize = 24)).colspan(2).row()
|
gameOptionsColumn.add("Game options".toLabel(fontSize = 24)).padTop(0f).colspan(2).row()
|
||||||
gameOptionsColumn.addDifficultySelectBox()
|
gameOptionsColumn.addDifficultySelectBox()
|
||||||
gameOptionsColumn.addGameSpeedSelectBox()
|
gameOptionsColumn.addGameSpeedSelectBox()
|
||||||
gameOptionsColumn.addEraSelectBox()
|
gameOptionsColumn.addEraSelectBox()
|
||||||
@ -43,23 +40,23 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
pack()
|
pack()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Table.addCheckbox(text:String, initialState:Boolean, onChange:(newValue:Boolean)->Unit){
|
private fun Table.addCheckbox(text: String, initialState: Boolean, onChange: (newValue: Boolean) -> Unit) {
|
||||||
val checkbox = CheckBox(text.tr(), CameraStageBaseScreen.skin)
|
val checkbox = CheckBox(text.tr(), CameraStageBaseScreen.skin)
|
||||||
checkbox.isChecked = initialState
|
checkbox.isChecked = initialState
|
||||||
checkbox.onChange { onChange(checkbox.isChecked) }
|
checkbox.onChange { onChange(checkbox.isChecked) }
|
||||||
add(checkbox).colspan(2).row()
|
add(checkbox).colspan(2).row()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Table.addBarbariansCheckbox() =
|
private fun Table.addBarbariansCheckbox() =
|
||||||
addCheckbox("No barbarians", newGameParameters.noBarbarians)
|
addCheckbox("No barbarians", newGameParameters.noBarbarians)
|
||||||
{ newGameParameters.noBarbarians = it }
|
{ newGameParameters.noBarbarians = it }
|
||||||
|
|
||||||
private fun Table.addOneCityChallengeCheckbox() =
|
private fun Table.addOneCityChallengeCheckbox() =
|
||||||
addCheckbox("One City Challenge", newGameParameters.oneCityChallenge)
|
addCheckbox("One City Challenge", newGameParameters.oneCityChallenge)
|
||||||
{ newGameParameters.oneCityChallenge = it }
|
{ newGameParameters.oneCityChallenge = it }
|
||||||
|
|
||||||
private fun Table.addNuclearWeaponsCheckbox() =
|
private fun Table.addNuclearWeaponsCheckbox() =
|
||||||
addCheckbox("Enable nuclear weapons", newGameParameters.nuclearWeaponsEnabled)
|
addCheckbox("Enable nuclear weapons", newGameParameters.nuclearWeaponsEnabled)
|
||||||
{ newGameParameters.nuclearWeaponsEnabled = it }
|
{ newGameParameters.nuclearWeaponsEnabled = it }
|
||||||
|
|
||||||
|
|
||||||
@ -80,7 +77,7 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
|
|
||||||
val numberOfCityStates = ruleset.nations.filter { it.value.isCityState() }.size
|
val numberOfCityStates = ruleset.nations.filter { it.value.isCityState() }.size
|
||||||
|
|
||||||
val cityStatesArray = Array<Int>(numberOfCityStates+1)
|
val cityStatesArray = Array<Int>(numberOfCityStates + 1)
|
||||||
(0..numberOfCityStates).forEach { cityStatesArray.add(it) }
|
(0..numberOfCityStates).forEach { cityStatesArray.add(it) }
|
||||||
|
|
||||||
cityStatesSelectBox.items = cityStatesArray
|
cityStatesSelectBox.items = cityStatesArray
|
||||||
@ -91,7 +88,7 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Table.addSelectBox(text:String, values:Collection<String>, initialState:String, onChange: (newValue: String) -> Unit){
|
fun Table.addSelectBox(text: String, values: Collection<String>, initialState: String, onChange: (newValue: String) -> Unit) {
|
||||||
add(text.toLabel())
|
add(text.toLabel())
|
||||||
val selectBox = TranslatedSelectBox(values, initialState, CameraStageBaseScreen.skin)
|
val selectBox = TranslatedSelectBox(values, initialState, CameraStageBaseScreen.skin)
|
||||||
selectBox.onChange { onChange(selectBox.selected.value) }
|
selectBox.onChange { onChange(selectBox.selected.value) }
|
||||||
@ -100,18 +97,18 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
|
|
||||||
private fun Table.addDifficultySelectBox() {
|
private fun Table.addDifficultySelectBox() {
|
||||||
addSelectBox("{Difficulty}:", ruleset.difficulties.keys, newGameParameters.difficulty)
|
addSelectBox("{Difficulty}:", ruleset.difficulties.keys, newGameParameters.difficulty)
|
||||||
{newGameParameters.difficulty = it}
|
{ newGameParameters.difficulty = it }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Table.addGameSpeedSelectBox() {
|
private fun Table.addGameSpeedSelectBox() {
|
||||||
addSelectBox("{Game Speed}:", GameSpeed.values().map { it.name }, newGameParameters.gameSpeed.name)
|
addSelectBox("{Game Speed}:", GameSpeed.values().map { it.name }, newGameParameters.gameSpeed.name)
|
||||||
{newGameParameters.gameSpeed = GameSpeed.valueOf(it)}
|
{ newGameParameters.gameSpeed = GameSpeed.valueOf(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Table.addEraSelectBox() {
|
private fun Table.addEraSelectBox() {
|
||||||
val eras = ruleset.technologies.values.map { it.era() }.distinct()
|
val eras = ruleset.technologies.values.map { it.era() }.distinct()
|
||||||
addSelectBox("{Starting Era}:", eras, newGameParameters.startingEra)
|
addSelectBox("{Starting Era}:", eras, newGameParameters.startingEra)
|
||||||
{ newGameParameters.startingEra = it }
|
{ newGameParameters.startingEra = it }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -142,8 +139,8 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
|
|
||||||
|
|
||||||
fun Table.addModCheckboxes() {
|
fun Table.addModCheckboxes() {
|
||||||
val modRulesets = RulesetCache.filter { it.key!="" }.values
|
val modRulesets = RulesetCache.filter { it.key != "" }.values
|
||||||
if(modRulesets.isEmpty()) return
|
if (modRulesets.isEmpty()) return
|
||||||
|
|
||||||
fun reloadMods() {
|
fun reloadMods() {
|
||||||
ruleset.clear()
|
ruleset.clear()
|
||||||
@ -158,8 +155,8 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
|
|
||||||
add("Mods:".toLabel(fontSize = 24)).padTop(16f).colspan(2).row()
|
add("Mods:".toLabel(fontSize = 24)).padTop(16f).colspan(2).row()
|
||||||
val modCheckboxTable = Table().apply { defaults().pad(5f) }
|
val modCheckboxTable = Table().apply { defaults().pad(5f) }
|
||||||
for(mod in modRulesets){
|
for (mod in modRulesets) {
|
||||||
val checkBox = CheckBox(mod.name.tr(),CameraStageBaseScreen.skin)
|
val checkBox = CheckBox(mod.name.tr(), CameraStageBaseScreen.skin)
|
||||||
if (mod.name in newGameParameters.mods) checkBox.isChecked = true
|
if (mod.name in newGameParameters.mods) checkBox.isChecked = true
|
||||||
checkBox.onChange {
|
checkBox.onChange {
|
||||||
if (checkBox.isChecked) newGameParameters.mods.add(mod.name)
|
if (checkBox.isChecked) newGameParameters.mods.add(mod.name)
|
||||||
@ -181,4 +178,3 @@ class NewGameScreenOptionsTable(newGameScreen: NewGameScreen, val updatePlayerPi
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,10 +22,12 @@ import java.util.*
|
|||||||
class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters: GameParameters): Table() {
|
class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters: GameParameters): Table() {
|
||||||
val playerListTable = Table()
|
val playerListTable = Table()
|
||||||
val nationsPopupWidth = newGameScreen.stage.width / 2f
|
val nationsPopupWidth = newGameScreen.stage.width / 2f
|
||||||
|
val civBlocksWidth = newGameScreen.stage.width / 3
|
||||||
|
|
||||||
init {
|
init {
|
||||||
top()
|
top()
|
||||||
add(ScrollPane(playerListTable).apply{setOverscroll(false,false)}).width(newGameScreen.stage.width/2)
|
add("Civilizations".toLabel(fontSize = 24)).padBottom(20f).row()
|
||||||
|
add(ScrollPane(playerListTable).apply { setOverscroll(false, false) }).width(civBlocksWidth)
|
||||||
update()
|
update()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,19 +36,19 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
val gameBasics = newGameScreen.ruleset // the mod picking changes this ruleset
|
val gameBasics = newGameScreen.ruleset // the mod picking changes this ruleset
|
||||||
|
|
||||||
reassignRemovedModReferences()
|
reassignRemovedModReferences()
|
||||||
val newRulesetPlayableCivs = newGameScreen.ruleset.nations.count { it.key!=Constants.barbarians }
|
val newRulesetPlayableCivs = newGameScreen.ruleset.nations.count { it.key != Constants.barbarians }
|
||||||
if(newGameParameters.players.size > newRulesetPlayableCivs)
|
if (newGameParameters.players.size > newRulesetPlayableCivs)
|
||||||
newGameParameters.players=ArrayList(newGameParameters.players.subList(0,newRulesetPlayableCivs))
|
newGameParameters.players = ArrayList(newGameParameters.players.subList(0, newRulesetPlayableCivs))
|
||||||
if (desiredCiv.isNotEmpty()) assignDesiredCiv(desiredCiv)
|
if (desiredCiv.isNotEmpty()) assignDesiredCiv(desiredCiv)
|
||||||
|
|
||||||
for (player in newGameParameters.players) {
|
for (player in newGameParameters.players) {
|
||||||
playerListTable.add(getPlayerTable(player, gameBasics)).pad(10f).row()
|
playerListTable.add(getPlayerTable(player, gameBasics)).width(civBlocksWidth).padBottom(20f).row()
|
||||||
}
|
}
|
||||||
if(newGameParameters.players.count() < gameBasics.nations.values.count { it.isMajorCiv() }) {
|
if (newGameParameters.players.count() < gameBasics.nations.values.count { it.isMajorCiv() }) {
|
||||||
playerListTable.add("+".toLabel(Color.BLACK,30).apply { this.setAlignment(Align.center) }
|
playerListTable.add("+".toLabel(Color.BLACK, 30).apply { this.setAlignment(Align.center) }
|
||||||
.surroundWithCircle(50f).onClick { newGameParameters.players.add(Player()); update() }).pad(10f)
|
.surroundWithCircle(50f).onClick { newGameParameters.players.add(Player()); update() }).pad(10f)
|
||||||
}
|
}
|
||||||
newGameScreen.setNewGameButtonEnabled(newGameParameters.players.size>1)
|
newGameScreen.setNewGameButtonEnabled(newGameParameters.players.size > 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun reassignRemovedModReferences() {
|
private fun reassignRemovedModReferences() {
|
||||||
@ -58,9 +60,9 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
|
|
||||||
private fun assignDesiredCiv(desiredCiv: String) {
|
private fun assignDesiredCiv(desiredCiv: String) {
|
||||||
// No auto-select if desiredCiv already used
|
// No auto-select if desiredCiv already used
|
||||||
if (newGameParameters.players.any {it.chosenCiv == desiredCiv}) return
|
if (newGameParameters.players.any { it.chosenCiv == desiredCiv }) return
|
||||||
// Do auto-select, silently no-op if no suitable slot (human with 'random' choice)
|
// Do auto-select, silently no-op if no suitable slot (human with 'random' choice)
|
||||||
newGameParameters.players.firstOrNull { it.chosenCiv == "Random" && it.playerType==PlayerType.Human }?.chosenCiv = desiredCiv
|
newGameParameters.players.firstOrNull { it.chosenCiv == "Random" && it.playerType == PlayerType.Human }?.chosenCiv = desiredCiv
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPlayerTable(player: Player, ruleset: Ruleset): Table {
|
fun getPlayerTable(player: Player, ruleset: Ruleset): Table {
|
||||||
@ -69,7 +71,7 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
playerTable.background = ImageGetter.getBackground(ImageGetter.getBlue().lerp(Color.BLACK, 0.8f))
|
playerTable.background = ImageGetter.getBackground(ImageGetter.getBlue().lerp(Color.BLACK, 0.8f))
|
||||||
|
|
||||||
val nationTable = getNationTable(player)
|
val nationTable = getNationTable(player)
|
||||||
playerTable.add(nationTable)
|
playerTable.add(nationTable).left()
|
||||||
|
|
||||||
val playerTypeTextbutton = player.playerType.name.toTextButton()
|
val playerTypeTextbutton = player.playerType.name.toTextButton()
|
||||||
playerTypeTextbutton.onClick {
|
playerTypeTextbutton.onClick {
|
||||||
@ -78,11 +80,11 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
else player.playerType = PlayerType.AI
|
else player.playerType = PlayerType.AI
|
||||||
update()
|
update()
|
||||||
}
|
}
|
||||||
playerTable.add(playerTypeTextbutton).width(100f).pad(5f)
|
playerTable.add(playerTypeTextbutton).width(100f).pad(5f).right()
|
||||||
playerTable.add("-".toLabel(Color.BLACK,30).apply { this.setAlignment(Align.center) }
|
playerTable.add("-".toLabel(Color.BLACK, 30).apply { this.setAlignment(Align.center) }
|
||||||
.surroundWithCircle(40f)
|
.surroundWithCircle(40f)
|
||||||
.onClick { newGameParameters.players.remove(player); update() }).pad(5f).row()
|
.onClick { newGameParameters.players.remove(player); update() }).pad(5f).right().row()
|
||||||
if(newGameParameters.isOnlineMultiplayer && player.playerType==PlayerType.Human) {
|
if (newGameParameters.isOnlineMultiplayer && player.playerType == PlayerType.Human) {
|
||||||
|
|
||||||
val playerIdTextfield = TextField(player.playerId, CameraStageBaseScreen.skin)
|
val playerIdTextfield = TextField(player.playerId, CameraStageBaseScreen.skin)
|
||||||
playerIdTextfield.messageText = "Please input Player ID!".tr()
|
playerIdTextfield.messageText = "Please input Player ID!".tr()
|
||||||
@ -90,7 +92,7 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
var errorLabel = "✘".toLabel(Color.RED)
|
var errorLabel = "✘".toLabel(Color.RED)
|
||||||
playerTable.add(errorLabel).pad(5f).row()
|
playerTable.add(errorLabel).pad(5f).row()
|
||||||
|
|
||||||
fun onPlayerIdTextUpdated(){
|
fun onPlayerIdTextUpdated() {
|
||||||
try {
|
try {
|
||||||
UUID.fromString(IdChecker.checkAndReturnPlayerUuid(playerIdTextfield.text))
|
UUID.fromString(IdChecker.checkAndReturnPlayerUuid(playerIdTextfield.text))
|
||||||
player.playerId = playerIdTextfield.text.trim()
|
player.playerId = playerIdTextfield.text.trim()
|
||||||
@ -122,13 +124,13 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
|
|
||||||
private fun getNationTable(player: Player): Table {
|
private fun getNationTable(player: Player): Table {
|
||||||
val nationTable = Table()
|
val nationTable = Table()
|
||||||
val nationImage = if (player.chosenCiv == "Random") "?".toLabel(Color.WHITE,25)
|
val nationImage = if (player.chosenCiv == "Random") "?".toLabel(Color.WHITE, 25)
|
||||||
.apply { this.setAlignment(Align.center) }
|
.apply { this.setAlignment(Align.center) }
|
||||||
.surroundWithCircle(36f).apply { circle.color = Color.BLACK }
|
.surroundWithCircle(36f).apply { circle.color = Color.BLACK }
|
||||||
.surroundWithCircle(40f,false).apply { circle.color = Color.WHITE }
|
.surroundWithCircle(40f, false).apply { circle.color = Color.WHITE }
|
||||||
else ImageGetter.getNationIndicator(newGameScreen.ruleset.nations[player.chosenCiv]!!, 40f)
|
else ImageGetter.getNationIndicator(newGameScreen.ruleset.nations[player.chosenCiv]!!, 40f)
|
||||||
nationTable.add(nationImage).pad(5f)
|
nationTable.add(nationImage).pad(5f)
|
||||||
nationTable.add(player.chosenCiv.toLabel()).width(230f).pad(5f)
|
nationTable.add(player.chosenCiv.toLabel()).pad(5f)
|
||||||
nationTable.touchable = Touchable.enabled
|
nationTable.touchable = Touchable.enabled
|
||||||
nationTable.onClick {
|
nationTable.onClick {
|
||||||
popupNationPicker(player)
|
popupNationPicker(player)
|
||||||
@ -146,7 +148,7 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
randomPlayerTable.add("?".toLabel(Color.WHITE, 30)
|
randomPlayerTable.add("?".toLabel(Color.WHITE, 30)
|
||||||
.apply { this.setAlignment(Align.center) }
|
.apply { this.setAlignment(Align.center) }
|
||||||
.surroundWithCircle(45f).apply { circle.color = Color.BLACK }
|
.surroundWithCircle(45f).apply { circle.color = Color.BLACK }
|
||||||
.surroundWithCircle(50f,false).apply { circle.color = Color.WHITE }).pad(10f)
|
.surroundWithCircle(50f, false).apply { circle.color = Color.WHITE }).pad(10f)
|
||||||
randomPlayerTable.add("Random".toLabel())
|
randomPlayerTable.add("Random".toLabel())
|
||||||
randomPlayerTable.touchable = Touchable.enabled
|
randomPlayerTable.touchable = Touchable.enabled
|
||||||
randomPlayerTable.onClick {
|
randomPlayerTable.onClick {
|
||||||
@ -162,7 +164,7 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
if (player.chosenCiv != nation.name && newGameParameters.players.any { it.chosenCiv == nation.name })
|
if (player.chosenCiv != nation.name && newGameParameters.players.any { it.chosenCiv == nation.name })
|
||||||
continue
|
continue
|
||||||
|
|
||||||
nationListTable.add(NationTable(nation, nationsPopupWidth,newGameScreen.ruleset).onClick {
|
nationListTable.add(NationTable(nation, nationsPopupWidth, newGameScreen.ruleset).onClick {
|
||||||
player.chosenCiv = nation.name
|
player.chosenCiv = nation.name
|
||||||
nationsPopup.close()
|
nationsPopup.close()
|
||||||
update()
|
update()
|
||||||
@ -173,5 +175,3 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
|||||||
update()
|
update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user