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:
parent
e929a1efb1
commit
08959e5f1c
@ -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 _:
|
||||||
|
|||||||
@ -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):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user