1
0
mirror of https://github.com/TheFunny/ArisuAutoSweeper synced 2025-12-16 15:35:12 +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):
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 _:

View File

@ -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):