New game wizard : added to slider to choose starting money

This commit is contained in:
Khopa 2020-10-10 16:21:41 +02:00
parent a0ff78a810
commit f4b07cb518
2 changed files with 32 additions and 18 deletions

View File

@ -95,11 +95,11 @@ class QTopPanel(QFrame):
if game is None: if game is None:
return return
self.turnCounter.setCurrentTurn(self.game.turn, self.game.current_day) self.turnCounter.setCurrentTurn(game.turn, game.current_day)
self.budgetBox.setGame(self.game) self.budgetBox.setGame(game)
self.factionsInfos.setGame(self.game) self.factionsInfos.setGame(game)
if self.game and self.game.turn == 0: if game and game.turn == 0:
self.proceedButton.setEnabled(False) self.proceedButton.setEnabled(False)
else: else:
self.proceedButton.setEnabled(True) self.proceedButton.setEnabled(True)

View File

@ -5,7 +5,7 @@ import logging
from typing import List from typing import List
from PySide2 import QtGui, QtWidgets from PySide2 import QtGui, QtWidgets
from PySide2.QtCore import QItemSelectionModel, QPoint from PySide2.QtCore import QItemSelectionModel, QPoint, Qt
from PySide2.QtWidgets import QVBoxLayout from PySide2.QtWidgets import QVBoxLayout
from dcs.task import CAP, CAS from dcs.task import CAP, CAS
@ -63,6 +63,7 @@ class NewGameWizard(QtWidgets.QWizard):
no_player_navy = self.field("no_player_navy") no_player_navy = self.field("no_player_navy")
no_enemy_navy = self.field("no_enemy_navy") no_enemy_navy = self.field("no_enemy_navy")
invertMap = self.field("invertMap") invertMap = self.field("invertMap")
starting_money = int(self.field("starting_money"))
player_name = blueFaction player_name = blueFaction
enemy_name = redFaction enemy_name = redFaction
@ -76,12 +77,12 @@ class NewGameWizard(QtWidgets.QWizard):
settings.do_not_generate_enemy_navy = no_enemy_navy settings.do_not_generate_enemy_navy = no_enemy_navy
self.generatedGame = self.start_new_game(player_name, enemy_name, conflictTheater, midGame, multiplier, self.generatedGame = self.start_new_game(player_name, enemy_name, conflictTheater, midGame, multiplier,
timePeriod, settings) timePeriod, settings, starting_money)
super(NewGameWizard, self).accept() super(NewGameWizard, self).accept()
def start_new_game(self, player_name: str, enemy_name: str, conflictTheater: ConflictTheater, def start_new_game(self, player_name: str, enemy_name: str, conflictTheater: ConflictTheater,
midgame: bool, multiplier: float, period: datetime, settings:Settings): midgame: bool, multiplier: float, period: datetime, settings:Settings, starting_money: int):
# Reset name generator # Reset name generator
namegen.reset() namegen.reset()
@ -102,14 +103,10 @@ class NewGameWizard(QtWidgets.QWizard):
print("-- Game Object generated") print("-- Game Object generated")
start_generator.generate_groundobjects(conflictTheater, game) start_generator.generate_groundobjects(conflictTheater, game)
game.budget = int(game.budget * multiplier) game.budget = starting_money
game.settings.multiplier = multiplier game.settings.multiplier = multiplier
game.settings.sams = True game.settings.sams = True
game.settings.version = CONST.VERSION_STRING game.settings.version = CONST.VERSION_STRING
if midgame:
game.budget = game.budget * 4 * len(list(conflictTheater.conflicts()))
return game return game
@ -330,6 +327,23 @@ class MiscOptions(QtWidgets.QWizardPage):
no_enemy_navy = QtWidgets.QCheckBox() no_enemy_navy = QtWidgets.QCheckBox()
self.registerField('no_enemy_navy', no_enemy_navy) self.registerField('no_enemy_navy', no_enemy_navy)
# Economy settings
economySettingsGroup = QtWidgets.QGroupBox("Economy")
starting_money_slider = QtWidgets.QSlider(Qt.Horizontal)
starting_money_slider.setMinimum(0)
starting_money_slider.setMaximum(5000)
starting_money_slider.setValue(650)
starting_money_label = QtWidgets.QLabel("$650M")
starting_money_slider.valueChanged.connect(lambda x: starting_money_label.setText("${}M".format(x)))
self.registerField('starting_money', starting_money_slider)
layout = QtWidgets.QGridLayout()
layout.addWidget(QtWidgets.QLabel("Start at mid game"), 1, 0)
layout.addWidget(midGame, 1, 1)
layout.addWidget(QtWidgets.QLabel("Ennemy forces multiplier [Disabled for Now]"), 2, 0)
layout.addWidget(multiplier, 2, 1)
miscSettingsGroup.setLayout(layout)
generatorLayout = QtWidgets.QGridLayout() generatorLayout = QtWidgets.QGridLayout()
generatorLayout.addWidget(QtWidgets.QLabel("No Aircraft Carriers"), 1, 0) generatorLayout.addWidget(QtWidgets.QLabel("No Aircraft Carriers"), 1, 0)
generatorLayout.addWidget(no_carrier, 1, 1) generatorLayout.addWidget(no_carrier, 1, 1)
@ -343,16 +357,16 @@ class MiscOptions(QtWidgets.QWizardPage):
generatorLayout.addWidget(no_enemy_navy, 5, 1) generatorLayout.addWidget(no_enemy_navy, 5, 1)
generatorSettingsGroup.setLayout(generatorLayout) generatorSettingsGroup.setLayout(generatorLayout)
layout = QtWidgets.QGridLayout() economyLayout = QtWidgets.QGridLayout()
layout.addWidget(QtWidgets.QLabel("Start at mid game"), 1, 0) economyLayout.addWidget(QtWidgets.QLabel("Starting money"), 0, 0)
layout.addWidget(midGame, 1, 1) economyLayout.addWidget(starting_money_slider, 1, 0)
layout.addWidget(QtWidgets.QLabel("Ennemy forces multiplier [Disabled for Now]"), 2, 0) economyLayout.addWidget(starting_money_label, 1, 1)
layout.addWidget(multiplier, 2, 1) economySettingsGroup.setLayout(economyLayout)
miscSettingsGroup.setLayout(layout)
mlayout = QVBoxLayout() mlayout = QVBoxLayout()
mlayout.addWidget(miscSettingsGroup) mlayout.addWidget(miscSettingsGroup)
mlayout.addWidget(generatorSettingsGroup) mlayout.addWidget(generatorSettingsGroup)
mlayout.addWidget(economySettingsGroup)
self.setLayout(mlayout) self.setLayout(mlayout)