From f5968e678dbd7f29f438cc095c32f6aa37dedb89 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Fri, 1 May 2020 00:03:07 +0300 Subject: [PATCH] Players has to be an ArrayList, or else it's not guaranteed to be initializable when starting mods... --- core/src/com/unciv/models/metadata/GameParameters.kt | 2 +- core/src/com/unciv/models/translations/Translations.kt | 4 +++- core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/models/metadata/GameParameters.kt b/core/src/com/unciv/models/metadata/GameParameters.kt index 6b1c1281c8..a114269e4c 100644 --- a/core/src/com/unciv/models/metadata/GameParameters.kt +++ b/core/src/com/unciv/models/metadata/GameParameters.kt @@ -7,7 +7,7 @@ import com.unciv.models.ruleset.VictoryType class GameParameters { // Default values are the default new game var difficulty = "Prince" var gameSpeed = GameSpeed.Standard - var players = mutableListOf().apply { + var players = ArrayList().apply { add(Player().apply { playerType = PlayerType.Human }) for (i in 1..3) add(Player()) } diff --git a/core/src/com/unciv/models/translations/Translations.kt b/core/src/com/unciv/models/translations/Translations.kt index 79e096a08f..3a1e74e8f4 100644 --- a/core/src/com/unciv/models/translations/Translations.kt +++ b/core/src/com/unciv/models/translations/Translations.kt @@ -145,8 +145,10 @@ class Translations : LinkedHashMap(){ } companion object { + // Regex compilation is expensive, best to save it + val bonusOrPenaltyRegex = Regex("""(Bonus|Penalty) vs (.*) (\d*)%""") fun translateBonusOrPenalty(unique:String): String { - val regexResult = Regex("""(Bonus|Penalty) vs (.*) (\d*)%""").matchEntire(unique) + val regexResult = bonusOrPenaltyRegex.matchEntire(unique) if(regexResult==null) return unique.tr() else{ var separatorCharacter = " " diff --git a/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt b/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt index 7af1966c86..fad7ad8060 100644 --- a/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt +++ b/core/src/com/unciv/ui/newgamescreen/PlayerPickerTable.kt @@ -36,7 +36,7 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters: reassignRemovedModReferences() val newRulesetPlayableCivs = newGameScreen.ruleset.nations.count { it.key!=Constants.barbarians } if(newGameParameters.players.size > newRulesetPlayableCivs) - newGameParameters.players=newGameParameters.players.subList(0,newRulesetPlayableCivs) + newGameParameters.players=ArrayList(newGameParameters.players.subList(0,newRulesetPlayableCivs)) if (desiredCiv.isNotEmpty()) assignDesiredCiv(desiredCiv) for (player in newGameParameters.players) {