From 08959e5f1cbdb7c5968f443d3437a0d66eab621c Mon Sep 17 00:00:00 2001 From: YoursFunny Date: Mon, 20 Nov 2023 22:18:57 +0800 Subject: [PATCH] feat(tc): update storage of tc ticket --- .../tactical_challenge/tactical_challenge.py | 24 +++++++++---------- tasks/tactical_challenge/ui.py | 12 ++++------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/tasks/tactical_challenge/tactical_challenge.py b/tasks/tactical_challenge/tactical_challenge.py index 4be5a17..16d4fc2 100644 --- a/tasks/tactical_challenge/tactical_challenge.py +++ b/tasks/tactical_challenge/tactical_challenge.py @@ -28,6 +28,10 @@ class TCStatus(Enum): class TacticalChallenge(TacticalChallengeUI): select_players = (PLAYER_SELECT_FIRST, PLAYER_SELECT_SECOND, PLAYER_SELECT_THIRD) + @property + def current_ticket(self): + return self.config.stored.TacticalChallengeTicket.value + def _player_select(self, select): if select: return random.choice(self.select_players) @@ -40,12 +44,10 @@ class TacticalChallenge(TacticalChallengeUI): if self.get_reward(): return TCStatus.OCR case TCStatus.OCR: - is_valid, ticket = self.get_ticket() - if not is_valid: - return status - if ticket == 0: - return TCStatus.FINISHED - return TCStatus.SELECT + if self.get_ticket(): + if self.current_ticket == 0: + return TCStatus.FINISHED + return TCStatus.SELECT case TCStatus.SELECT: self.appear_then_click(self.select) if self.appear(PREPARE_CHALLENGE): @@ -70,12 +72,10 @@ class TacticalChallenge(TacticalChallengeUI): case TCStatus.WIN | TCStatus.LOSE: if self.appear_then_click(CHALLENGE_WIN) or self.appear_then_click(CHALLENGE_LOSE): return status - is_valid, ticket = self.get_ticket() - if not is_valid: - return status - if ticket == 0: - return TCStatus.FINISHED - return TCStatus.FINAL + if self.get_ticket(): + if self.current_ticket == 0: + return TCStatus.FINISHED + return TCStatus.FINAL case TCStatus.FINAL | TCStatus.FINISHED: return status case _: diff --git a/tasks/tactical_challenge/ui.py b/tasks/tactical_challenge/ui.py index 692fe33..6b7cae1 100644 --- a/tasks/tactical_challenge/ui.py +++ b/tasks/tactical_challenge/ui.py @@ -15,15 +15,13 @@ class TacticalChallengeUI(UI): Page: in: page_tactical_challenge """ - ocr = DigitCounter(OCR_TICKET).ocr_single_line(self.device.image) - # number of tickets remaining - ticket, _, total = ocr + ticket, _, total = DigitCounter(OCR_TICKET).ocr_single_line(self.device.image) if total == 0: logger.warning('Invalid ticket') - return False, 5 - logger.attr('Ticket', ticket) - - return True, ticket + return False + logger.attr('TacticalChallengeTicket', ticket) + self.config.stored.TacticalChallengeTicket.set(ticket) + return True def get_reward(self): if self.match_color(GET_REWARD_DAILY):