mirror of
https://github.com/yairm210/Unciv.git
synced 2025-08-04 00:59:41 +07:00
bugfix: players can no longer get citystate nations when selecting mod
This commit is contained in:
@ -2,8 +2,10 @@ package com.unciv.logic
|
||||
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.utils.debug
|
||||
import com.unciv.logic.civilization.*
|
||||
import com.unciv.logic.civilization.AlertType
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
import com.unciv.logic.civilization.PlayerType
|
||||
import com.unciv.logic.civilization.PopupAlert
|
||||
import com.unciv.logic.map.TileInfo
|
||||
import com.unciv.logic.map.TileMap
|
||||
import com.unciv.logic.map.mapgenerator.MapGenerator
|
||||
@ -15,9 +17,8 @@ import com.unciv.models.ruleset.RulesetCache
|
||||
import com.unciv.models.ruleset.unique.UniqueType
|
||||
import com.unciv.models.translations.equalsPlaceholderText
|
||||
import com.unciv.models.translations.getPlaceholderParameters
|
||||
import com.unciv.utils.debug
|
||||
import java.util.*
|
||||
import kotlin.collections.HashMap
|
||||
import kotlin.collections.HashSet
|
||||
|
||||
object GameStarter {
|
||||
// temporary instrumentation while tuning/debugging
|
||||
@ -220,7 +221,6 @@ object GameStarter {
|
||||
// CityState or Spectator civs are not available for Random pick
|
||||
availableCivNames.addAll(ruleset.nations.filter { it.value.isMajorCiv() }.keys.shuffled())
|
||||
availableCivNames.removeAll(newGameParameters.players.map { it.chosenCiv }.toSet())
|
||||
availableCivNames.remove(Constants.barbarians)
|
||||
|
||||
val startingTechs = ruleset.technologies.values.filter { it.hasUnique(UniqueType.StartingTech) }
|
||||
|
||||
|
@ -292,7 +292,8 @@ class GameOptionsTable(
|
||||
var desiredCiv = ""
|
||||
if (gameParameters.mods.contains(mod)) {
|
||||
val modNations = RulesetCache[mod]?.nations
|
||||
if (modNations != null && modNations.size > 0) desiredCiv = modNations.keys.first()
|
||||
if (modNations != null && modNations.size > 0)
|
||||
desiredCiv = modNations.values.filter { it.isMajorCiv() }.random().name
|
||||
|
||||
val music = UncivGame.Current.musicController
|
||||
if (!music.chooseTrack(mod, MusicMood.Theme, MusicTrackChooserFlags.setSelectNation) && desiredCiv.isNotEmpty())
|
||||
|
@ -83,20 +83,21 @@ class PlayerPickerTable(
|
||||
playerListTable.add(getPlayerTable(player)).width(civBlocksWidth).padBottom(20f).row()
|
||||
}
|
||||
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) {
|
||||
val availableCiv = getAvailablePlayerCivs().firstOrNull()
|
||||
if (availableCiv != null) player = Player(availableCiv.name)
|
||||
// Spectators only Humans
|
||||
else player = Player(Constants.spectator).apply { playerType = PlayerType.Human }
|
||||
}
|
||||
gameParameters.players.add(player)
|
||||
update()
|
||||
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) {
|
||||
val availableCiv = getAvailablePlayerCivs().firstOrNull()
|
||||
if (availableCiv != null) player = Player(availableCiv.name)
|
||||
// Spectators only Humans
|
||||
else player = Player(Constants.spectator).apply { playerType = PlayerType.Human }
|
||||
}
|
||||
gameParameters.players.add(player)
|
||||
update()
|
||||
}
|
||||
playerListTable.add(addPlayerButton).pad(10f)
|
||||
}
|
||||
// enable start game when more than 1 active player
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 363 KiB |
Reference in New Issue
Block a user