feat: tasks
Added module tasks for EN
4
aas.py
@ -46,6 +46,10 @@ class ArisuAutoSweeper(AzurLaneAutoScript):
|
||||
from tasks.tactical_challenge.tactical_challenge import TacticalChallenge
|
||||
TacticalChallenge(config=self.config, device=self.device).run()
|
||||
|
||||
def task(self):
|
||||
from tasks.task.task import Task
|
||||
Task(config=self.config, device=self.device).run()
|
||||
|
||||
def data_update(self):
|
||||
from tasks.item.data_update import DataUpdate
|
||||
DataUpdate(config=self.config, device=self.device).run()
|
||||
|
||||
BIN
assets/en/task/CLAIM.BUTTON.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/en/task/CLAIM.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/en/task/CLAIMED.BUTTON.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
assets/en/task/CLAIMED.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
assets/en/task/CLAIMED_ALL.BUTTON.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/en/task/CLAIMED_ALL.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
assets/en/task/CLAIM_ALL.BUTTON.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/en/task/CLAIM_ALL.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
@ -127,6 +127,14 @@
|
||||
"PlayerSelect": 0
|
||||
}
|
||||
},
|
||||
"Task": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
"NextRun": "2020-01-01 00:00:00",
|
||||
"Command": "Task",
|
||||
"ServerUpdate": "04:00"
|
||||
}
|
||||
},
|
||||
"DataUpdate": {
|
||||
"Scheduler": {
|
||||
"Enable": true,
|
||||
|
||||
@ -523,6 +523,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Task": {
|
||||
"Scheduler": {
|
||||
"Enable": {
|
||||
"type": "checkbox",
|
||||
"value": false,
|
||||
"option": [
|
||||
true,
|
||||
false
|
||||
]
|
||||
},
|
||||
"NextRun": {
|
||||
"type": "datetime",
|
||||
"value": "2020-01-01 00:00:00",
|
||||
"validate": "datetime"
|
||||
},
|
||||
"Command": {
|
||||
"type": "input",
|
||||
"value": "Task",
|
||||
"display": "hide"
|
||||
},
|
||||
"ServerUpdate": {
|
||||
"type": "input",
|
||||
"value": "04:00",
|
||||
"display": "hide"
|
||||
}
|
||||
}
|
||||
},
|
||||
"DataUpdate": {
|
||||
"Scheduler": {
|
||||
"Enable": {
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
"Bounty",
|
||||
"Scrimmage",
|
||||
"TacticalChallenge",
|
||||
"Task",
|
||||
"DataUpdate"
|
||||
]
|
||||
}
|
||||
|
||||
@ -45,6 +45,8 @@ Daily:
|
||||
TacticalChallenge:
|
||||
- Scheduler
|
||||
- TacticalChallenge
|
||||
Task:
|
||||
- Scheduler
|
||||
DataUpdate:
|
||||
- Scheduler
|
||||
- ItemStorage
|
||||
@ -9,7 +9,7 @@ class ManualConfig:
|
||||
SCHEDULER_PRIORITY = """
|
||||
Restart
|
||||
> Cafe > Circle > Mail > DataUpdate > Bounty
|
||||
> Scrimmage > TacticalChallenge
|
||||
> Scrimmage > TacticalChallenge > Task
|
||||
"""
|
||||
|
||||
"""
|
||||
|
||||
@ -42,6 +42,10 @@
|
||||
"name": "Tactical Challenge",
|
||||
"help": ""
|
||||
},
|
||||
"Task": {
|
||||
"name": "Tasks",
|
||||
"help": ""
|
||||
},
|
||||
"DataUpdate": {
|
||||
"name": "Dashboard Upd",
|
||||
"help": ""
|
||||
|
||||
@ -42,6 +42,10 @@
|
||||
"name": "战术对抗赛",
|
||||
"help": "战术大赛 / 竞技场"
|
||||
},
|
||||
"Task": {
|
||||
"name": "Task.Task.name",
|
||||
"help": "Task.Task.help"
|
||||
},
|
||||
"DataUpdate": {
|
||||
"name": "仪表盘更新",
|
||||
"help": ""
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
from module.config.stored.classes import (
|
||||
StoredAP,
|
||||
StoredBase,
|
||||
StoredBountyTicket,
|
||||
StoredCounter,
|
||||
StoredExpiredAt0400,
|
||||
StoredExpiredAtMonday0400,
|
||||
StoredInt,
|
||||
StoredScrimmageTicket,
|
||||
StoredTacticalChallengeTicket,
|
||||
|
||||
49
tasks/task/assets/assets_task.py
Normal file
@ -0,0 +1,49 @@
|
||||
from module.base.button import Button, ButtonWrapper
|
||||
|
||||
# This file was auto-generated, do not modify it manually. To generate:
|
||||
# ``` python -m dev_tools.button_extract ```
|
||||
|
||||
CLAIM = ButtonWrapper(
|
||||
name='CLAIM',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/task/CLAIM.png',
|
||||
area=(941, 656, 1009, 684),
|
||||
search=(921, 636, 1029, 704),
|
||||
color=(213, 190, 58),
|
||||
button=(935, 639, 1015, 698),
|
||||
),
|
||||
)
|
||||
CLAIMED = ButtonWrapper(
|
||||
name='CLAIMED',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/task/CLAIMED.png',
|
||||
area=(941, 653, 1007, 682),
|
||||
search=(921, 633, 1027, 702),
|
||||
color=(205, 205, 204),
|
||||
button=(936, 643, 1012, 698),
|
||||
),
|
||||
)
|
||||
CLAIMED_ALL = ButtonWrapper(
|
||||
name='CLAIMED_ALL',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/task/CLAIMED_ALL.png',
|
||||
area=(1088, 650, 1215, 687),
|
||||
search=(1068, 630, 1235, 707),
|
||||
color=(181, 182, 185),
|
||||
button=(1052, 644, 1250, 700),
|
||||
),
|
||||
)
|
||||
CLAIM_ALL = ButtonWrapper(
|
||||
name='CLAIM_ALL',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/task/CLAIM_ALL.png',
|
||||
area=(1086, 652, 1216, 685),
|
||||
search=(1066, 632, 1236, 705),
|
||||
color=(215, 198, 64),
|
||||
button=(1054, 642, 1243, 700),
|
||||
),
|
||||
)
|
||||
56
tasks/task/task.py
Normal file
@ -0,0 +1,56 @@
|
||||
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)
|
||||