mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
51 lines
2.0 KiB
Python
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()
|