Separated base ruleset mods in new game screen - cannot activate multiple base ruleset mods
This commit is contained in:
parent
ce8e410969
commit
c61ec2120b
2 changed files with 30 additions and 7 deletions
|
@ -258,6 +258,8 @@ It looks like we can't make a map with the parameters you requested! =
|
|||
Maybe you put too many players into too small a map? =
|
||||
No human players selected! =
|
||||
Mods: =
|
||||
Base ruleset mods: =
|
||||
Extension mods: =
|
||||
|
||||
# Multiplayer
|
||||
|
||||
|
|
|
@ -178,12 +178,14 @@ class GameOptionsTable(val previousScreen: IPreviousScreen, val updatePlayerPick
|
|||
}
|
||||
|
||||
fun Table.addModCheckboxes() {
|
||||
val modRulesets = RulesetCache.values.filter { it.name != ""
|
||||
&& (it.name in gameParameters.mods || !it.modOptions.uniques.contains("Scenario only")) } // Don't allow scenario mods for a regular 'new game'
|
||||
if (modRulesets.isEmpty()) return
|
||||
val modRulesets = RulesetCache.values.filter {
|
||||
it.name != ""
|
||||
&& (it.name in gameParameters.mods || !it.modOptions.uniques.contains("Scenario only"))
|
||||
} // Don't allow scenario mods for a regular 'new game'
|
||||
|
||||
val baseRulesetCheckboxes = ArrayList<CheckBox>()
|
||||
val extentionRulesetModButtons = ArrayList<CheckBox>()
|
||||
|
||||
add("Mods:".toLabel(fontSize = 24)).padTop(16f).colspan(2).row()
|
||||
val modCheckboxTable = Table().apply { defaults().pad(5f) }
|
||||
for (mod in modRulesets) {
|
||||
val checkBox = CheckBox(mod.name.tr(), CameraStageBaseScreen.skin)
|
||||
checkBox.isDisabled = locked
|
||||
|
@ -199,13 +201,32 @@ class GameOptionsTable(val previousScreen: IPreviousScreen, val updatePlayerPick
|
|||
if (modNations != null && modNations.size > 0) {
|
||||
desiredCiv = modNations.keys.first()
|
||||
}
|
||||
if (mod.modOptions.isBaseRuleset)
|
||||
for (oldBaseRuleset in gameParameters.mods)
|
||||
if (modRulesets.firstOrNull { it.name == oldBaseRuleset }?.modOptions?.isBaseRuleset == true)
|
||||
gameParameters.mods.remove(oldBaseRuleset)
|
||||
}
|
||||
updatePlayerPickerTable(desiredCiv)
|
||||
}
|
||||
modCheckboxTable.add(checkBox).row()
|
||||
if (mod.modOptions.isBaseRuleset) baseRulesetCheckboxes.add(checkBox)
|
||||
else extentionRulesetModButtons.add(checkBox)
|
||||
}
|
||||
|
||||
if (baseRulesetCheckboxes.any()) {
|
||||
add("Base ruleset mods:".toLabel(fontSize = 24)).padTop(16f).colspan(2).row()
|
||||
val modCheckboxTable = Table().apply { defaults().pad(5f) }
|
||||
for (checkbox in baseRulesetCheckboxes) modCheckboxTable.add(checkbox).row()
|
||||
add(modCheckboxTable).colspan(2).row()
|
||||
}
|
||||
|
||||
|
||||
if (extentionRulesetModButtons.any()) {
|
||||
add("Extension mods:".toLabel(fontSize = 24)).padTop(16f).colspan(2).row()
|
||||
val modCheckboxTable = Table().apply { defaults().pad(5f) }
|
||||
for (checkbox in extentionRulesetModButtons) modCheckboxTable.add(checkbox).row()
|
||||
add(modCheckboxTable).colspan(2).row()
|
||||
}
|
||||
|
||||
add(modCheckboxTable).colspan(2).row()
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue