Can now pick Random civ in player picker

This commit is contained in:
Yair Morgenstern 2019-11-30 23:11:46 +02:00
parent cf7cf562fa
commit c992995b6f
2 changed files with 37 additions and 18 deletions

View File

@ -9,10 +9,9 @@ import com.unciv.models.gamebasics.Translations
import com.unciv.models.gamebasics.tr import com.unciv.models.gamebasics.tr
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.onClick
import com.unciv.ui.utils.toLabel import com.unciv.ui.utils.toLabel
class NationTable(val nation: Nation, width:Float, onClick:()->Unit) class NationTable(val nation: Nation, width:Float)
: Table(CameraStageBaseScreen.skin) { : Table(CameraStageBaseScreen.skin) {
private val innerTable = Table() private val innerTable = Table()
@ -27,7 +26,6 @@ class NationTable(val nation: Nation, width:Float, onClick:()->Unit)
innerTable.add(titleTable).row() innerTable.add(titleTable).row()
innerTable.add(getUniqueLabel(nation).apply { setWrap(true) }).width(width) innerTable.add(getUniqueLabel(nation).apply { setWrap(true) }).width(width)
onClick { onClick() }
touchable = Touchable.enabled touchable = Touchable.enabled
add(innerTable) add(innerTable)
} }

View File

@ -111,13 +111,36 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
nationTable.add(player.chosenCiv.toLabel()).pad(20f) nationTable.add(player.chosenCiv.toLabel()).pad(20f)
nationTable.touchable = Touchable.enabled nationTable.touchable = Touchable.enabled
nationTable.onClick { nationTable.onClick {
popupNationPicker(player)
}
return nationTable
}
private fun popupNationPicker(player: Player) {
val nationsPopup = PopupTable(newGameScreen) val nationsPopup = PopupTable(newGameScreen)
val nationListTable = Table() val nationListTable = Table()
val randomPlayerTable = Table()
randomPlayerTable.background = ImageGetter.getBackground(Color.BLACK)
randomPlayerTable.add("?".toLabel(Color.BLACK, 30)
.apply { this.setAlignment(Align.center) }
.surroundWithCircle(50f)).pad(10f)
randomPlayerTable.add("Random".toLabel())
randomPlayerTable.touchable = Touchable.enabled
randomPlayerTable.onClick {
player.chosenCiv = "Random"
nationsPopup.close()
update()
}
nationListTable.add(randomPlayerTable).pad(10f).width(halfWidth).row()
for (nation in GameBasics.Nations.values.filter { !it.isCityState() && it.name != "Barbarians" }) { for (nation in GameBasics.Nations.values.filter { !it.isCityState() && it.name != "Barbarians" }) {
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, halfWidth) { nationListTable.add(NationTable(nation, halfWidth).onClick {
player.chosenCiv = nation.name player.chosenCiv = nation.name
nationsPopup.close() nationsPopup.close()
update() update()
@ -127,8 +150,6 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
nationsPopup.open() nationsPopup.open()
update() update()
} }
return nationTable
}
} }