Cleanup debriefing signals.

We don't need most of this information.
This commit is contained in:
Dan Albert 2020-12-06 16:04:13 -08:00
parent aea82e2266
commit 84b8613cf5
5 changed files with 22 additions and 29 deletions

View File

@ -103,9 +103,10 @@ class Debriefing:
def __init__(self, state_data: Dict[str, Any], game: Game, def __init__(self, state_data: Dict[str, Any], game: Game,
unit_map: UnitMap) -> None: unit_map: UnitMap) -> None:
self.state_data = StateData.from_json(state_data) self.state_data = StateData.from_json(state_data)
self.game = game
self.unit_map = unit_map 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.player_country_id = db.country_id_from_name(game.player_country)
self.enemy_country_id = db.country_id_from_name(game.enemy_country) self.enemy_country_id = db.country_id_from_name(game.enemy_country)

View File

@ -1,19 +1,11 @@
from __future__ import annotations from __future__ import annotations
from typing import Optional, Tuple from typing import Optional
from PySide2.QtCore import QObject, Signal from PySide2.QtCore import QObject, Signal
from game import Game from game import Game
from game.event import Event, Debriefing from game.event import Debriefing
class DebriefingSignal:
def __init__(self, game, gameEvent, debriefing):
self.game = game
self.gameEvent = gameEvent
self.debriefing = debriefing
class GameUpdateSignal(QObject): class GameUpdateSignal(QObject):
@ -21,7 +13,7 @@ class GameUpdateSignal(QObject):
instance = None instance = None
gameupdated = Signal(Game) gameupdated = Signal(Game)
budgetupdated = Signal(Game) budgetupdated = Signal(Game)
debriefingReceived = Signal(DebriefingSignal) debriefingReceived = Signal(Debriefing)
flight_paths_changed = Signal() flight_paths_changed = Signal()
package_selection_changed = Signal(int) # -1 indicates no selection. package_selection_changed = Signal(int) # -1 indicates no selection.
@ -51,12 +43,9 @@ class GameUpdateSignal(QObject):
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
self.budgetupdated.emit(game) self.budgetupdated.emit(game)
def sendDebriefing(self, game: Game, gameEvent: Event, debriefing: Debriefing): def sendDebriefing(self, debriefing: Debriefing) -> None:
sig = DebriefingSignal(game, gameEvent, debriefing)
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
self.gameupdated.emit(game) self.debriefingReceived.emit(debriefing)
# noinspection PyUnresolvedReferences
self.debriefingReceived.emit(sig)
@staticmethod @staticmethod
def get_instance() -> GameUpdateSignal: def get_instance() -> GameUpdateSignal:

View File

@ -10,24 +10,21 @@ from PySide2.QtWidgets import (
QVBoxLayout, QVBoxLayout,
) )
from game import db
from game.debriefing import Debriefing from game.debriefing import Debriefing
from game.game import Event, Game, db
class QDebriefingWindow(QDialog): class QDebriefingWindow(QDialog):
def __init__(self, debriefing: Debriefing, gameEvent: Event, game: Game): def __init__(self, debriefing: Debriefing):
super(QDebriefingWindow, self).__init__() super(QDebriefingWindow, self).__init__()
self.debriefing = debriefing
self.setModal(True) self.setModal(True)
self.setWindowTitle("Debriefing") self.setWindowTitle("Debriefing")
self.setMinimumSize(300, 200) self.setMinimumSize(300, 200)
self.setWindowIcon(QIcon("./resources/icon.png")) self.setWindowIcon(QIcon("./resources/icon.png"))
self.game = game
self.gameEvent = gameEvent
self.debriefing = debriefing
self.initUI() self.initUI()
def initUI(self): def initUI(self):
@ -45,7 +42,8 @@ class QDebriefingWindow(QDialog):
self.layout.addWidget(title) self.layout.addWidget(title)
# Player lost units # Player lost units
lostUnits = QGroupBox(self.game.player_country + "'s lost units :") lostUnits = QGroupBox(
f"{self.debriefing.player_country}'s lost units:")
lostUnitsLayout = QGridLayout() lostUnitsLayout = QGridLayout()
lostUnits.setLayout(lostUnitsLayout) lostUnits.setLayout(lostUnitsLayout)
@ -87,7 +85,8 @@ class QDebriefingWindow(QDialog):
self.layout.addWidget(lostUnits) self.layout.addWidget(lostUnits)
# Enemy lost units # Enemy lost units
enemylostUnits = QGroupBox(self.game.enemy_country + "'s lost units :") enemylostUnits = QGroupBox(
f"{self.debriefing.enemy_country}'s lost units:")
enemylostUnitsLayout = QGridLayout() enemylostUnitsLayout = QGridLayout()
enemylostUnits.setLayout(enemylostUnitsLayout) enemylostUnits.setLayout(enemylostUnitsLayout)

View File

@ -18,6 +18,7 @@ from PySide2.QtWidgets import (
import qt_ui.uiconstants as CONST import qt_ui.uiconstants as CONST
from game import Game, VERSION, persistency from game import Game, VERSION, persistency
from game.debriefing import Debriefing
from qt_ui.dialogs import Dialog from qt_ui.dialogs import Dialog
from qt_ui.displayoptions import DisplayGroup, DisplayOptions, DisplayRule from qt_ui.displayoptions import DisplayGroup, DisplayOptions, DisplayRule
from qt_ui.models import GameModel from qt_ui.models import GameModel
@ -286,9 +287,9 @@ class QLiberationWindow(QMainWindow):
self.subwindow = QLiberationPreferencesWindow() self.subwindow = QLiberationPreferencesWindow()
self.subwindow.show() self.subwindow.show()
def onDebriefing(self, debrief: DebriefingSignal): def onDebriefing(self, debrief: Debriefing):
logging.info("On Debriefing") logging.info("On Debriefing")
self.debriefing = QDebriefingWindow(debrief.debriefing, debrief.gameEvent, debrief.game) self.debriefing = QDebriefingWindow(debrief)
self.debriefing.show() self.debriefing.show()
def closeEvent(self, event: QCloseEvent) -> None: def closeEvent(self, event: QCloseEvent) -> None:

View File

@ -1,3 +1,5 @@
from __future__ import annotations
import json import json
import os import os
@ -37,7 +39,7 @@ class DebriefingFileWrittenSignal(QObject):
self.debriefingReceived.emit(debriefing) self.debriefingReceived.emit(debriefing)
@staticmethod @staticmethod
def get_instance(): def get_instance() -> DebriefingFileWrittenSignal:
return DebriefingFileWrittenSignal.instance return DebriefingFileWrittenSignal.instance
@ -185,7 +187,8 @@ class QWaitingForMissionResultWindow(QDialog):
self.game.finish_event(event=self.gameEvent, debriefing=self.debriefing) self.game.finish_event(event=self.gameEvent, debriefing=self.debriefing)
self.game.pass_turn() 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() self.close()
def debriefing_directory_location(self) -> str: def debriefing_directory_location(self) -> str: