diff --git a/src/inventory_wars/gui/app.py b/src/inventory_wars/gui/app.py index 489b1bd..2fd6ec0 100644 --- a/src/inventory_wars/gui/app.py +++ b/src/inventory_wars/gui/app.py @@ -31,9 +31,8 @@ class FirstGuessGui(FirstGuess): def calculate_score(self, item: ItemShare) -> int: result = super().calculate_score(item) - elapsed = self.game.elapsedSeconds if result: - self.game.guessed.emit(item.user.username, elapsed) + self.game.guessed.emit(item.user.username, self.game.elapsedSeconds) self.game.end() return result @@ -46,11 +45,11 @@ class FirstThenHighestGui(FirstThenHighest): def calculate_score(self, item: ItemShare) -> int: previous_max = self.highest.max result = super().calculate_score(item) - elapsed = self.game.elapsedSeconds if result: - self.game.guessed.emit(item.user.username, elapsed) + self.game.reveal() + self.game.guessed.emit(item.user.username, self.game.elapsedSeconds) if previous_max is not self.highest.max: - self.game.highest.emit(item.user.username, elapsed) + self.game.highest.emit(item.user.username, item.count) return result @@ -89,14 +88,18 @@ class GameService(QObject): self.m_game = Game(session, listening_channels=[ChitChatChannelType.ChannelTeam]) self.m_started_at: datetime | None = None - self.m_revealed_at: datetime | None = None + self.m_revealed: bool = False @Slot(int, int) def start(self, item_id: int, mode: int): mode = GameScoring(mode) self.m_game.start(item_id, mode.as_scoring(self)) self.m_started_at = datetime.now() - self.m_revealed_at = None + self.m_revealed = False + self.stateChanged.emit() + + def reveal(self): + self.m_revealed = True self.stateChanged.emit() @Slot() @@ -110,7 +113,7 @@ class GameService(QObject): case GameIdle(): return GameState.Ended case GameOngoing(): - if self.m_revealed_at is None: + if not self.m_revealed: return GameState.Hidden return GameState.Revealed case _: