diff --git a/game/debriefing.py b/game/debriefing.py index 6987b6a9..12975d1c 100644 --- a/game/debriefing.py +++ b/game/debriefing.py @@ -103,9 +103,10 @@ class Debriefing: def __init__(self, state_data: Dict[str, Any], game: Game, unit_map: UnitMap) -> None: self.state_data = StateData.from_json(state_data) - self.game = game self.unit_map = unit_map + self.player_country = game.player_country + self.enemy_country = game.enemy_country self.player_country_id = db.country_id_from_name(game.player_country) self.enemy_country_id = db.country_id_from_name(game.enemy_country) diff --git a/qt_ui/windows/GameUpdateSignal.py b/qt_ui/windows/GameUpdateSignal.py index 529a7498..f70c0e49 100644 --- a/qt_ui/windows/GameUpdateSignal.py +++ b/qt_ui/windows/GameUpdateSignal.py @@ -1,19 +1,11 @@ from __future__ import annotations -from typing import Optional, Tuple +from typing import Optional from PySide2.QtCore import QObject, Signal from game import Game -from game.event import Event, Debriefing - - -class DebriefingSignal: - - def __init__(self, game, gameEvent, debriefing): - self.game = game - self.gameEvent = gameEvent - self.debriefing = debriefing +from game.event import Debriefing class GameUpdateSignal(QObject): @@ -21,7 +13,7 @@ class GameUpdateSignal(QObject): instance = None gameupdated = Signal(Game) budgetupdated = Signal(Game) - debriefingReceived = Signal(DebriefingSignal) + debriefingReceived = Signal(Debriefing) flight_paths_changed = Signal() package_selection_changed = Signal(int) # -1 indicates no selection. @@ -51,12 +43,9 @@ class GameUpdateSignal(QObject): # noinspection PyUnresolvedReferences self.budgetupdated.emit(game) - def sendDebriefing(self, game: Game, gameEvent: Event, debriefing: Debriefing): - sig = DebriefingSignal(game, gameEvent, debriefing) + def sendDebriefing(self, debriefing: Debriefing) -> None: # noinspection PyUnresolvedReferences - self.gameupdated.emit(game) - # noinspection PyUnresolvedReferences - self.debriefingReceived.emit(sig) + self.debriefingReceived.emit(debriefing) @staticmethod def get_instance() -> GameUpdateSignal: diff --git a/qt_ui/windows/QDebriefingWindow.py b/qt_ui/windows/QDebriefingWindow.py index 6ef9ef81..a2d4c25c 100644 --- a/qt_ui/windows/QDebriefingWindow.py +++ b/qt_ui/windows/QDebriefingWindow.py @@ -10,24 +10,21 @@ from PySide2.QtWidgets import ( QVBoxLayout, ) +from game import db from game.debriefing import Debriefing -from game.game import Event, Game, db class QDebriefingWindow(QDialog): - def __init__(self, debriefing: Debriefing, gameEvent: Event, game: Game): + def __init__(self, debriefing: Debriefing): super(QDebriefingWindow, self).__init__() + self.debriefing = debriefing self.setModal(True) self.setWindowTitle("Debriefing") self.setMinimumSize(300, 200) self.setWindowIcon(QIcon("./resources/icon.png")) - self.game = game - self.gameEvent = gameEvent - self.debriefing = debriefing - self.initUI() def initUI(self): @@ -45,7 +42,8 @@ class QDebriefingWindow(QDialog): self.layout.addWidget(title) # Player lost units - lostUnits = QGroupBox(self.game.player_country + "'s lost units :") + lostUnits = QGroupBox( + f"{self.debriefing.player_country}'s lost units:") lostUnitsLayout = QGridLayout() lostUnits.setLayout(lostUnitsLayout) @@ -87,7 +85,8 @@ class QDebriefingWindow(QDialog): self.layout.addWidget(lostUnits) # Enemy lost units - enemylostUnits = QGroupBox(self.game.enemy_country + "'s lost units :") + enemylostUnits = QGroupBox( + f"{self.debriefing.enemy_country}'s lost units:") enemylostUnitsLayout = QGridLayout() enemylostUnits.setLayout(enemylostUnitsLayout) diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index 66c74c56..9bcf9479 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -18,6 +18,7 @@ from PySide2.QtWidgets import ( import qt_ui.uiconstants as CONST from game import Game, VERSION, persistency +from game.debriefing import Debriefing from qt_ui.dialogs import Dialog from qt_ui.displayoptions import DisplayGroup, DisplayOptions, DisplayRule from qt_ui.models import GameModel @@ -286,9 +287,9 @@ class QLiberationWindow(QMainWindow): self.subwindow = QLiberationPreferencesWindow() self.subwindow.show() - def onDebriefing(self, debrief: DebriefingSignal): + def onDebriefing(self, debrief: Debriefing): logging.info("On Debriefing") - self.debriefing = QDebriefingWindow(debrief.debriefing, debrief.gameEvent, debrief.game) + self.debriefing = QDebriefingWindow(debrief) self.debriefing.show() def closeEvent(self, event: QCloseEvent) -> None: diff --git a/qt_ui/windows/QWaitingForMissionResultWindow.py b/qt_ui/windows/QWaitingForMissionResultWindow.py index 5551dda0..5e9a99df 100644 --- a/qt_ui/windows/QWaitingForMissionResultWindow.py +++ b/qt_ui/windows/QWaitingForMissionResultWindow.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import json import os @@ -37,7 +39,7 @@ class DebriefingFileWrittenSignal(QObject): self.debriefingReceived.emit(debriefing) @staticmethod - def get_instance(): + def get_instance() -> DebriefingFileWrittenSignal: return DebriefingFileWrittenSignal.instance @@ -185,7 +187,8 @@ class QWaitingForMissionResultWindow(QDialog): self.game.finish_event(event=self.gameEvent, debriefing=self.debriefing) self.game.pass_turn() - GameUpdateSignal.get_instance().sendDebriefing(self.game, self.gameEvent, self.debriefing) + GameUpdateSignal.get_instance().sendDebriefing(self.debriefing) + GameUpdateSignal.get_instance().updateGame(self.game) self.close() def debriefing_directory_location(self) -> str: