mirror of
https://github.com/TheFunny/ArisuAutoSweeper
synced 2025-12-16 22:05:12 +00:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
from enum import Enum
|
|
|
|
from module.base.timer import Timer
|
|
from module.logger import logger
|
|
from tasks.base.page import page_task
|
|
from tasks.base.ui import UI
|
|
from tasks.task.assets.assets_task import *
|
|
|
|
|
|
class TaskStatus(Enum):
|
|
"""
|
|
Task status
|
|
"""
|
|
CLAIM_ALL = 0
|
|
CLAIM = 1
|
|
FINISHED = -1
|
|
|
|
class Task(UI):
|
|
def _handle_task(self, status):
|
|
match status:
|
|
case TaskStatus.CLAIM_ALL:
|
|
if self.match_color(CLAIM_ALL):
|
|
self.device.click(CLAIM_ALL)
|
|
logger.info("Click Claim All")
|
|
else:
|
|
return TaskStatus.CLAIM
|
|
case TaskStatus.CLAIM:
|
|
if self.match_color(CLAIM):
|
|
self.device.click(CLAIM)
|
|
logger.info("Click Claim")
|
|
else:
|
|
return TaskStatus.FINISHED
|
|
case _:
|
|
logger.warning(f"Invalid status: {status}")
|
|
return status
|
|
|
|
def run(self):
|
|
self.ui_ensure(page_task)
|
|
|
|
status = TaskStatus.CLAIM_ALL
|
|
action_timer = Timer(0.5)
|
|
|
|
while 1:
|
|
self.device.screenshot()
|
|
|
|
if self.ui_additional():
|
|
continue
|
|
|
|
if action_timer.reached_and_reset():
|
|
logger.attr('Status', status)
|
|
status = self._handle_task(status)
|
|
|
|
if status is TaskStatus.FINISHED:
|
|
break
|
|
|
|
self.config.task_delay(server_update=True)
|