Add battle damage assessment option

This commit is contained in:
Kangwook Lee 2021-08-07 04:43:43 +09:00 committed by Dan Albert
parent 74e6226d13
commit def5454e5f
3 changed files with 30 additions and 0 deletions

View File

@ -33,6 +33,7 @@ class Settings:
labels: str = "Full" labels: str = "Full"
map_coalition_visibility: ForcedOptions.Views = ForcedOptions.Views.All map_coalition_visibility: ForcedOptions.Views = ForcedOptions.Views.All
external_views_allowed: bool = True external_views_allowed: bool = True
battle_damage_assessment: Optional[bool] = None
# Campaign management # Campaign management
# General # General

View File

@ -43,8 +43,14 @@ class ForcedOptionsGenerator:
if blue.unrestricted_satnav or red.unrestricted_satnav: if blue.unrestricted_satnav or red.unrestricted_satnav:
self.mission.forced_options.unrestricted_satnav = True self.mission.forced_options.unrestricted_satnav = True
def _set_battle_damage_assessment(self) -> None:
self.mission.forced_options.battle_damage_assessment = (
self.game.settings.battle_damage_assessment
)
def generate(self) -> None: def generate(self) -> None:
self._set_options_view() self._set_options_view()
self._set_external_views() self._set_external_views()
self._set_labels() self._set_labels()
self._set_unrestricted_satnav() self._set_unrestricted_satnav()
self._set_battle_damage_assessment()

View File

@ -517,6 +517,18 @@ class QSettingsWindow(QDialog):
self.ext_views.setChecked(self.game.settings.external_views_allowed) self.ext_views.setChecked(self.game.settings.external_views_allowed)
self.ext_views.toggled.connect(self.applySettings) self.ext_views.toggled.connect(self.applySettings)
self.battleDamageAssessment = QComboBox()
self.battleDamageAssessment.addItem("Player preference", None)
self.battleDamageAssessment.addItem("Enforced on", True)
self.battleDamageAssessment.addItem("Enforced off", False)
if self.game.settings.battle_damage_assessment is None:
self.battleDamageAssessment.setCurrentIndex(0)
elif self.game.settings.battle_damage_assessment is True:
self.battleDamageAssessment.setCurrentIndex(1)
else:
self.battleDamageAssessment.setCurrentIndex(2)
self.battleDamageAssessment.currentIndexChanged.connect(self.applySettings)
def set_invulnerable_player_pilots(checked: bool) -> None: def set_invulnerable_player_pilots(checked: bool) -> None:
self.game.settings.invulnerable_player_pilots = checked self.game.settings.invulnerable_player_pilots = checked
@ -568,6 +580,14 @@ class QSettingsWindow(QDialog):
) )
self.missionRestrictionsLayout.addWidget(QLabel("Allow external views"), 2, 0) self.missionRestrictionsLayout.addWidget(QLabel("Allow external views"), 2, 0)
self.missionRestrictionsLayout.addWidget(self.ext_views, 2, 1, Qt.AlignRight) self.missionRestrictionsLayout.addWidget(self.ext_views, 2, 1, Qt.AlignRight)
self.missionRestrictionsLayout.addWidget(
QLabel("Battle damage assessment"), 3, 0
)
self.missionRestrictionsLayout.addWidget(
self.battleDamageAssessment, 3, 1, Qt.AlignRight
)
self.missionRestrictionsSettings.setLayout(self.missionRestrictionsLayout) self.missionRestrictionsSettings.setLayout(self.missionRestrictionsLayout)
self.difficultyLayout.addWidget(self.missionRestrictionsSettings) self.difficultyLayout.addWidget(self.missionRestrictionsSettings)
@ -909,6 +929,9 @@ class QSettingsWindow(QDialog):
self.mapVisibiitySelection.currentData() self.mapVisibiitySelection.currentData()
) )
self.game.settings.external_views_allowed = self.ext_views.isChecked() self.game.settings.external_views_allowed = self.ext_views.isChecked()
self.game.settings.battle_damage_assessment = (
self.battleDamageAssessment.currentData()
)
self.game.settings.generate_marks = self.generate_marks.isChecked() self.game.settings.generate_marks = self.generate_marks.isChecked()
self.game.settings.never_delay_player_flights = ( self.game.settings.never_delay_player_flights = (
self.never_delay_players.isChecked() self.never_delay_players.isChecked()