Verified Commit 3c92c26c authored by Jakob Moser's avatar Jakob Moser
Browse files

Set last card placed at independent of error

Otherwise, if the first presented card is an error, the program will crash when ensuring minimum presentation time, because self._last_card_placed_at is not set
parent df2b24eb
Loading
Loading
Loading
Loading
Loading
+6 −5
Changes for poolpay/director/Director.py: 6 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -33,10 +33,10 @@ class Director:
    started: bool = field(default=False, init=False)

    # State (internal)
    _last_placed_card: Card | None = field(init=False)
    _last_card_removed_at: float | None = field(init=False)
    _last_card_placed_at: float | None = field(init=False)
    _last_card_presentation_failed: bool = field(init=False, default=False)
    _last_placed_card: Card | None = field(default=None, init=False)
    _last_card_removed_at: float | None = field(default=None, init=False)
    _last_card_placed_at: float | None = field(default=None, init=False)
    _last_card_presentation_failed: bool = field(default=False, init=False)

    _next_scene_on_card_placed: type[Scene] = field(init=False)

@@ -48,6 +48,8 @@ class Director:
        logging.debug("Card placed")
        card = Card.get_only(card_id)

        self._last_card_placed_at = monotonic()

        if not card:
            logging.debug("Card is not in database, presenting failure screen")
            self._last_card_presentation_failed = True
@@ -57,7 +59,6 @@ class Director:
        logging.debug("Card is in database")
        self._last_placed_card = card
        self._last_card_presentation_failed = False
        self._last_card_placed_at = monotonic()

        match self._next_scene_on_card_placed:
            case self.play.Reversal: