1
0
mirror of https://github.com/TheFunny/ArisuAutoSweeper synced 2025-12-17 00:15:13 +00:00

feat(tc): update storage of tc ticket

This commit is contained in:
YoursFunny 2023-11-20 22:18:57 +08:00
parent e929a1efb1
commit 08959e5f1c
Signed by: YoursFunny
GPG Key ID: 207EDC3CD5B40F9C
2 changed files with 17 additions and 19 deletions

View File

@ -28,6 +28,10 @@ class TCStatus(Enum):
class TacticalChallenge(TacticalChallengeUI): class TacticalChallenge(TacticalChallengeUI):
select_players = (PLAYER_SELECT_FIRST, PLAYER_SELECT_SECOND, PLAYER_SELECT_THIRD) 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): def _player_select(self, select):
if select: if select:
return random.choice(self.select_players) return random.choice(self.select_players)
@ -40,12 +44,10 @@ class TacticalChallenge(TacticalChallengeUI):
if self.get_reward(): if self.get_reward():
return TCStatus.OCR return TCStatus.OCR
case TCStatus.OCR: case TCStatus.OCR:
is_valid, ticket = self.get_ticket() if self.get_ticket():
if not is_valid: if self.current_ticket == 0:
return status return TCStatus.FINISHED
if ticket == 0: return TCStatus.SELECT
return TCStatus.FINISHED
return TCStatus.SELECT
case TCStatus.SELECT: case TCStatus.SELECT:
self.appear_then_click(self.select) self.appear_then_click(self.select)
if self.appear(PREPARE_CHALLENGE): if self.appear(PREPARE_CHALLENGE):
@ -70,12 +72,10 @@ class TacticalChallenge(TacticalChallengeUI):
case TCStatus.WIN | TCStatus.LOSE: case TCStatus.WIN | TCStatus.LOSE:
if self.appear_then_click(CHALLENGE_WIN) or self.appear_then_click(CHALLENGE_LOSE): if self.appear_then_click(CHALLENGE_WIN) or self.appear_then_click(CHALLENGE_LOSE):
return status return status
is_valid, ticket = self.get_ticket() if self.get_ticket():
if not is_valid: if self.current_ticket == 0:
return status return TCStatus.FINISHED
if ticket == 0: return TCStatus.FINAL
return TCStatus.FINISHED
return TCStatus.FINAL
case TCStatus.FINAL | TCStatus.FINISHED: case TCStatus.FINAL | TCStatus.FINISHED:
return status return status
case _: case _:

View File

@ -15,15 +15,13 @@ class TacticalChallengeUI(UI):
Page: Page:
in: page_tactical_challenge in: page_tactical_challenge
""" """
ocr = DigitCounter(OCR_TICKET).ocr_single_line(self.device.image) ticket, _, total = DigitCounter(OCR_TICKET).ocr_single_line(self.device.image)
# number of tickets remaining
ticket, _, total = ocr
if total == 0: if total == 0:
logger.warning('Invalid ticket') logger.warning('Invalid ticket')
return False, 5 return False
logger.attr('Ticket', ticket) logger.attr('TacticalChallengeTicket', ticket)
self.config.stored.TacticalChallengeTicket.set(ticket)
return True, ticket return True
def get_reward(self): def get_reward(self):
if self.match_color(GET_REWARD_DAILY): if self.match_color(GET_REWARD_DAILY):