51 lines
2.0 KiB
Python

from __future__ import unicode_literals
from PySide6 import QtWidgets, QtGui
from game.campaignloader import Campaign
from game.settings import Settings
from qt_ui.windows.settings.QSettingsWindow import QSettingsWidget
class NewGameSettings(QtWidgets.QWizardPage):
def __init__(self, campaign: Campaign, parent=None) -> None:
super().__init__(parent)
self.setTitle("Campaign options")
self.setSubTitle(
"\nAll other options unrelated to campaign generation. Defaults can be changed by overwriting Default.zip"
)
self.setPixmap(
QtWidgets.QWizard.WizardPixmap.LogoPixmap,
QtGui.QPixmap("./resources/ui/wizard/logo1.png"),
)
settings = Settings()
self.settings_widget = QSettingsWidget(settings)
self.settings_widget.load_default_settings()
self._load_campaign_settings(campaign, settings)
settings.player_income_multiplier = (
campaign.recommended_player_income_multiplier
)
settings.enemy_income_multiplier = campaign.recommended_enemy_income_multiplier
self.settings_widget.update_from_settings()
self.setLayout(self.settings_widget.layout)
@staticmethod
def _load_campaign_settings(campaign: Campaign, settings: Settings) -> None:
campaign_settings = Settings.deserialize_state_dict(campaign.settings)
if campaign_settings.get("plugins", {}):
campaign_settings["plugins"] = {
**settings.__dict__["plugins"],
**campaign_settings["plugins"],
}
settings.__dict__.update(campaign_settings)
def set_campaign_values(self, c: Campaign):
sw = self.settings_widget
sw.load_default_settings()
self._load_campaign_settings(c, sw.settings)
sw.settings.player_income_multiplier = c.recommended_player_income_multiplier
sw.settings.enemy_income_multiplier = c.recommended_enemy_income_multiplier
sw.update_from_settings()