feat: auto-mission
4
aas.py
@ -66,6 +66,10 @@ class ArisuAutoSweeper(AzurLaneAutoScript):
|
||||
from tasks.schedule.schedule import Schedule
|
||||
Schedule(config=self.config, device=self.device).run()
|
||||
|
||||
def auto_mission(self):
|
||||
from tasks.auto_mission.auto_mission import AutoMission
|
||||
AutoMission(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/auto_mission/ACCELERATE.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
assets/en/auto_mission/AUTO.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/en/auto_mission/AUTO_END_OFF.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/en/auto_mission/AUTO_END_ON.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/en/auto_mission/BATTLE_COMPLETE.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/en/auto_mission/BEGIN_MISSION.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/en/auto_mission/CHEST.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/en/auto_mission/END_PHASE.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/en/auto_mission/END_PHASE_POPUP.BUTTON.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/en/auto_mission/END_PHASE_POPUP.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/en/auto_mission/ENTER_SUB.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/en/auto_mission/MISSION_COMPLETE.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
assets/en/auto_mission/MISSION_INFO.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
assets/en/auto_mission/MISSION_INFO_POPUP.BUTTON.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/en/auto_mission/MISSION_INFO_POPUP.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/en/auto_mission/MOBILIZE.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/en/auto_mission/MOVE_UNIT.BUTTON.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/en/auto_mission/MOVE_UNIT.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
assets/en/auto_mission/OCR_AREA.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/en/auto_mission/OCR_UNIT.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
assets/en/auto_mission/ONE_STAR.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/en/auto_mission/RANK.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/en/auto_mission/REWARD_ACQUIRED.BUTTON.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/en/auto_mission/REWARD_ACQUIRED.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/en/auto_mission/SKIP_BATTLE_OFF.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/en/auto_mission/SKIP_BATTLE_ON.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/en/auto_mission/THREE_STARS.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/en/auto_mission/UNIT1_OFF.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/en/auto_mission/UNIT1_ON.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/en/auto_mission/UNIT2_OFF.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/en/auto_mission/UNIT2_ON.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/en/auto_mission/UNIT3_OFF.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/en/auto_mission/UNIT3_ON.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/en/auto_mission/UNIT4_OFF.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
assets/en/auto_mission/UNIT4_ON.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/zht/auto_mission/ACCELERATE.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
assets/zht/auto_mission/AUTO.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/zht/auto_mission/AUTO_END_OFF.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/zht/auto_mission/AUTO_END_ON.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/zht/auto_mission/BATTLE_COMPLETE.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
assets/zht/auto_mission/BEGIN_MISSION.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/zht/auto_mission/CHEST.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/zht/auto_mission/END_PHASE.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/zht/auto_mission/END_PHASE_POPUP.BUTTON.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/zht/auto_mission/END_PHASE_POPUP.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
assets/zht/auto_mission/ENTER_SUB.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
assets/zht/auto_mission/MISSION_COMPLETE.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
assets/zht/auto_mission/MISSION_INFO.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
assets/zht/auto_mission/MISSION_INFO_POPUP.BUTTON.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/zht/auto_mission/MISSION_INFO_POPUP.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
assets/zht/auto_mission/MOBILIZE.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
assets/zht/auto_mission/MOVE_UNIT.BUTTON.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/zht/auto_mission/MOVE_UNIT.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/zht/auto_mission/OCR_AREA.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
assets/zht/auto_mission/OCR_UNIT.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/zht/auto_mission/ONE_STAR.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/zht/auto_mission/RANK.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/zht/auto_mission/REWARD_ACQUIRED.BUTTON.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/zht/auto_mission/REWARD_ACQUIRED.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
assets/zht/auto_mission/SKIP_BATTLE_OFF.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
assets/zht/auto_mission/SKIP_BATTLE_ON.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
assets/zht/auto_mission/THREE_STARS.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/zht/auto_mission/UNIT1_OFF.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
assets/zht/auto_mission/UNIT1_ON.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/zht/auto_mission/UNIT2_OFF.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
assets/zht/auto_mission/UNIT2_ON.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
assets/zht/auto_mission/UNIT3_OFF.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/zht/auto_mission/UNIT3_ON.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/zht/auto_mission/UNIT4_OFF.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
assets/zht/auto_mission/UNIT4_ON.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
@ -49,6 +49,35 @@
|
||||
"TacticalChallengeTicket": {}
|
||||
}
|
||||
},
|
||||
"Auto_Mission": {
|
||||
"Scheduler": {
|
||||
"Enable": false,
|
||||
"NextRun": "2020-01-01 00:00:00",
|
||||
"Command": "Auto_Mission",
|
||||
"ServerUpdate": "04:00"
|
||||
},
|
||||
"Formation": {
|
||||
"burst1": 1,
|
||||
"burst2": 1,
|
||||
"pierce1": 1,
|
||||
"pierce2": 1,
|
||||
"mystic1": 1,
|
||||
"mystic2": 1
|
||||
},
|
||||
"ManualBoss": {
|
||||
"Enable": false
|
||||
},
|
||||
"Normal": {
|
||||
"Enable": false,
|
||||
"Area": 2,
|
||||
"Completion": "clear"
|
||||
},
|
||||
"Hard": {
|
||||
"Enable": false,
|
||||
"Area": 2,
|
||||
"Completion": "clear"
|
||||
}
|
||||
},
|
||||
"Cafe": {
|
||||
"Scheduler": {
|
||||
"Enable": true,
|
||||
|
||||
@ -246,6 +246,138 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Auto_Mission": {
|
||||
"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": "Auto_Mission",
|
||||
"display": "hide"
|
||||
},
|
||||
"ServerUpdate": {
|
||||
"type": "input",
|
||||
"value": "04:00",
|
||||
"display": "hide"
|
||||
}
|
||||
},
|
||||
"Formation": {
|
||||
"burst1": {
|
||||
"type": "select",
|
||||
"value": 1,
|
||||
"option": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
"burst2": {
|
||||
"type": "select",
|
||||
"value": 1,
|
||||
"option": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
"pierce1": {
|
||||
"type": "select",
|
||||
"value": 1,
|
||||
"option": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
"pierce2": {
|
||||
"type": "select",
|
||||
"value": 1,
|
||||
"option": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
"mystic1": {
|
||||
"type": "select",
|
||||
"value": 1,
|
||||
"option": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
},
|
||||
"mystic2": {
|
||||
"type": "select",
|
||||
"value": 1,
|
||||
"option": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
]
|
||||
}
|
||||
},
|
||||
"ManualBoss": {
|
||||
"Enable": {
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
}
|
||||
},
|
||||
"Normal": {
|
||||
"Enable": {
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
},
|
||||
"Area": {
|
||||
"type": "input",
|
||||
"value": 2
|
||||
},
|
||||
"Completion": {
|
||||
"type": "select",
|
||||
"value": "clear",
|
||||
"option": [
|
||||
"clear",
|
||||
"three_stars"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Hard": {
|
||||
"Enable": {
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
},
|
||||
"Area": {
|
||||
"type": "input",
|
||||
"value": 2
|
||||
},
|
||||
"Completion": {
|
||||
"type": "select",
|
||||
"value": "clear",
|
||||
"option": [
|
||||
"clear",
|
||||
"three_stars",
|
||||
"three_stars_chest"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Cafe": {
|
||||
"Scheduler": {
|
||||
"Enable": {
|
||||
|
||||
@ -242,6 +242,43 @@ TacticalChallengeShop:
|
||||
"14": false
|
||||
"15": false
|
||||
|
||||
Formation:
|
||||
burst1:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4 ]
|
||||
burst2:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4 ]
|
||||
pierce1:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4 ]
|
||||
pierce2:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4 ]
|
||||
mystic1:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4 ]
|
||||
mystic2:
|
||||
value: 1
|
||||
option: [ 1, 2, 3, 4 ]
|
||||
|
||||
ManualBoss:
|
||||
Enable: false
|
||||
|
||||
Normal:
|
||||
Enable: false
|
||||
Area: 2
|
||||
Completion:
|
||||
value: clear
|
||||
option: [ clear, three_stars]
|
||||
|
||||
Hard:
|
||||
Enable: false
|
||||
Area: 2
|
||||
Completion:
|
||||
value: clear
|
||||
option: [ clear, three_stars, three_stars_chest]
|
||||
|
||||
ItemStorage:
|
||||
AP:
|
||||
stored: StoredAP
|
||||
|
||||
@ -8,6 +8,13 @@
|
||||
"DataUpdate"
|
||||
]
|
||||
},
|
||||
"Copilot": {
|
||||
"menu": "collapse",
|
||||
"page": "setting",
|
||||
"tasks": [
|
||||
"Auto_Mission"
|
||||
]
|
||||
},
|
||||
"Daily": {
|
||||
"menu": "collapse",
|
||||
"page": "setting",
|
||||
|
||||
@ -19,6 +19,19 @@ Alas:
|
||||
- Scheduler
|
||||
- ItemStorage
|
||||
|
||||
# ==================== Copilot ====================
|
||||
|
||||
Copilot:
|
||||
menu: 'collapse'
|
||||
page: 'setting'
|
||||
tasks:
|
||||
Auto_Mission:
|
||||
- Scheduler
|
||||
- Formation
|
||||
- ManualBoss
|
||||
- Normal
|
||||
- Hard
|
||||
|
||||
# ==================== Daily ====================
|
||||
|
||||
Daily:
|
||||
|
||||
@ -159,6 +159,27 @@ class GeneratedConfig:
|
||||
TacticalChallengeShop_14 = False
|
||||
TacticalChallengeShop_15 = False
|
||||
|
||||
# Group `Formation`
|
||||
Formation_burst1 = 1 # 1, 2, 3, 4
|
||||
Formation_burst2 = 1 # 1, 2, 3, 4
|
||||
Formation_pierce1 = 1 # 1, 2, 3, 4
|
||||
Formation_pierce2 = 1 # 1, 2, 3, 4
|
||||
Formation_mystic1 = 1 # 1, 2, 3, 4
|
||||
Formation_mystic2 = 1 # 1, 2, 3, 4
|
||||
|
||||
# Group `ManualBoss`
|
||||
ManualBoss_Enable = False
|
||||
|
||||
# Group `Normal`
|
||||
Normal_Enable = False
|
||||
Normal_Area = 2
|
||||
Normal_Completion = 'clear' # clear, three_stars
|
||||
|
||||
# Group `Hard`
|
||||
Hard_Enable = False
|
||||
Hard_Area = 2
|
||||
Hard_Completion = 'clear' # clear, three_stars, three_stars_chest
|
||||
|
||||
# Group `ItemStorage`
|
||||
ItemStorage_AP = {}
|
||||
ItemStorage_Credit = {}
|
||||
|
||||
@ -9,7 +9,7 @@ class ManualConfig:
|
||||
SCHEDULER_PRIORITY = """
|
||||
Restart
|
||||
> Cafe > TacticalChallenge > Circle > Mail
|
||||
> DataUpdate > Bounty > Scrimmage > Schedule > Task > Shop > Mission > Momotalk
|
||||
> DataUpdate > Bounty > Scrimmage > Schedule > Task > Shop > Mission > Momotalk > Auto_Mission
|
||||
"""
|
||||
|
||||
"""
|
||||
|
||||
@ -4,6 +4,10 @@
|
||||
"name": "AAS",
|
||||
"help": ""
|
||||
},
|
||||
"Copilot": {
|
||||
"name": "Copilot",
|
||||
"help": ""
|
||||
},
|
||||
"Daily": {
|
||||
"name": "Daily",
|
||||
"help": ""
|
||||
@ -30,6 +34,10 @@
|
||||
"name": "Dashboard Upd",
|
||||
"help": ""
|
||||
},
|
||||
"Auto_Mission": {
|
||||
"name": "Auto-Mission",
|
||||
"help": ""
|
||||
},
|
||||
"Cafe": {
|
||||
"name": "Cafe",
|
||||
"help": ""
|
||||
@ -816,6 +824,111 @@
|
||||
"help": "x125k Credits - 100 Coins"
|
||||
}
|
||||
},
|
||||
"Formation": {
|
||||
"_info": {
|
||||
"name": "Formation",
|
||||
"help": "Select the unit for each type"
|
||||
},
|
||||
"burst1": {
|
||||
"name": "Explosive 1",
|
||||
"help": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"burst2": {
|
||||
"name": "Explosive 2",
|
||||
"help": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"pierce1": {
|
||||
"name": "Piercing 1",
|
||||
"help": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"pierce2": {
|
||||
"name": "Piercing 2",
|
||||
"help": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"mystic1": {
|
||||
"name": "Mystic 1",
|
||||
"help": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"mystic2": {
|
||||
"name": "Mystic 2",
|
||||
"help": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"ManualBoss": {
|
||||
"_info": {
|
||||
"name": "Manual Boss",
|
||||
"help": "AAS will wait for the user to take over when encountering the boss"
|
||||
},
|
||||
"Enable": {
|
||||
"name": "Enable",
|
||||
"help": ""
|
||||
}
|
||||
},
|
||||
"Normal": {
|
||||
"_info": {
|
||||
"name": "Normal",
|
||||
"help": ""
|
||||
},
|
||||
"Enable": {
|
||||
"name": "Enable",
|
||||
"help": ""
|
||||
},
|
||||
"Area": {
|
||||
"name": "Area",
|
||||
"help": ""
|
||||
},
|
||||
"Completion": {
|
||||
"name": "Completion level",
|
||||
"help": "",
|
||||
"clear": "Clear",
|
||||
"three_stars": "3 Stars"
|
||||
}
|
||||
},
|
||||
"Hard": {
|
||||
"_info": {
|
||||
"name": "Hard",
|
||||
"help": ""
|
||||
},
|
||||
"Enable": {
|
||||
"name": "Enable",
|
||||
"help": ""
|
||||
},
|
||||
"Area": {
|
||||
"name": "Area",
|
||||
"help": ""
|
||||
},
|
||||
"Completion": {
|
||||
"name": "Completion level",
|
||||
"help": "",
|
||||
"clear": "Clear",
|
||||
"three_stars": "3 Stars",
|
||||
"three_stars_chest": "3 Stars + Chest"
|
||||
}
|
||||
},
|
||||
"ItemStorage": {
|
||||
"_info": {
|
||||
"name": "ItemStorage._info.name",
|
||||
|
||||
@ -4,6 +4,10 @@
|
||||
"name": "AAS",
|
||||
"help": ""
|
||||
},
|
||||
"Copilot": {
|
||||
"name": "Menu.Copilot.name",
|
||||
"help": "Menu.Copilot.help"
|
||||
},
|
||||
"Daily": {
|
||||
"name": "每日",
|
||||
"help": ""
|
||||
@ -30,6 +34,10 @@
|
||||
"name": "仪表盘更新",
|
||||
"help": ""
|
||||
},
|
||||
"Auto_Mission": {
|
||||
"name": "Task.Auto_Mission.name",
|
||||
"help": "Task.Auto_Mission.help"
|
||||
},
|
||||
"Cafe": {
|
||||
"name": "咖啡厅",
|
||||
"help": ""
|
||||
@ -816,6 +824,111 @@
|
||||
"help": "x125k 信用点 - 100 战术硬币"
|
||||
}
|
||||
},
|
||||
"Formation": {
|
||||
"_info": {
|
||||
"name": "Formation._info.name",
|
||||
"help": "Formation._info.help"
|
||||
},
|
||||
"burst1": {
|
||||
"name": "Formation.burst1.name",
|
||||
"help": "Formation.burst1.help",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"burst2": {
|
||||
"name": "Formation.burst2.name",
|
||||
"help": "Formation.burst2.help",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"pierce1": {
|
||||
"name": "Formation.pierce1.name",
|
||||
"help": "Formation.pierce1.help",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"pierce2": {
|
||||
"name": "Formation.pierce2.name",
|
||||
"help": "Formation.pierce2.help",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"mystic1": {
|
||||
"name": "Formation.mystic1.name",
|
||||
"help": "Formation.mystic1.help",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
},
|
||||
"mystic2": {
|
||||
"name": "Formation.mystic2.name",
|
||||
"help": "Formation.mystic2.help",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"ManualBoss": {
|
||||
"_info": {
|
||||
"name": "ManualBoss._info.name",
|
||||
"help": "ManualBoss._info.help"
|
||||
},
|
||||
"Enable": {
|
||||
"name": "ManualBoss.Enable.name",
|
||||
"help": "ManualBoss.Enable.help"
|
||||
}
|
||||
},
|
||||
"Normal": {
|
||||
"_info": {
|
||||
"name": "Normal._info.name",
|
||||
"help": "Normal._info.help"
|
||||
},
|
||||
"Enable": {
|
||||
"name": "Normal.Enable.name",
|
||||
"help": "Normal.Enable.help"
|
||||
},
|
||||
"Area": {
|
||||
"name": "Normal.Area.name",
|
||||
"help": "Normal.Area.help"
|
||||
},
|
||||
"Completion": {
|
||||
"name": "Normal.Completion.name",
|
||||
"help": "Normal.Completion.help",
|
||||
"clear": "clear",
|
||||
"three_stars": "three_stars"
|
||||
}
|
||||
},
|
||||
"Hard": {
|
||||
"_info": {
|
||||
"name": "Hard._info.name",
|
||||
"help": "Hard._info.help"
|
||||
},
|
||||
"Enable": {
|
||||
"name": "Hard.Enable.name",
|
||||
"help": "Hard.Enable.help"
|
||||
},
|
||||
"Area": {
|
||||
"name": "Hard.Area.name",
|
||||
"help": "Hard.Area.help"
|
||||
},
|
||||
"Completion": {
|
||||
"name": "Hard.Completion.name",
|
||||
"help": "Hard.Completion.help",
|
||||
"clear": "clear",
|
||||
"three_stars": "three_stars",
|
||||
"three_stars_chest": "three_stars_chest"
|
||||
}
|
||||
},
|
||||
"ItemStorage": {
|
||||
"_info": {
|
||||
"name": "ItemStorage._info.name",
|
||||
|
||||
563
tasks/auto_mission/assets/assets_auto_mission.py
Normal file
@ -0,0 +1,563 @@
|
||||
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 ```
|
||||
|
||||
ACCELERATE = ButtonWrapper(
|
||||
name='ACCELERATE',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/ACCELERATE.png',
|
||||
area=(1170, 604, 1257, 643),
|
||||
search=(1150, 584, 1277, 663),
|
||||
color=(244, 208, 26),
|
||||
button=(1170, 604, 1257, 643),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/ACCELERATE.png',
|
||||
area=(1176, 607, 1248, 641),
|
||||
search=(1156, 587, 1268, 661),
|
||||
color=(239, 200, 12),
|
||||
button=(1176, 607, 1248, 641),
|
||||
),
|
||||
)
|
||||
AUTO = ButtonWrapper(
|
||||
name='AUTO',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/AUTO.png',
|
||||
area=(1164, 655, 1254, 698),
|
||||
search=(1144, 635, 1274, 718),
|
||||
color=(236, 209, 17),
|
||||
button=(1164, 655, 1254, 698),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/AUTO.png',
|
||||
area=(1170, 660, 1252, 693),
|
||||
search=(1150, 640, 1272, 713),
|
||||
color=(227, 196, 14),
|
||||
button=(1170, 660, 1252, 693),
|
||||
),
|
||||
)
|
||||
AUTO_END_OFF = ButtonWrapper(
|
||||
name='AUTO_END_OFF',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/AUTO_END_OFF.png',
|
||||
area=(1028, 580, 1069, 620),
|
||||
search=(1008, 560, 1089, 640),
|
||||
color=(91, 132, 166),
|
||||
button=(1028, 580, 1069, 620),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/AUTO_END_OFF.png',
|
||||
area=(1040, 578, 1076, 621),
|
||||
search=(1020, 558, 1096, 641),
|
||||
color=(93, 134, 167),
|
||||
button=(1040, 578, 1076, 621),
|
||||
),
|
||||
)
|
||||
AUTO_END_ON = ButtonWrapper(
|
||||
name='AUTO_END_ON',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/AUTO_END_ON.png',
|
||||
area=(1028, 579, 1065, 620),
|
||||
search=(1008, 559, 1085, 640),
|
||||
color=(88, 146, 182),
|
||||
button=(1028, 579, 1065, 620),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/AUTO_END_ON.png',
|
||||
area=(1037, 581, 1078, 618),
|
||||
search=(1017, 561, 1098, 638),
|
||||
color=(89, 146, 181),
|
||||
button=(1037, 581, 1078, 618),
|
||||
),
|
||||
)
|
||||
BATTLE_COMPLETE = ButtonWrapper(
|
||||
name='BATTLE_COMPLETE',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/BATTLE_COMPLETE.png',
|
||||
area=(1115, 638, 1228, 694),
|
||||
search=(1095, 618, 1248, 714),
|
||||
color=(104, 199, 235),
|
||||
button=(1115, 638, 1228, 694),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/BATTLE_COMPLETE.png',
|
||||
area=(1117, 638, 1228, 692),
|
||||
search=(1097, 618, 1248, 712),
|
||||
color=(105, 202, 238),
|
||||
button=(1117, 638, 1228, 692),
|
||||
),
|
||||
)
|
||||
BEGIN_MISSION = ButtonWrapper(
|
||||
name='BEGIN_MISSION',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/BEGIN_MISSION.png',
|
||||
area=(1097, 637, 1244, 694),
|
||||
search=(1077, 617, 1264, 714),
|
||||
color=(241, 216, 65),
|
||||
button=(1097, 637, 1244, 694),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/BEGIN_MISSION.png',
|
||||
area=(1093, 642, 1248, 690),
|
||||
search=(1073, 622, 1268, 710),
|
||||
color=(237, 209, 62),
|
||||
button=(1093, 642, 1248, 690),
|
||||
),
|
||||
)
|
||||
CHEST = ButtonWrapper(
|
||||
name='CHEST',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/CHEST.png',
|
||||
area=(150, 539, 206, 578),
|
||||
search=(130, 519, 226, 598),
|
||||
color=(150, 204, 233),
|
||||
button=(150, 539, 206, 578),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/CHEST.png',
|
||||
area=(150, 539, 206, 578),
|
||||
search=(130, 519, 226, 598),
|
||||
color=(150, 204, 233),
|
||||
button=(150, 539, 206, 578),
|
||||
),
|
||||
)
|
||||
END_PHASE = ButtonWrapper(
|
||||
name='END_PHASE',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/END_PHASE.png',
|
||||
area=(1095, 640, 1251, 696),
|
||||
search=(1075, 620, 1271, 716),
|
||||
color=(228, 207, 64),
|
||||
button=(1095, 640, 1251, 696),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/END_PHASE.png',
|
||||
area=(1093, 642, 1246, 691),
|
||||
search=(1073, 622, 1266, 711),
|
||||
color=(219, 198, 62),
|
||||
button=(1093, 642, 1246, 691),
|
||||
),
|
||||
)
|
||||
END_PHASE_POPUP = ButtonWrapper(
|
||||
name='END_PHASE_POPUP',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/END_PHASE_POPUP.png',
|
||||
area=(433, 335, 842, 401),
|
||||
search=(413, 315, 862, 421),
|
||||
color=(222, 223, 223),
|
||||
button=(663, 473, 875, 535),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/END_PHASE_POPUP.png',
|
||||
area=(488, 298, 785, 371),
|
||||
search=(468, 278, 805, 391),
|
||||
color=(199, 200, 200),
|
||||
button=(663, 470, 876, 533),
|
||||
),
|
||||
)
|
||||
ENTER_SUB = ButtonWrapper(
|
||||
name='ENTER_SUB',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/ENTER_SUB.png',
|
||||
area=(541, 494, 737, 528),
|
||||
search=(521, 474, 757, 548),
|
||||
color=(201, 182, 59),
|
||||
button=(541, 494, 737, 528),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/ENTER_SUB.png',
|
||||
area=(553, 490, 712, 538),
|
||||
search=(533, 470, 732, 558),
|
||||
color=(209, 191, 62),
|
||||
button=(553, 490, 712, 538),
|
||||
),
|
||||
)
|
||||
MISSION_COMPLETE = ButtonWrapper(
|
||||
name='MISSION_COMPLETE',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/MISSION_COMPLETE.png',
|
||||
area=(926, 635, 1116, 696),
|
||||
search=(906, 615, 1136, 716),
|
||||
color=(231, 216, 69),
|
||||
button=(926, 635, 1116, 696),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/MISSION_COMPLETE.png',
|
||||
area=(921, 633, 1140, 696),
|
||||
search=(901, 613, 1160, 716),
|
||||
color=(235, 220, 69),
|
||||
button=(921, 633, 1140, 696),
|
||||
),
|
||||
)
|
||||
MISSION_INFO = ButtonWrapper(
|
||||
name='MISSION_INFO',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/MISSION_INFO.png',
|
||||
area=(928, 637, 1059, 697),
|
||||
search=(908, 617, 1079, 717),
|
||||
color=(106, 202, 238),
|
||||
button=(928, 637, 1059, 697),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/MISSION_INFO.png',
|
||||
area=(926, 642, 1057, 690),
|
||||
search=(906, 622, 1077, 710),
|
||||
color=(101, 191, 226),
|
||||
button=(926, 642, 1057, 690),
|
||||
),
|
||||
)
|
||||
MISSION_INFO_POPUP = ButtonWrapper(
|
||||
name='MISSION_INFO_POPUP',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/MISSION_INFO_POPUP.png',
|
||||
area=(545, 78, 739, 115),
|
||||
search=(525, 58, 759, 135),
|
||||
color=(193, 201, 209),
|
||||
button=(767, 560, 970, 626),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/MISSION_INFO_POPUP.png',
|
||||
area=(575, 82, 704, 115),
|
||||
search=(555, 62, 724, 135),
|
||||
color=(164, 175, 187),
|
||||
button=(770, 562, 963, 622),
|
||||
),
|
||||
)
|
||||
MOBILIZE = ButtonWrapper(
|
||||
name='MOBILIZE',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/MOBILIZE.png',
|
||||
area=(1076, 618, 1239, 697),
|
||||
search=(1056, 598, 1259, 717),
|
||||
color=(226, 208, 67),
|
||||
button=(1076, 618, 1239, 697),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/MOBILIZE.png',
|
||||
area=(1080, 622, 1236, 696),
|
||||
search=(1060, 602, 1256, 716),
|
||||
color=(231, 215, 69),
|
||||
button=(1080, 622, 1236, 696),
|
||||
),
|
||||
)
|
||||
MOVE_UNIT = ButtonWrapper(
|
||||
name='MOVE_UNIT',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/MOVE_UNIT.png',
|
||||
area=(534, 304, 739, 363),
|
||||
search=(514, 284, 759, 383),
|
||||
color=(225, 225, 225),
|
||||
button=(657, 471, 877, 535),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/MOVE_UNIT.png',
|
||||
area=(529, 298, 763, 363),
|
||||
search=(509, 278, 783, 383),
|
||||
color=(215, 216, 216),
|
||||
button=(663, 473, 875, 529),
|
||||
),
|
||||
)
|
||||
OCR_AREA = ButtonWrapper(
|
||||
name='OCR_AREA',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/OCR_AREA.png',
|
||||
area=(119, 194, 166, 243),
|
||||
search=(99, 174, 186, 263),
|
||||
color=(228, 230, 232),
|
||||
button=(119, 194, 166, 243),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/OCR_AREA.png',
|
||||
area=(123, 192, 183, 240),
|
||||
search=(103, 172, 203, 260),
|
||||
color=(223, 225, 228),
|
||||
button=(123, 192, 183, 240),
|
||||
),
|
||||
)
|
||||
OCR_UNIT = ButtonWrapper(
|
||||
name='OCR_UNIT',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/OCR_UNIT.png',
|
||||
area=(114, 535, 141, 576),
|
||||
search=(94, 515, 161, 596),
|
||||
color=(238, 238, 240),
|
||||
button=(114, 535, 141, 576),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/OCR_UNIT.png',
|
||||
area=(55, 540, 92, 573),
|
||||
search=(35, 520, 112, 593),
|
||||
color=(234, 235, 237),
|
||||
button=(55, 540, 92, 573),
|
||||
),
|
||||
)
|
||||
ONE_STAR = ButtonWrapper(
|
||||
name='ONE_STAR',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/ONE_STAR.png',
|
||||
area=(148, 349, 183, 390),
|
||||
search=(128, 329, 203, 410),
|
||||
color=(240, 235, 215),
|
||||
button=(148, 349, 183, 390),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/ONE_STAR.png',
|
||||
area=(148, 349, 183, 390),
|
||||
search=(128, 329, 203, 410),
|
||||
color=(240, 235, 215),
|
||||
button=(148, 349, 183, 390),
|
||||
),
|
||||
)
|
||||
RANK = ButtonWrapper(
|
||||
name='RANK',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/RANK.png',
|
||||
area=(540, 625, 740, 690),
|
||||
search=(520, 605, 760, 710),
|
||||
color=(232, 214, 68),
|
||||
button=(540, 625, 740, 690),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/RANK.png',
|
||||
area=(540, 628, 738, 689),
|
||||
search=(520, 608, 758, 709),
|
||||
color=(233, 216, 69),
|
||||
button=(540, 628, 738, 689),
|
||||
),
|
||||
)
|
||||
REWARD_ACQUIRED = ButtonWrapper(
|
||||
name='REWARD_ACQUIRED',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/REWARD_ACQUIRED.png',
|
||||
area=(529, 133, 562, 183),
|
||||
search=(509, 113, 582, 203),
|
||||
color=(170, 176, 96),
|
||||
button=(682, 628, 871, 693),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/REWARD_ACQUIRED.png',
|
||||
area=(593, 132, 628, 155),
|
||||
search=(573, 112, 648, 175),
|
||||
color=(230, 228, 92),
|
||||
button=(673, 627, 872, 687),
|
||||
),
|
||||
)
|
||||
SKIP_BATTLE_OFF = ButtonWrapper(
|
||||
name='SKIP_BATTLE_OFF',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/SKIP_BATTLE_OFF.png',
|
||||
area=(1076, 525, 1120, 563),
|
||||
search=(1056, 505, 1140, 583),
|
||||
color=(90, 131, 165),
|
||||
button=(1076, 525, 1120, 563),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/SKIP_BATTLE_OFF.png',
|
||||
area=(1097, 523, 1135, 563),
|
||||
search=(1077, 503, 1155, 583),
|
||||
color=(94, 136, 170),
|
||||
button=(1097, 523, 1135, 563),
|
||||
),
|
||||
)
|
||||
SKIP_BATTLE_ON = ButtonWrapper(
|
||||
name='SKIP_BATTLE_ON',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/SKIP_BATTLE_ON.png',
|
||||
area=(1078, 524, 1115, 566),
|
||||
search=(1058, 504, 1135, 586),
|
||||
color=(87, 145, 181),
|
||||
button=(1078, 524, 1115, 566),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/SKIP_BATTLE_ON.png',
|
||||
area=(1100, 528, 1136, 561),
|
||||
search=(1080, 508, 1156, 581),
|
||||
color=(96, 161, 196),
|
||||
button=(1100, 528, 1136, 561),
|
||||
),
|
||||
)
|
||||
THREE_STARS = ButtonWrapper(
|
||||
name='THREE_STARS',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/THREE_STARS.png',
|
||||
area=(158, 357, 177, 441),
|
||||
search=(138, 337, 197, 461),
|
||||
color=(234, 222, 173),
|
||||
button=(158, 357, 177, 441),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/THREE_STARS.png',
|
||||
area=(158, 357, 177, 441),
|
||||
search=(138, 337, 197, 461),
|
||||
color=(234, 222, 173),
|
||||
button=(158, 357, 177, 441),
|
||||
),
|
||||
)
|
||||
UNIT1_OFF = ButtonWrapper(
|
||||
name='UNIT1_OFF',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT1_OFF.png',
|
||||
area=(2, 157, 152, 219),
|
||||
search=(0, 137, 172, 239),
|
||||
color=(248, 249, 249),
|
||||
button=(2, 157, 152, 219),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT1_OFF.png',
|
||||
area=(1, 160, 147, 219),
|
||||
search=(0, 140, 167, 239),
|
||||
color=(240, 242, 243),
|
||||
button=(1, 160, 147, 219),
|
||||
),
|
||||
)
|
||||
UNIT1_ON = ButtonWrapper(
|
||||
name='UNIT1_ON',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT1_ON.png',
|
||||
area=(2, 157, 149, 217),
|
||||
search=(0, 137, 169, 237),
|
||||
color=(53, 75, 97),
|
||||
button=(2, 157, 149, 217),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT1_ON.png',
|
||||
area=(0, 159, 142, 214),
|
||||
search=(0, 139, 162, 234),
|
||||
color=(62, 81, 94),
|
||||
button=(0, 159, 142, 214),
|
||||
),
|
||||
)
|
||||
UNIT2_OFF = ButtonWrapper(
|
||||
name='UNIT2_OFF',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT2_OFF.png',
|
||||
area=(1, 235, 152, 295),
|
||||
search=(0, 215, 172, 315),
|
||||
color=(247, 248, 249),
|
||||
button=(1, 235, 152, 295),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT2_OFF.png',
|
||||
area=(4, 240, 151, 297),
|
||||
search=(0, 220, 171, 317),
|
||||
color=(240, 241, 243),
|
||||
button=(4, 240, 151, 297),
|
||||
),
|
||||
)
|
||||
UNIT2_ON = ButtonWrapper(
|
||||
name='UNIT2_ON',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT2_ON.png',
|
||||
area=(3, 237, 151, 297),
|
||||
search=(0, 217, 171, 317),
|
||||
color=(54, 76, 97),
|
||||
button=(3, 237, 151, 297),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT2_ON.png',
|
||||
area=(4, 240, 154, 291),
|
||||
search=(0, 220, 174, 311),
|
||||
color=(63, 82, 94),
|
||||
button=(4, 240, 154, 291),
|
||||
),
|
||||
)
|
||||
UNIT3_OFF = ButtonWrapper(
|
||||
name='UNIT3_OFF',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT3_OFF.png',
|
||||
area=(0, 317, 153, 373),
|
||||
search=(0, 297, 173, 393),
|
||||
color=(247, 248, 248),
|
||||
button=(0, 317, 153, 373),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT3_OFF.png',
|
||||
area=(5, 320, 149, 374),
|
||||
search=(0, 300, 169, 394),
|
||||
color=(238, 240, 242),
|
||||
button=(5, 320, 149, 374),
|
||||
),
|
||||
)
|
||||
UNIT3_ON = ButtonWrapper(
|
||||
name='UNIT3_ON',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT3_ON.png',
|
||||
area=(4, 313, 149, 375),
|
||||
search=(0, 293, 169, 395),
|
||||
color=(54, 76, 97),
|
||||
button=(4, 313, 149, 375),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT3_ON.png',
|
||||
area=(0, 318, 151, 371),
|
||||
search=(0, 298, 171, 391),
|
||||
color=(63, 82, 94),
|
||||
button=(0, 318, 151, 371),
|
||||
),
|
||||
)
|
||||
UNIT4_OFF = ButtonWrapper(
|
||||
name='UNIT4_OFF',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT4_OFF.png',
|
||||
area=(1, 395, 154, 451),
|
||||
search=(0, 375, 174, 471),
|
||||
color=(247, 247, 248),
|
||||
button=(1, 395, 154, 451),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT4_OFF.png',
|
||||
area=(0, 396, 145, 449),
|
||||
search=(0, 376, 165, 469),
|
||||
color=(238, 240, 241),
|
||||
button=(0, 396, 145, 449),
|
||||
),
|
||||
)
|
||||
UNIT4_ON = ButtonWrapper(
|
||||
name='UNIT4_ON',
|
||||
jp=None,
|
||||
en=Button(
|
||||
file='./assets/en/auto_mission/UNIT4_ON.png',
|
||||
area=(3, 395, 147, 454),
|
||||
search=(0, 375, 167, 474),
|
||||
color=(54, 76, 96),
|
||||
button=(3, 395, 147, 454),
|
||||
),
|
||||
zht=Button(
|
||||
file='./assets/zht/auto_mission/UNIT4_ON.png',
|
||||
area=(3, 396, 153, 451),
|
||||
search=(0, 376, 173, 471),
|
||||
color=(62, 81, 94),
|
||||
button=(3, 396, 153, 451),
|
||||
),
|
||||
)
|
||||
181
tasks/auto_mission/auto_mission.py
Normal file
@ -0,0 +1,181 @@
|
||||
from tasks.mission.mission import Mission
|
||||
from tasks.mission.ui import SWITCH_NORMAL, SWITCH_HARD
|
||||
from tasks.auto_mission.ui import AutoMissionUI
|
||||
from enum import Enum
|
||||
|
||||
from module.base.timer import Timer
|
||||
from module.exception import RequestHumanTakeover
|
||||
from module.logger import logger
|
||||
from tasks.item.data_update import DataUpdate
|
||||
from module.base.decorator import cached_property
|
||||
|
||||
class AutoMissionStatus(Enum):
|
||||
AP = 0 # Calculate AP and decide to terminate Auto-Mission module or not
|
||||
NAVIGATE = 1 # Navigate to the area and select mode
|
||||
ENTER = 2 # Enter the first stage in the stage list
|
||||
CHECK = 3 # Check stages and find a stage that requires to be completed
|
||||
START = 4 # Start the stage
|
||||
FORMATION = 5 # Select units based on the types required by the stage
|
||||
FIGHT = 6 # Fight the stage
|
||||
FINISH = -1 # Indicate termination of Auto-Mission module
|
||||
|
||||
class AutoMission(AutoMissionUI, Mission):
|
||||
@property
|
||||
def mission_info(self) -> list:
|
||||
valid = True
|
||||
mode = ("N", "H")
|
||||
enable = (self.config.Normal_Enable, self.config.Hard_Enable)
|
||||
area = (self.config.Normal_Area, self.config.Hard_Area)
|
||||
stages_data = [None, None]
|
||||
completion_level = (self.config.Normal_Completion, self.config.Hard_Completion)
|
||||
for index in range(2):
|
||||
if enable[index]:
|
||||
stages_data[index] = self.get_stages_data(mode[index], area[index])
|
||||
valid = valid if self.check_formation(mode[index], area[index], stages_data[index]) else False
|
||||
if valid:
|
||||
info = zip(mode, area, stages_data, completion_level)
|
||||
return list(filter(lambda x: x[2], info))
|
||||
raise RequestHumanTakeover
|
||||
|
||||
def check_formation(self, mode, area, stages_data):
|
||||
mode_name = "Normal" if mode == "N" else "Hard"
|
||||
if stages_data:
|
||||
for stage, info in stages_data.items():
|
||||
if "start" in info:
|
||||
types = info["start"]
|
||||
list_unit = []
|
||||
list_type = []
|
||||
for type in types:
|
||||
list_type.append(type)
|
||||
unit = self.type_to_unit[type]
|
||||
if unit in list_unit:
|
||||
logger.error(f"Mission {mode_name} {area} requires {list_type} but they are both set to unit {unit}")
|
||||
return False
|
||||
list_unit.append(unit)
|
||||
if list_unit and list_unit[0] > unit:
|
||||
logger.error(f"Mission {mode_name} {area} requires {list_type} but they are set to units {list_unit} respectively.\
|
||||
Due to Auto-Mission's implementation, the first unit's index must be smaller than the second unit's index.")
|
||||
return False
|
||||
return True
|
||||
return False
|
||||
|
||||
@cached_property
|
||||
def type_to_unit(self):
|
||||
return {
|
||||
"burst1": self.config.Formation_burst1,
|
||||
"burst2": self.config.Formation_burst2,
|
||||
"pierce1": self.config.Formation_pierce1,
|
||||
"pierce2": self.config.Formation_pierce2,
|
||||
"mystic1": self.config.Formation_mystic1,
|
||||
"mystic2": self.config.Formation_mystic2
|
||||
}
|
||||
|
||||
@property
|
||||
def current_mode(self):
|
||||
return self.task[0][0]
|
||||
|
||||
@property
|
||||
def current_area(self):
|
||||
return self.task[0][1]
|
||||
|
||||
@property
|
||||
def current_stage(self):
|
||||
return self._stage
|
||||
|
||||
@current_stage.setter
|
||||
def current_stage(self, value):
|
||||
self._stage = value
|
||||
|
||||
@property
|
||||
def current_stages_data(self):
|
||||
return self.task[0][2]
|
||||
|
||||
@property
|
||||
def current_completion_level(self):
|
||||
return self.task[0][3]
|
||||
|
||||
@property
|
||||
def current_count(self):
|
||||
return 1
|
||||
|
||||
def update_task(self):
|
||||
self.task.pop(0)
|
||||
|
||||
def handle_auto_mission(self, status):
|
||||
match status:
|
||||
case AutoMissionStatus.AP:
|
||||
if self.task:
|
||||
self.realistic_count = self.get_realistic_count()
|
||||
if self.realistic_count != 0:
|
||||
return AutoMissionStatus.NAVIGATE
|
||||
return AutoMissionStatus.FINISH
|
||||
|
||||
case AutoMissionStatus.NAVIGATE:
|
||||
switch = SWITCH_NORMAL if self.current_mode == "N" else SWITCH_HARD
|
||||
self.navigate(self.previous_mode, self.current_mode)
|
||||
if self.select_area(self.current_area) and self.select_mode(switch):
|
||||
return AutoMissionStatus.ENTER
|
||||
raise RequestHumanTakeover
|
||||
|
||||
case AutoMissionStatus.ENTER:
|
||||
if self.wait_mission_info(self.current_mode, open_task=True):
|
||||
return AutoMissionStatus.CHECK
|
||||
raise RequestHumanTakeover
|
||||
|
||||
case AutoMissionStatus.CHECK:
|
||||
self.current_stage = self.check_stages(*self.task[0])
|
||||
if self.current_stage:
|
||||
return AutoMissionStatus.START
|
||||
self.update_task()
|
||||
return AutoMissionStatus.AP
|
||||
|
||||
case AutoMissionStatus.START:
|
||||
self.start_stage(self.current_stage)
|
||||
return AutoMissionStatus.FORMATION
|
||||
|
||||
case AutoMissionStatus.FORMATION:
|
||||
self.formation(self.current_stage, self.type_to_unit)
|
||||
return AutoMissionStatus.FIGHT
|
||||
|
||||
case AutoMissionStatus.FIGHT:
|
||||
self.fight(self.current_stage, manual_boss=self.config.ManualBoss_Enable)
|
||||
# Return to the previous region to prevent map unlock card recognition
|
||||
self.select_area(self.current_area - 1)
|
||||
self.update_ap()
|
||||
self.previous_mode = self.current_mode
|
||||
return AutoMissionStatus.AP
|
||||
|
||||
case AutoMissionStatus.FINISH:
|
||||
return status
|
||||
|
||||
case _:
|
||||
logger.warning(f'Invalid status: {status}')
|
||||
|
||||
return status
|
||||
|
||||
def run(self):
|
||||
self.previous_mode = None
|
||||
self._stage = None
|
||||
self.task = self.valid_task
|
||||
if self.task:
|
||||
action_timer = Timer(0.5, 1)
|
||||
status = AutoMissionStatus.AP
|
||||
|
||||
"""Update the dashboard to accurately calculate AP"""
|
||||
DataUpdate(config=self.config, device=self.device).run()
|
||||
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
|
||||
if self.ui_additional():
|
||||
continue
|
||||
|
||||
if action_timer.reached_and_reset():
|
||||
logger.attr('Status', status)
|
||||
status = self.handle_auto_mission(status)
|
||||
|
||||
if status == AutoMissionStatus.FINISH:
|
||||
break
|
||||
|
||||
self.config.task_delay(server_update=True)
|
||||
|
||||
280
tasks/auto_mission/copilot.py
Normal file
@ -0,0 +1,280 @@
|
||||
from module.base.timer import Timer
|
||||
from module.logger import logger
|
||||
from module.ui.switch import Switch
|
||||
from module.ocr.ocr import Digit
|
||||
from tasks.base.ui import UI
|
||||
from tasks.base.assets.assets_base_page import MISSION_CHECK
|
||||
from tasks.auto_mission.assets.assets_auto_mission import *
|
||||
from tasks.auto_mission.stage import StageState
|
||||
|
||||
SWITCH_UNIT1 = Switch('Unit1_Switch')
|
||||
SWITCH_UNIT1.add_state('on', UNIT1_ON)
|
||||
SWITCH_UNIT1.add_state('off', UNIT1_OFF)
|
||||
|
||||
SWITCH_UNIT2 = Switch('Unit2_Switch')
|
||||
SWITCH_UNIT2.add_state('on', UNIT2_ON)
|
||||
SWITCH_UNIT2.add_state('off', UNIT2_OFF)
|
||||
|
||||
SWITCH_UNIT3 = Switch('Unit3_Switch')
|
||||
SWITCH_UNIT3.add_state('on', UNIT3_ON)
|
||||
SWITCH_UNIT3.add_state('off', UNIT3_OFF)
|
||||
|
||||
SWITCH_UNIT4 = Switch('Unit4_Switch')
|
||||
SWITCH_UNIT4.add_state('on', UNIT4_ON)
|
||||
SWITCH_UNIT4.add_state('off', UNIT4_OFF)
|
||||
|
||||
UNIT_SWITCHES = [SWITCH_UNIT1, SWITCH_UNIT2, SWITCH_UNIT3, SWITCH_UNIT4]
|
||||
|
||||
SWITCH_AUTO_END = Switch('Auto_End_Switch')
|
||||
SWITCH_AUTO_END.add_state('on', AUTO_END_ON)
|
||||
SWITCH_AUTO_END.add_state('off', AUTO_END_OFF)
|
||||
|
||||
SWITCH_SKIP_BATTLE = Switch('Skip_Battle_Switch')
|
||||
SWITCH_SKIP_BATTLE.add_state('on', SKIP_BATTLE_ON)
|
||||
SWITCH_SKIP_BATTLE.add_state('off', SKIP_BATTLE_OFF)
|
||||
|
||||
class Copilot(UI):
|
||||
"""A class dedicated to automate fights"""
|
||||
def __init__(self, config, device):
|
||||
super().__init__(config, device)
|
||||
self.ocr_unit = Digit(OCR_UNIT)
|
||||
|
||||
"""Utility methods"""
|
||||
def sleep(self, num):
|
||||
timer = Timer(num).start()
|
||||
while not timer.reached():
|
||||
pass
|
||||
|
||||
def click(self, x, y, interval=1):
|
||||
self.device.click_methods.get(self.config.Emulator_ControlMethod, self.device.click_adb)(x, y)
|
||||
if interval:
|
||||
# sleep because clicks can be too fast when executing actions
|
||||
self.sleep(interval)
|
||||
|
||||
def select_then_check(self, dest_enter: ButtonWrapper, dest_check: ButtonWrapper):
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
self.appear_then_click(dest_enter, interval=1)
|
||||
if self.appear(dest_check):
|
||||
return True
|
||||
self.sleep(2)
|
||||
|
||||
def set_switch(self, switch):
|
||||
"""
|
||||
Set skip switch to on
|
||||
Returns:
|
||||
True if switch is set, False if switch not found
|
||||
"""
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
if not switch.appear(main=self):
|
||||
logger.info(f'{switch.name} not found')
|
||||
continue
|
||||
switch.set('on', main=self)
|
||||
return True
|
||||
|
||||
"""Formation methods"""
|
||||
def choose_unit(self, type, type_to_unit):
|
||||
unit_index = type_to_unit[type] - 1
|
||||
unit_switch = UNIT_SWITCHES[unit_index]
|
||||
self.set_switch(unit_switch)
|
||||
|
||||
def goto_formation_page(self, start_coords):
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
if self.appear(MOBILIZE):
|
||||
return True
|
||||
self.click(*start_coords, interval=2)
|
||||
|
||||
def formation(self, stage, type_to_unit):
|
||||
if stage.state == StageState.SUB:
|
||||
# Select a unit to start the battle
|
||||
self.choose_unit(stage.formation_info, type_to_unit)
|
||||
self.click_with_interval(MOBILIZE, interval=1)
|
||||
else:
|
||||
for type, start_coords in stage.formation_start_info:
|
||||
self.goto_formation_page(start_coords)
|
||||
self.choose_unit(type, type_to_unit)
|
||||
self.select_then_check(MOBILIZE, MISSION_INFO)
|
||||
|
||||
"""Fight methods"""
|
||||
def begin_mission(self):
|
||||
# start the fight after formation. Not needed for SUB mission.
|
||||
self.select_then_check(BEGIN_MISSION, END_PHASE)
|
||||
|
||||
def check_skip_auto_over(self):
|
||||
# set skip battle and auto end when entering the map
|
||||
self.set_switch(SWITCH_SKIP_BATTLE)
|
||||
self.set_switch(SWITCH_AUTO_END)
|
||||
|
||||
def get_force(self):
|
||||
# detect the current active unit in the map
|
||||
self.device.screenshot()
|
||||
current_unit = self.ocr_unit.ocr_single_line(self.device.image)
|
||||
if current_unit == 0:
|
||||
return self.get_force()
|
||||
return current_unit
|
||||
|
||||
def wait_formation_change(self, force_index):
|
||||
logger.info("Wait formation change")
|
||||
origin = force_index
|
||||
while force_index == origin:
|
||||
force_index = self.get_force()
|
||||
self.sleep(1)
|
||||
return force_index
|
||||
|
||||
def handle_mission_popup(self, button, skip_first_screenshot=True):
|
||||
while 1:
|
||||
if skip_first_screenshot:
|
||||
skip_first_screenshot = False
|
||||
else:
|
||||
self.device.screenshot()
|
||||
if self.match_color(MISSION_INFO):
|
||||
break
|
||||
if self.appear_then_click(button, interval=2):
|
||||
continue
|
||||
|
||||
def confirm_teleport(self):
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
if self.appear(MOVE_UNIT):
|
||||
self.handle_mission_popup(MOVE_UNIT)
|
||||
break
|
||||
|
||||
def end_turn(self):
|
||||
# Detect and confirm the end of the phase
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
if not self.match_color(END_PHASE):
|
||||
self.handle_mission_popup(END_PHASE_POPUP)
|
||||
break
|
||||
self.appear_then_click(END_PHASE)
|
||||
|
||||
def wait_over(self):
|
||||
#self.sleep(2)
|
||||
self.select_then_check(MISSION_INFO, MISSION_INFO_POPUP)
|
||||
self.handle_mission_popup(MISSION_INFO_POPUP)
|
||||
|
||||
def start_action(self, actions, manual_boss):
|
||||
for i, act in enumerate(actions):
|
||||
if manual_boss and i == len(actions) - 1:
|
||||
logger.warning("Actions completed. Waiting for manual boss...")
|
||||
return
|
||||
desc = "start " + str(i + 1) + " operation : "
|
||||
if 'desc' in act:
|
||||
desc += act['desc']
|
||||
logger.info(desc)
|
||||
force_index = self.get_force()
|
||||
op = act['t']
|
||||
if type(op) is str:
|
||||
op = [op]
|
||||
if 'p' in act:
|
||||
if type(act['p']) is tuple:
|
||||
act['p'] = [act['p']]
|
||||
for j in range(0, len(op)):
|
||||
self.sleep(1)
|
||||
if op[j] == 'click':
|
||||
self.click(act['p'][0][0], act['p'][0][1])
|
||||
act['p'].pop(0)
|
||||
elif op[j] == 'teleport':
|
||||
self.confirm_teleport()
|
||||
elif op[j] == 'exchange':
|
||||
self.click(83, 557)
|
||||
force_index = self.wait_formation_change(force_index)
|
||||
elif op[j] == 'exchange_twice':
|
||||
self.click(83, 557)
|
||||
force_index = self.wait_formation_change(force_index)
|
||||
self.click(83, 557)
|
||||
force_index = self.wait_formation_change(force_index)
|
||||
elif op[j] == 'end-turn':
|
||||
self.end_turn()
|
||||
if i != len(actions) - 1:
|
||||
self.wait_over()
|
||||
elif op[j] == 'click_and_teleport':
|
||||
self.click(act['p'][0][0], act['p'][0][1])
|
||||
act['p'].pop(0)
|
||||
self.confirm_teleport()
|
||||
elif op[j] == 'choose_and_change':
|
||||
self.click(act['p'][0][0], act['p'][0][1])
|
||||
self.click(act['p'][0][0] - 100, act['p'][0][1])
|
||||
act['p'].pop(0)
|
||||
elif op[j] == 'exchange_and_click':
|
||||
self.click(83, 557)
|
||||
force_index = self.wait_formation_change(force_index)
|
||||
#self.sleep(0.5)
|
||||
self.sleep(1)
|
||||
self.click(act['p'][0][0], act['p'][0][1])
|
||||
act['p'].pop(0)
|
||||
elif op[j] == 'exchange_twice_and_click':
|
||||
self.click(83, 557)
|
||||
force_index = self.wait_formation_change(force_index)
|
||||
self.click(83, 557)
|
||||
force_index = self.wait_formation_change(force_index)
|
||||
#self.sleep(0.5)
|
||||
self.sleep(1)
|
||||
self.click(act['p'][0], act['p'][1])
|
||||
act['p'].pop(0)
|
||||
|
||||
if 'ec' in act:
|
||||
self.wait_formation_change(force_index)
|
||||
if 'wait-over' in act:
|
||||
self.wait_over()
|
||||
self.sleep(2)
|
||||
|
||||
logger.warning("Actions completed, waiting to enter the battle...")
|
||||
|
||||
def auto_accelerate(self):
|
||||
# click on the accelerate and auto button during the fight
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
self.device.click_record_clear()
|
||||
self.device.stuck_record_clear()
|
||||
if self.appear(BATTLE_COMPLETE):
|
||||
break
|
||||
elif not self.match_color(AUTO, threshold=50):
|
||||
self.device.click(AUTO)
|
||||
elif not self.match_color(ACCELERATE, threshold=50):
|
||||
self.device.click(ACCELERATE)
|
||||
elif self.match_color(AUTO, threshold=50) and self.match_color(ACCELERATE, threshold=50):
|
||||
break
|
||||
self.sleep(1)
|
||||
|
||||
def auto_fight(self):
|
||||
# Pause for 3 seconds
|
||||
self.sleep(3)
|
||||
# Wait for the game stage to finish loading
|
||||
self.handle_loading()
|
||||
# Change the settings for automatic fighting
|
||||
self.auto_accelerate()
|
||||
# Log a warning message indicating that the check for automatic skill release is completed
|
||||
logger.warning("Check for automatic skill release completed")
|
||||
|
||||
def goto_mission_page(self):
|
||||
# go back to mission page after fight
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
if self.appear(MISSION_CHECK):
|
||||
break
|
||||
if self.appear_then_click(BATTLE_COMPLETE, interval=1):
|
||||
continue
|
||||
if self.appear_then_click(RANK, interval=1):
|
||||
continue
|
||||
if self.appear_then_click(MISSION_COMPLETE, interval=1):
|
||||
continue
|
||||
if self.appear_then_click(REWARD_ACQUIRED, interval=1):
|
||||
continue
|
||||
self.device.click_record_clear()
|
||||
self.device.stuck_record_clear()
|
||||
|
||||
def fight(self, stage, manual_boss):
|
||||
if stage.state != StageState.SUB:
|
||||
# Click to start the task
|
||||
self.begin_mission()
|
||||
# Check for skip auto over
|
||||
self.check_skip_auto_over()
|
||||
# Start moving through the grid
|
||||
self.start_action(stage.action_info, manual_boss)
|
||||
# Auto battle
|
||||
if not manual_boss or stage.state == StageState.SUB:
|
||||
self.auto_fight()
|
||||
self.goto_mission_page()
|
||||
0
tasks/auto_mission/hard_task/__init__.py
Normal file
134
tasks/auto_mission/hard_task/hard_task_10.py
Normal file
@ -0,0 +1,134 @@
|
||||
stage_data = {
|
||||
'10-1-task-present': {
|
||||
'start': {
|
||||
'burst1': (757, 260),
|
||||
'mystic1': (501, 284),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (701, 386), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (463, 384), 'wait-over': True, "desc": "2 lower left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (441, 475), 'ec': True, "desc": "change to 2 and lower left"},
|
||||
{'t': 'click', 'p': (764, 398), 'wait-over': True, "desc": "1 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (825, 476), "desc": "1 lower right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (832, 342), "desc": "1 upper right"},
|
||||
]
|
||||
},
|
||||
'10-1-sss': {
|
||||
'start': {
|
||||
'burst1': (757, 260),
|
||||
'mystic1': (501, 284),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (642, 296), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (460, 386), 'ec': True, "desc": "2 lower left"},
|
||||
|
||||
{'t': 'click', 'p': (739, 396), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (440, 473), 'ec': True, "desc": "2 lower left"},
|
||||
|
||||
{'t': 'click', 'p': (645, 396), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (849, 394), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (901, 388), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
|
||||
'10-2-sss-present': {
|
||||
'start': {
|
||||
'burst1': (463, 260),
|
||||
'mystic1': (637, 305),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'exchange_and_click', 'p': (577, 472), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (583, 468), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (640, 555), 'wait-over': True, "desc": "1 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (463, 425), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'click', 'p': (743, 424), 'wait-over': True, "desc": "1 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (469, 234), 'ec': True, "desc": "2 upper left"},
|
||||
{'t': 'click', 'p': (773, 387), 'wait-over': True, "desc": "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (773, 265), "desc": "1 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (897, 399), "desc": "1 right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (721, 490), "desc": "1 lower left"},
|
||||
]
|
||||
},
|
||||
'10-2-task': {
|
||||
'start': {
|
||||
'burst1': (463, 260),
|
||||
'mystic1': (637, 305),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'exchange_and_click', 'p': (577, 472), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (583, 468), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (640, 555), 'wait-over': True, "desc": "1 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (463, 425), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'click', 'p': (743, 424), 'wait-over': True, "desc": "1 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (469, 234), 'ec': True, "desc": "2 upper left"},
|
||||
{'t': 'click', 'p': (773, 387), 'wait-over': True, "desc": "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (833, 349), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
|
||||
'10-3-sss-present': {
|
||||
'start': {
|
||||
'burst1': (697, 473),
|
||||
'mystic1': (328, 460),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (663, 406), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (558, 317), 'wait-over': True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (672, 320), 'ec': True, "desc": "2 right"},
|
||||
{'t': 'choose_and_change', 'p': (481, 389), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (554, 306), 'wait-over': True, "desc": "1 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (499, 224), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (742, 505), 'wait-over': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (750, 416), 'ec': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (567, 214), 'wait-over': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (468, 393), "desc": "1 lower left"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (391, 349), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
'10-3-task': {
|
||||
'start': {
|
||||
'burst1': (697, 473),
|
||||
'mystic1': (328, 460),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (663, 406), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (558, 317), 'wait-over': True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (672, 320), 'ec': True, "desc": "2 right"},
|
||||
{'t': 'choose_and_change', 'p': (481, 389), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (554, 306), 'wait-over': True, "desc": "1 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (499, 224), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (742, 505), 'wait-over': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (750, 416), 'ec': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (506, 293), 'wait-over': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (387, 347), "desc": "1 left"},
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
}
|
||||
86
tasks/auto_mission/hard_task/hard_task_11.py
Normal file
@ -0,0 +1,86 @@
|
||||
stage_data = {
|
||||
'11-1-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (795, 470),
|
||||
'mystic1': (865, 445),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (530, 425), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (650, 420), 'ec': True, 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': ['exchange', 'choose_and_change'], 'p': (535, 420), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (475, 340), 'ec': True, 'desc': "2 upper left"},
|
||||
{'t': 'click', 'p': (560, 430), 'wait-over': True, 'desc': "1 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (570, 280), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'click', 'p': (515, 360), 'wait-over': True, 'desc': "1 upper left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (515, 200), 'wait-over': True, 'desc': "2 upper left"},
|
||||
{'t': 'click', 'p': (450, 450), 'desc': "1 left"},
|
||||
]
|
||||
},
|
||||
'11-2-sss-present': {
|
||||
'start': {
|
||||
'pierce1': (395, 390),
|
||||
'mystic1': (620, 560),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (570, 245), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (705, 415), 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (680, 190), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click', 'p': (655, 430), 'ec': True, 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'click', 'p': (700, 285), 'ec': True, 'wait-over': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (700, 540), 'wait-over': True, 'desc': "2 lower left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (720, 420), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (665, 405), 'ec': True, 'wait-over': True, 'desc': "2 upper left"},
|
||||
{'t': 'click', 'p': (635, 370), 'wait-over': True, 'desc': "1 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (760, 365), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (760, 360), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (875, 375), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'11-2-task': {
|
||||
'start': {
|
||||
'pierce1': (395, 390),
|
||||
'mystic1': (620, 560),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (570, 245), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (705, 415), 'desc': "2 upper right and tp"},
|
||||
|
||||
{'t': 'click', 'p': (680, 190), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click', 'p': (655, 430), 'ec': True, 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'click', 'p': (700, 285), 'ec': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (700, 375), 'ec': True, 'wait-over': True, 'desc': "2 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (650, 415), 'ec': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (765, 410), 'ec': True, 'wait-over': True, 'desc': "2 upper left"},
|
||||
|
||||
{'t': 'choose_and_change', 'p': (765, 415), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (885, 415), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'11-3-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (790, 305),
|
||||
'mystic1': (530, 490),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (820, 400), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (470, 370), 'desc': "2 upper left and tp"},
|
||||
|
||||
{'t': 'click', 'p': (715, 505), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (630, 335), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (695, 550), 'wait-over': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (670, 295), 'desc': "2 right"},
|
||||
]
|
||||
},
|
||||
}
|
||||
88
tasks/auto_mission/hard_task/hard_task_12.py
Normal file
@ -0,0 +1,88 @@
|
||||
stage_data = {
|
||||
'12-1-sss-present-task': {
|
||||
'start': {
|
||||
'mystic1': (335, 555),
|
||||
'burst1': (1130, 455),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (610, 395), 'wait-over': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (665, 390), 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'click', 'p': (550, 310), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click', 'p': (725, 315), 'ec': True, 'wait-over': True, 'desc': "2 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (560, 345), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click', 'p': (680, 510), 'ec': True, 'wait-over': True, 'desc': "2 lower left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (555, 505), 'wait-over': True, 'desc': "2 left"},
|
||||
{'t': 'click', 'p': (510, 250), 'desc': "1 upper left"},
|
||||
]
|
||||
},
|
||||
'12-2-sss-present-task': {
|
||||
'start': {
|
||||
'mystic1': (365, 385),
|
||||
'burst1': (620, 390),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (578, 475), 'wait-over': True, 'desc': "1 lower right"},
|
||||
{'t': 'choose_and_change', 'p': (585, 480), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (640, 560), 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (785, 485), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (685, 235), 'wait-over': True, 'desc': "1 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (745, 270), 'ec': True, 'desc': "1 upper right"},
|
||||
{'t': 'click', 'p': (800, 500), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (640, 415), 'wait-over': True, 'desc': "2 upper left"},
|
||||
{'t': 'click', 'p': (730, 275), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'12-3-sss-present': {
|
||||
'start': {
|
||||
'mystic1': (610, 385),
|
||||
'burst1': (580, 305),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'exchange_and_click', 'p': (760, 390), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'choose_and_change', 'p': (760, 390), 'desc': "swap 1 2"},
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (815, 310), 'desc': "2 upper right and tp"},
|
||||
|
||||
{'t': 'click', 'p': (895, 400), 'wait-over': True, 'desc': "1 right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (730, 310), 'ec': True, 'desc': "1 upper left"},
|
||||
{'t': 'click', 'p': (505, 390), 'ec': True, 'wait-over': True, 'desc': "2 lower left"},
|
||||
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (705, 250), 'desc': "1 upper left"},
|
||||
{'t': 'click', 'p': (725, 595), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (455, 290), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (605, 485), 'ec': True, 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'click', 'p': (495, 380), 'desc': "1 lower left"}
|
||||
]
|
||||
},
|
||||
'12-3-task': {
|
||||
'start': {
|
||||
'mystic1': (610, 385),
|
||||
'burst1': (580, 305),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'exchange_and_click', 'p': (760, 390), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'choose_and_change', 'p': (760, 390), 'desc': "swap 1 2"},
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (815, 310), 'desc': "2 upper right and tp"},
|
||||
|
||||
{'t': 'click', 'p': (830, 315), 'desc': "1 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (710, 255), 'desc': "1 upper left and tp"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (400, 335), 'desc': "1 left"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (465, 400), 'desc': "1 lower left"},
|
||||
]
|
||||
},
|
||||
}
|
||||
78
tasks/auto_mission/hard_task/hard_task_13.py
Normal file
@ -0,0 +1,78 @@
|
||||
stage_data = {
|
||||
'13-1-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (730, 260),
|
||||
'pierce2': (845, 440),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (585, 340), 'wait-over': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (645, 420), 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (555, 430), 'ec': True, 'desc': "2 left"},
|
||||
{'t': 'choose_and_change', 'p': (560, 430), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (500, 515), 'wait-over': True, 'desc': "1 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (430, 475), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (840, 290), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (885, 340), 'wait-over': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (400, 465), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'13-2-sss-present': {
|
||||
'start': {
|
||||
'pierce1': (758, 222),
|
||||
'pierce2': (845, 445),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (590, 340), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (650, 425), 'ec': True, 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (600, 350), 'ec': True, 'desc': "2 left"},
|
||||
{'t': 'choose_and_change', 'p': (600, 350), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (480, 350), 'wait-over': True, 'desc': "1 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (825, 290), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (455, 365), 'wait-over': True, 'desc': "1 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (440, 450), 'desc': "1 lower left"},
|
||||
]
|
||||
},
|
||||
'13-2-task': {
|
||||
'start': {
|
||||
'pierce1': (758, 222),
|
||||
'pierce2': (845, 445),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (590, 340), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (650, 425), 'ec': True, 'wait-over': True, 'desc': "2 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (600, 350), 'ec': True, 'desc': "2 left"},
|
||||
{'t': 'choose_and_change', 'p': (600, 350), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (480, 350), 'wait-over': True, 'desc': "1 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (825, 290), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (395, 445), 'desc': "1 left"},
|
||||
]
|
||||
},
|
||||
'13-3-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (785, 185),
|
||||
'pierce2': (365, 275),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (660, 355), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (615, 370), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (675, 450), 'ec': True, 'desc': "2 lower right"},
|
||||
{'t': 'choose_and_change', 'p': (675, 445), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (615, 535), 'wait-over': True, 'desc': "1 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (590, 535), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click', 'p': (795, 380), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (840, 435), 'wait-over': True, 'desc': "2 lower right"},
|
||||
{'t': 'click', 'p': (595, 560), 'desc': "1 lower right"},
|
||||
]
|
||||
},
|
||||
}
|
||||
64
tasks/auto_mission/hard_task/hard_task_14.py
Normal file
@ -0,0 +1,64 @@
|
||||
stage_data = {
|
||||
'14-1-sss-present-task': {
|
||||
'start': {
|
||||
'burst1': (550, 305),
|
||||
'mystic1': (581, 686),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (785, 275), 'ec': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (715, 500), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (780, 375), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click', 'p': (715, 420), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (895, 340), 'ec': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (665, 365), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (412, 322), 'ec': True, 'desc': "2 left"},
|
||||
{'t': 'click', 'p': (760, 405), 'wait-over': True, 'desc': "1 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (450, 420), 'wait-over': True, 'desc': "2 lower left"},
|
||||
{'t': 'click', 'p': (715, 515), 'desc': "1 lower left"},
|
||||
]
|
||||
},
|
||||
'14-2-sss-present-task': {
|
||||
'start': {
|
||||
'burst1': (875, 305),
|
||||
'mystic1': (475, 585),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (690, 390), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (605, 395), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (640, 320), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'choose_and_change', 'p': (643, 323), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (580, 235), 'wait-over': True, 'desc': "2 upper left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (520, 275), 'ec': True, 'desc': "2 left"},
|
||||
{'t': 'click', 'p': (565, 445), 'wait-over': True, 'desc': "1 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (620, 200), 'wait-over': True, 'desc': "2 upper left"},
|
||||
{'t': 'click', 'p': (575, 425), 'desc': "1 upper left"},
|
||||
]
|
||||
},
|
||||
'14-3-sss-present-task': {
|
||||
'start': {
|
||||
'burst1': (875, 345),
|
||||
'mystic1': (425, 200),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (655, 430), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (460, 405), 'ec': True, 'wait-over': True, 'desc': "2 lower left"},
|
||||
|
||||
{'t': 'click', 'p': (630, 465), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (550, 465), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (625, 460), 'ec': True, 'desc': "2 lower right"},
|
||||
{'t': 'choose_and_change', 'p': (625, 460), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (565, 545), 'wait-over': True, 'desc': "1 lower left"},
|
||||
|
||||
{'t': 'click', 'p': (390, 435), 'wait-over': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (825, 250), 'desc': "2 upper right"},
|
||||
]
|
||||
},
|
||||
}
|
||||
73
tasks/auto_mission/hard_task/hard_task_15.py
Normal file
@ -0,0 +1,73 @@
|
||||
stage_data = {
|
||||
'15-1-sss-present-task': {
|
||||
'start': {
|
||||
'mystic1': (795, 560),
|
||||
'mystic2': (350, 470),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (900, 410), 'desc': "1 right and tp"},
|
||||
{'t': 'click', 'p': (555, 315), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (685, 230), 'ec': True, 'desc': "1 upper left"},
|
||||
{'t': 'click', 'p': (555, 340), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (565, 355), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (570, 355), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (510, 275), 'wait-over': True, 'desc': "1 upper left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (655, 410), 'wait-over': True, 'desc': "2 lower left"},
|
||||
{'t': 'click', 'p': (450, 290), 'desc': "1 left"},
|
||||
]
|
||||
},
|
||||
'15-2-sss-present-task': {
|
||||
'start': {
|
||||
'mystic1': (400, 475),
|
||||
'mystic2': (700, 515),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (445, 485), 'desc': "1 lower left and tp"},
|
||||
{'t': 'click', 'p': (700, 320), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (790, 475), 'desc': "1 lower right and tp"},
|
||||
{'t': 'click', 'p': (630, 270), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (670, 220), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (670, 275), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (725, 195), 'wait-over': True, 'desc': "1 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (765, 535), 'wait-over': True, 'desc': "2 lower right"},
|
||||
{'t': 'click', 'p': (775, 280), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'15-3-sss-present-task': {
|
||||
'start': {
|
||||
'mystic1': (425, 600),
|
||||
'mystic2': (385, 225),
|
||||
'pierce1': (645, 155),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (545, 505), 'desc': "1 left and tp"},
|
||||
{'t': 'click', 'p': (670, 300), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click_and_teleport', 'wait-over': True, 'p': (765, 270), 'desc': "3 right and tp"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (705, 370), 'ec': True, 'desc': "2 right"},
|
||||
{'t': ['exchange_twice', 'choose_and_change'], 'p': (705, 370), 'desc': "swap 2 3"},
|
||||
{'t': 'click', 'p': (820, 370), 'ec': True, 'desc': "3 right"},
|
||||
{'t': 'choose_and_change', 'p': (785, 375), 'desc': "swap 1 3"},
|
||||
{'t': 'click', 'p': (905, 375), 'wait-over': True, 'desc': "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (905, 380), 'ec': True, 'desc': "1 right"},
|
||||
{'t': 'click_and_teleport', 'p': (500, 425), "wait-over":True ,'desc': "2 tp"},
|
||||
{'t': 'click_and_teleport', 'p': (645, 155), 'wait-over': True, 'desc': "2 upper right and tp"},
|
||||
{'t': 'click', 'p': (695, 595), 'wait-over': True, 'desc': "3 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (815, 405), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click', 'p': (635, 205), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (675, 355), 'ec': True, 'desc': "2 lower right"},
|
||||
{'t': 'exchange_twice_and_click', 'p': (465, 550), 'wait-over': True, 'desc': "2 lower right"},
|
||||
{'t': 'click', 'p': (715, 425), 'desc': "1 lower left"},
|
||||
]
|
||||
},
|
||||
}
|
||||
69
tasks/auto_mission/hard_task/hard_task_16.py
Normal file
@ -0,0 +1,69 @@
|
||||
stage_data = {
|
||||
'16-1-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (670, 470),
|
||||
'mystic1': (370, 215),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (605, 475), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (590, 385), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (565, 500), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (515, 410), 'ec': True, 'wait-over': True, 'desc': "2 lower left"},
|
||||
|
||||
{'t': 'click', 'p': (508, 580), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (630, 410), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (395, 450), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (900, 365), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (725, 450), 'wait-over': True, 'desc': "1 upper left"},
|
||||
{'t': 'click', 'p': (445, 330), 'desc': "2 lower left"},
|
||||
]
|
||||
},
|
||||
'16-2-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (550, 385),
|
||||
'mystic1': (520, 560),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (565, 325), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (505, 410), 'ec': True, 'wait-over': True, 'desc': "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (455, 330), 'ec': True, 'desc': "1 upper left"},
|
||||
{'t': 'choose_and_change', 'p': (510, 345), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (395, 340), 'wait-over': True, 'desc': "1 left"},
|
||||
|
||||
{'t': 'click', 'p': (440, 445), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (845, 455), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (728, 468), 'wait-over': True, 'desc': "2 lower left"},
|
||||
{'t': 'click', 'p': (555, 475), 'desc': "1 lower right"},
|
||||
]
|
||||
},
|
||||
'16-3-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (940, 470),
|
||||
'mystic1': (170, 425),
|
||||
'pierce2': (380, 240),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (665, 415), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (550, 315), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'click', 'p': (640, 320), 'ec': True, 'wait-over': True, 'desc': "3 right"},
|
||||
|
||||
{'t': 'click', 'p': (720, 280), 'ec': True, 'desc': "1 upper left"},
|
||||
{'t': 'click', 'p': (565, 265), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (645, 320), 'desc': "swap 2 3"},
|
||||
{'t': 'click', 'p': (760, 315), 'ec': True, 'wait-over': True, 'desc': "3 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (440, 445), 'ec': True, 'desc': "2 lower left"},
|
||||
{'t': 'exchange_twice_and_click', 'p': (835, 430), 'wait-over': True, 'desc': "3 lower right"},
|
||||
{'t': 'choose_and_change', 'p': (665, 410), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (605, 495), 'wait-over': True, 'desc': "1 lower left"},
|
||||
|
||||
{'t': 'exchange_twice_and_click', 'p': (845, 325), 'ec': True, 'desc': "3 upper left"},
|
||||
{'t': 'click', 'p': (435, 490), 'desc': "1 lower left"},
|
||||
]
|
||||
},
|
||||
}
|
||||
88
tasks/auto_mission/hard_task/hard_task_6.py
Normal file
@ -0,0 +1,88 @@
|
||||
stage_data = {
|
||||
'6-1-sss-present': {
|
||||
'start': {
|
||||
'pierce1': (555, 220),
|
||||
'pierce2': (454, 432),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (693, 333), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click', 'p': (569, 508), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (711, 455), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (777, 308), 'wait-over': True, 'desc': "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (800, 227), 'wait-over': True, 'desc': "1 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
|
||||
{'t': 'click', 'p': (774, 371), 'desc': "1 lower right"},
|
||||
]
|
||||
},
|
||||
'6-1-task': {
|
||||
'start': {
|
||||
'pierce1': (555, 220),
|
||||
'pierce2': (454, 432),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (693, 333), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click', 'p': (569, 508), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (711, 455), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (777, 308), 'wait-over': True, 'desc': "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (860, 305), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'6-2-sss-present': {
|
||||
'start': {
|
||||
'pierce1': (556, 265),
|
||||
'pierce2': (436, 441),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (534, 356), 'ec': True, 'desc': "1 lower left"},
|
||||
{'t': 'click', 'p': (552, 484), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (670, 316), 'ec': True, 'desc': "1 right"},
|
||||
{'t': 'click', 'p': (674, 482), 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (698, 382), 'ec': True, 'desc': "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (696, 387), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (811, 373), 'wait-over': True, 'desc': "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (842, 301), 'wait-over': True, 'desc': "1 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
]
|
||||
},
|
||||
'6-2-task': {
|
||||
'start': {
|
||||
'pierce1': (556, 265),
|
||||
'pierce2': (436, 441),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (694, 343), 'ec': True, 'desc': "1 lower right"},
|
||||
{'t': 'click', 'p': (571, 508), 'ec': True, 'wait-over': True, 'desc': "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (711, 485), 'ec': True, 'desc': "2 right"},
|
||||
{'t': 'click', 'p': (787, 316), 'desc': "1 right"},
|
||||
]
|
||||
},
|
||||
'6-3-sss-present-task': {
|
||||
'start': {
|
||||
'pierce1': (855, 515),
|
||||
'pierce2': (569, 203),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (611, 477), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (741, 271), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (533, 505), 'ec': True, 'desc': "1 left"},
|
||||
{'t': 'click', 'p': (639, 369), 'ec': True, 'wait-over': True, 'desc': "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (643, 408), 'ec': True, 'desc': "2 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (645, 408), 'desc': "swap 1 2"},
|
||||
{'t': 'click', 'p': (530, 412), 'wait-over': True, 'desc': "1 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (553, 485), 'wait-over': True, 'desc': "2 left"},
|
||||
{'t': 'click', 'p': (560, 321), 'desc': "1 upper left"},
|
||||
]
|
||||
},
|
||||
}
|
||||
61
tasks/auto_mission/hard_task/hard_task_7.py
Normal file
@ -0,0 +1,61 @@
|
||||
stage_data = {
|
||||
'7-1-sss-present': {
|
||||
'start': {
|
||||
'burst1': (697, 473),
|
||||
'mystic1': (328, 460),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (663, 406), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (558, 317), 'wait-over': True, "desc": "2 upper right"},
|
||||
{'t': 'exchange_and_click', 'p': (672, 320), 'ec': True, "desc": "2 right"},
|
||||
{'t': 'choose_and_change', 'p': (481, 389), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (554, 306), 'wait-over': True, "desc": "1 upper right"},
|
||||
{'t': 'click', 'p': (499, 224), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (742, 505), 'wait-over': True, "desc": "2 right"},
|
||||
{'t': 'exchange_and_click', 'p': (750, 416), 'ec': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (506, 293), 'wait-over': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (387, 347), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
'7-2-sss-present': {
|
||||
'start': {
|
||||
'burst1': (469, 229),
|
||||
'burst2': (650, 296),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (583, 474), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (760, 394), 'ec': True, 'wait-over': True, "desc": "2 right"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (523, 560), "desc": "1 lower left and tp"},
|
||||
{'t': 'click', 'p': (758, 365), 'wait-over': True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (737, 411), "desc": "1 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
]
|
||||
},
|
||||
'7-2-task': {
|
||||
'start': {
|
||||
'burst1': (469, 229),
|
||||
'burst2': (650, 296),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'exchange_and_click', 'p': (578, 473), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (578, 473), "desc": "swap 1 2"},
|
||||
{'t': 'click_and_teleport', 'p': (520, 560), 'wait-over': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (716, 378), "desc": "1 upper right"},
|
||||
{'t': 'end-turn'},
|
||||
]
|
||||
},
|
||||
'7-3-sss-present-task': {
|
||||
'start': {
|
||||
'burst1': (943, 471),
|
||||
'burst2': (182, 260),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (659, 433), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (626, 350), 'wait-over': True, 'ec': True, "desc": "2 right"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (667, 384), "desc": "1 left and tp"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'wait-over': True, 'p': (596, 382), "desc": "2 lower right and tp"},
|
||||
{'t': 'exchange_and_click', 'p': (451, 494), "wait-over": True, "desc": "2 left"},
|
||||
{'t': 'click', 'p': (841, 294), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
}
|
||||
111
tasks/auto_mission/hard_task/hard_task_8.py
Normal file
@ -0,0 +1,111 @@
|
||||
stage_data = {
|
||||
'8-1-sss-present': {
|
||||
'start': {
|
||||
'pierce1': (613, 180),
|
||||
'pierce2': (563, 684),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'p': (712, 351), 'ec': True, "desc": "1 lower right and tp"},
|
||||
{'t': 'click_and_teleport', 'p': (649, 410), 'ec': True, 'wait-over': True, 'desc': "2 upper left and tp"},
|
||||
{'t': 'click', 'p': (613, 389), "ec": True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (850, 474), "ec": True, 'wait-over': True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (556, 495), "ec": True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (896, 423), "wait-over": True, "desc": "2 right"},
|
||||
{'t': 'click', 'p': (614, 399), "desc": "1 right"},
|
||||
{'t': 'end-turn'},
|
||||
{'t': 'click', 'p': (614, 390), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
'8-1-task': {
|
||||
'start': {
|
||||
'pierce1': (613, 180),
|
||||
'pierce2': (563, 684),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (712, 351), "desc": "1 lower right and tp"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'wait-over': True, 'p': (649, 410), 'desc': "2 upper left and tp"},
|
||||
{'t': 'click', 'p': (613, 389), "ec": True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (850, 474), "ec": True, 'wait-over': True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (556, 495), "ec": True, "desc": "1 lower right"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'wait-over': True, 'p': (722, 339), "desc": "2 upper left and tp"},
|
||||
{'t': 'exchange_and_click', 'p': (626, 345), "ec": True, "desc": "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (626, 345), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (743, 347), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
'8-2-sss-present': {
|
||||
'start': {
|
||||
'pierce1': (1000, 342),
|
||||
'pierce2': (71, 373),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (728, 474), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (553, 477), 'wait-over': True, 'ec': True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (664, 414), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (616, 395), 'ec': True, 'wait-over': True, "desc": "2 right"},
|
||||
{'t': 'exchange_and_click', 'p': (560, 333), "ec": True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (668, 410), 'wait-over': True, "desc": "1 left"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (692, 553), "desc": "1 lower left and tp"},
|
||||
{'t': 'click', 'p': (592, 232), 'wait-over': True, 'ec': True, "desc": "2 upper right"},
|
||||
{'t': ['exchange_and_click', 'teleport'], 'ec': True, 'p': (613, 236), "desc": "2 upper right and tp"},
|
||||
{'t': 'end-turn'},
|
||||
{'t': 'exchange_and_click', 'p': (433, 297), 'wait-over': True, "desc": "2 left"},
|
||||
{'t': 'click', 'p': (613, 490), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
'8-2-sss-task': {
|
||||
'start': {
|
||||
'pierce1': (1000, 342),
|
||||
'pierce2': (71, 373),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (728, 474), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (553, 477), 'wait-over': True, 'ec': True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (664, 414), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (616, 395), 'ec': True, 'wait-over': True, "desc": "2 right"},
|
||||
{'t': 'exchange_and_click', 'p': (560, 333), "ec": True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (668, 410), 'wait-over': True, "desc": "1 left"},
|
||||
{'t': 'click_and_teleport', 'p': (692, 553), 'ec': True, "desc": "1 lower left and tp"},
|
||||
{'t': 'end-turn'},
|
||||
{'t': 'click', 'p': (641, 459), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
'8-3-present': {
|
||||
'start': {
|
||||
'pierce1': (793, 471),
|
||||
'pierce2': (325, 359),
|
||||
},
|
||||
'action': [
|
||||
{'t': ['exchange_and_click', 'teleport'], 'p': (557, 449),'ec':True, "desc": "2 lower right and tp"},
|
||||
{'t': 'choose_and_change', 'p': (713, 336), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (779, 258), 'wait-over': True, "desc": "1 upper right"},
|
||||
{'t': 'click', 'p': (722, 446), "desc": "1 lower left"},
|
||||
{'t': 'end-turn'},
|
||||
{'t': 'click', 'p': (560, 398), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (754, 422), 'ec': True, 'wait-over': True, "desc": "2 right"},
|
||||
{'t': 'click', 'p': (445, 275), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (889, 435), 'wait-over': True, "desc": "2 right"},
|
||||
{'t': 'click', 'p': (460, 249), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'end-turn'},
|
||||
{'t': 'click', 'p': (394, 326), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'end-turn'},
|
||||
]
|
||||
},
|
||||
'8-3-sss-task': {
|
||||
'start': {
|
||||
'pierce1': (793, 471),
|
||||
'pierce2': (325, 359),
|
||||
},
|
||||
'action': [
|
||||
{'t': ['exchange_and_click', 'teleport'], 'ec': True, 'p': (557, 449), "desc": "2 lower right and tp"},
|
||||
{'t': 'choose_and_change', 'p': (713, 336), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (604, 341), 'wait-over': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (466, 249), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (823, 377), 'ec': True, 'wait-over': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (727, 318), "ec": True, "desc": "2 upper left"},
|
||||
{'t': 'click', 'p': (518, 283), 'wait-over': True, "desc": "1 upper left"},
|
||||
{'t': 'click', 'p': (433, 300), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click_and_teleport', 'p': (724, 474), "desc": "2 lower left and tp"},
|
||||
]
|
||||
},
|
||||
}
|
||||
67
tasks/auto_mission/hard_task/hard_task_9.py
Normal file
@ -0,0 +1,67 @@
|
||||
stage_data = {
|
||||
'9-1-sss-present-task': {
|
||||
'start': {
|
||||
'burst1': (493, 301),
|
||||
'pierce1': (573, 576),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (688, 278), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (689, 413), 'ec': True, 'wait-over': True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (743, 352), "ec": True, "desc": "2 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (743, 352), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (861, 356), 'wait-over': True, "desc": "1 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (404, 319), "wait-over": True, "desc": "2 left"},
|
||||
{'t': 'click', 'p': (903, 416), "desc": "1 right"},
|
||||
|
||||
]
|
||||
},
|
||||
'9-2-sss-present': {
|
||||
'start': {
|
||||
'burst1': (438, 222),
|
||||
'pierce1': (532, 641),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (674, 350), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (688, 420), 'wait-over': True, 'ec': True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (744, 356), 'ec': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (798, 275), 'wait-over': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (798, 225), 'ec': True, "desc": "1 upper right"},
|
||||
{'t': 'click', 'p': (726, 459), 'wait-over': True, 'ec': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (789, 541), "wait-over": True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (720, 358), "desc": "1 lower right"},
|
||||
]
|
||||
},
|
||||
'9-2-task': {
|
||||
'start': {
|
||||
'burst1': (438, 222),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (584, 381), 'wait-over': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (707, 381), 'wait-over': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (844, 284), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
|
||||
'9-3-sss-present-task': {
|
||||
'start': {
|
||||
'burst1': (761, 465),
|
||||
'pierce1': (729, 283),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'exchange_and_click', 'p': (579, 422), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (579, 422), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (460, 422), 'wait-over': True, "desc": "1 left"},
|
||||
|
||||
{'t': 'click', 'p': (440, 502), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (873, 467), 'wait-over': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (846, 290), 'wait-over': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (378, 392), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
}
|
||||
0
tasks/auto_mission/normal_task/__init__.py
Normal file
93
tasks/auto_mission/normal_task/normal_task_10.py
Normal file
@ -0,0 +1,93 @@
|
||||
stage_data = {
|
||||
'10': {
|
||||
'SUB': "burst1"
|
||||
},
|
||||
'10-1': {
|
||||
'start': {
|
||||
'burst1': (640, 261),
|
||||
'mystic1': (403, 560),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (811, 398), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (586, 546), "wait-over": True, 'ec': True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (779, 386), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (575, 363), 'ec': True, "wait-over": True, "desc": "2 upper left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (487, 284), 'ec': True, "desc": "change to 2 and upper left"},
|
||||
{'t': 'click', 'p': (904, 392), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
'10-2': {
|
||||
'start': {
|
||||
'burst1': (704, 558),
|
||||
'mystic1': (554, 480),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (620, 381), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'choose_and_change', 'p': (620, 381), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (688, 303), "wait-over": True, 'ec': True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (880, 338), 'ec': True, "desc": "change to 2 and right"},
|
||||
{'t': 'click', 'p': (527, 414), "wait-over": True, "desc": "1 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (455, 497), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
'10-3': {
|
||||
'start': {
|
||||
'burst1': (821, 344),
|
||||
'mystic1': (656, 351),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (701, 477), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (701, 477), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (764, 556), "wait-over": True, 'ec': True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (713, 522), 'ec': True, "desc": "change to 2 and lower left"},
|
||||
{'t': 'click', 'p': (536, 273), "wait-over": True, "desc": "1 left"},
|
||||
|
||||
{'t': 'click', 'p': (535, 272), "desc": "1 left"},
|
||||
]
|
||||
},
|
||||
'10-4': {
|
||||
'start': {
|
||||
'burst1': (374, 263),
|
||||
'mystic1': (560, 582),
|
||||
},
|
||||
'action': [
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (688, 418), 'ec': True, "desc": "change to 2 and upper left"},
|
||||
{'t': 'click', 'p': (701, 278), "wait-over": True, "desc": "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (680, 291), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (616, 543), "ec": True, "wait-over": True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (535, 590), 'ec': True, "desc": "change to 2 and lower left"},
|
||||
{'t': 'click', 'p': (736, 270), "wait-over": True, "desc": "1 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (694, 495), 'ec': True, "desc": "change to 2 and right"},
|
||||
{'t': 'click', 'p': (739, 359), "desc": "1 lower left"},
|
||||
]
|
||||
},
|
||||
'10-5': {
|
||||
'start': {
|
||||
'burst1': (374, 387),
|
||||
'mystic1': (562, 473),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (617, 381), "ec": True, "desc": "1 right"},
|
||||
{'t': 'choose_and_change', 'p': (617, 381), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (680, 300), "wait-over": True, "ec": True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (743, 498), "ec": True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (844, 308), 'ec': True, "wait-over": True, "desc": "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (506, 570), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (827, 290), "wait-over": True, 'ec': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (794, 387), 'ec': True, "desc": "change to 2 and lower right"},
|
||||
{'t': 'click', 'p': (626, 439), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
}
|
||||
101
tasks/auto_mission/normal_task/normal_task_11.py
Normal file
@ -0,0 +1,101 @@
|
||||
stage_data = {
|
||||
'11': {
|
||||
'SUB': "pierce1"
|
||||
},
|
||||
'11-1': {
|
||||
'start': {
|
||||
'pierce1': (496, 525),
|
||||
'mystic1': (794, 130),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (499, 412), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click_and_teleport', 'p': (775, 368), "wait-over": True, 'ec': True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (556, 317), 'ec': True, "desc": "1 upper right"},
|
||||
{'t': 'click', 'p': (684, 388), "wait-over": True, "desc": "2 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (469, 245), "desc": "1 upper left"},
|
||||
]
|
||||
},
|
||||
'11-2': {
|
||||
'start': {
|
||||
'pierce1': (281, 347),
|
||||
'mystic1': (791, 287),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (553, 478), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click_and_teleport', "wait-over": True, 'ec': True, 'p': (823, 406), "desc": "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (616, 371), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (904, 412), "wait-over": True, 'ec': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (553, 469), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click_and_teleport', "wait-over": True, 'ec': True, 'p': (662, 419), "desc": "2 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (715, 270), 'ec': True, "desc": "2 right"},
|
||||
{'t': 'click', 'p': (624, 451), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
'11-3': {
|
||||
'start': {
|
||||
'pierce1': (315, 466),
|
||||
'mystic1': (919, 178),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (635, 461), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click_and_teleport', 'ec': True, "wait-over": True, 'p': (693, 397), "desc": "2 lower left"},
|
||||
|
||||
{'t': 'click', 'p': (613, 422), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (672, 365), "ec": True, "wait-over": True, "desc": "2 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (716, 427), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'click', 'p': (555, 511), "desc": "1 lower right"},
|
||||
]
|
||||
},
|
||||
'11-4': {
|
||||
'start': {
|
||||
'pierce1': (940, 350),
|
||||
'mystic1': (841, 285),
|
||||
},
|
||||
'action': [
|
||||
|
||||
{'t': 'click', 'p': (647, 323), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'choose_and_change', 'p': (648, 318), "desc": "swap 1 2"},
|
||||
{'t': 'click_and_teleport', 'ec': True, "wait-over": True, 'p': (530, 321), "desc": "2 left"},
|
||||
|
||||
{'t': 'click', 'p': (642, 330), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (558, 446), "ec": True, "wait-over": True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'click_and_teleport', 'p': (634, 318), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (434, 422), 'ec': True, "wait-over": True, "desc": "2 left"},
|
||||
|
||||
{'t': 'choose_and_change', 'p': (494, 404), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (433, 489), 'ec': True, "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (525, 249), "desc": "2 left"},
|
||||
|
||||
]
|
||||
},
|
||||
'11-5': {
|
||||
'start': {
|
||||
'pierce1': (374, 429),
|
||||
'mystic1': (1114, 591),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (719, 351), "desc": "2 upper left"},
|
||||
{'t': 'click', 'p': (613, 371), "desc": "1 right", "wait-over": True},
|
||||
|
||||
{'t': 'click', 'p': (729, 377), "ec": True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (616, 216), 'ec': True, "wait-over": True, "desc": "2 upper right"},
|
||||
|
||||
{'t': 'click', 'p': (868, 437), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (683, 290), "wait-over": True, 'ec': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (715, 523), "desc": "1 lower left"},
|
||||
{'t': 'click', 'p': (835, 288), 'ec': True, "wait-over": True, "desc": "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (586, 549), 'ec': True, "desc": "2 lower right"},
|
||||
{'t': 'click', 'p': (662, 306), "desc": "1 right"},
|
||||
|
||||
]
|
||||
},
|
||||
}
|
||||
104
tasks/auto_mission/normal_task/normal_task_12.py
Normal file
@ -0,0 +1,104 @@
|
||||
stage_data = {
|
||||
'12': {
|
||||
'SUB': "burst1"
|
||||
},
|
||||
'12-1': {
|
||||
'start': {
|
||||
'mystic1': (370, 428),
|
||||
'burst1': (566, 328),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (640, 560), "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (704, 320), "wait-over": True, 'ec': True, "desc": "2 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (778, 373), 'ec': True, "desc": "2 right"},
|
||||
{'t': 'choose_and_change', 'p': (778, 373), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (901, 374), "wait-over": True, "desc": "1 right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (547, 556), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'click', 'p': (772, 384), "desc": "1 lower right"},
|
||||
]
|
||||
},
|
||||
'12-2': {
|
||||
'start': {
|
||||
'mystic1': (733, 387),
|
||||
'burst1': (574, 474),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (581, 309), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'choose_and_change', 'p': (581, 309), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (464, 306), 'ec': True, "wait-over": True, "desc": "2 left"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (526, 453), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'click', 'p': (767, 401), "wait-over": True, "desc": "1 right"},
|
||||
|
||||
{'t': 'click', 'p': (845, 490), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (617, 383), "desc": "2 right"},
|
||||
]
|
||||
},
|
||||
'12-3': {
|
||||
'start': {
|
||||
'mystic1': (763, 558),
|
||||
'burst1': (586, 147),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (615, 413), 'ec': True},
|
||||
{'t': 'click', 'p': (724, 273), 'wait-over': True},
|
||||
|
||||
{'t': ['exchange_and_click', 'teleport'],'wait-over':True, 'p': (642, 271)},
|
||||
{'t': 'click', 'p': (614, 350), 'ec': True},
|
||||
{'t': 'choose_and_change', 'p': (586, 371)},
|
||||
{'t': 'click', 'p': (471, 360), "wait-over": True},
|
||||
|
||||
{'t': 'click', 'p': (440, 286), 'ec': True},
|
||||
{'t': 'end-turn'},
|
||||
]
|
||||
},
|
||||
'12-4': {
|
||||
'start': {
|
||||
'mystic1': (342, 386),
|
||||
'burst1': (619, 223),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click', 'p': (622, 424), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click_and_teleport', 'ec': True, "wait-over": True, 'p': (746, 264), "desc": "2 right"},
|
||||
|
||||
{'t': 'click', 'p': (657, 523), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'choose_and_change', 'p': (654, 501), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (717, 588), "ec": True, "wait-over": True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (808, 496), 'ec': True, "desc": "2 right"},
|
||||
{'t': 'click_and_teleport', 'p': (579, 397), "desc": "1 teleport"},
|
||||
{'t': 'click', 'p': (700, 240), "desc": "1 right", "wait-over": True},
|
||||
|
||||
{'t': 'click_and_teleport', 'p': (824, 291),'ec':True ,"desc": "1 right"},
|
||||
{'t': 'click', 'p': (740, 513), "desc": "2 right"},
|
||||
|
||||
]
|
||||
},
|
||||
'12-5': {
|
||||
'start': {
|
||||
'mystic1': (549, 556),
|
||||
'burst1': (835, 478),
|
||||
},
|
||||
'action': [
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (582, 359), "desc": "1 upper right"},
|
||||
{'t': 'choose_and_change', 'p': (781, 353), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (842, 272), "wait-over": True ,"desc": "2 upper right"},
|
||||
|
||||
{'t': 'click_and_teleport', 'p': (665, 397),'ec':True ,"desc": "1 upper right"},
|
||||
{'t': 'click_and_teleport', 'p': (756, 317), "desc": "2 teleport"},
|
||||
{'t': 'click', 'p': (637, 327), 'ec': True, "wait-over": True, "desc": "2 lower right"},
|
||||
|
||||
{'t': 'click', 'p': (631, 386), 'ec': True, "desc": "1 upper left"},
|
||||
{'t': 'click_and_teleport', 'ec': True, 'p': (701, 248), "desc": "2 upper left"},
|
||||
|
||||
{'t': 'click', 'p': (377, 392), 'ec': True, "desc": "1 left left"},
|
||||
{'t': 'click', 'p': (845, 309), 'ec': True, "desc": "2 upper right", "wait-over": True},
|
||||
|
||||
{'t': 'exchange_and_click', 'p': (731, 299), 'ec': True, "desc": "2 upper left"},
|
||||
{'t': 'click', 'p': (385, 422), "desc": "1 left"},
|
||||
|
||||
]
|
||||
},
|
||||
}
|
||||
109
tasks/auto_mission/normal_task/normal_task_13.py
Normal file
@ -0,0 +1,109 @@
|
||||
stage_data = {
|
||||
'13': {
|
||||
'SUB': "pierce1"
|
||||
},
|
||||
'13-1': {
|
||||
'start': {
|
||||
'pierce1': (493, 305),
|
||||
'pierce2': (701, 570),
|
||||
},
|
||||
'action': [
|
||||
# 第一回合
|
||||
{'t': 'click', 'p': (606, 374), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (574, 495), "wait-over": True, 'ec': True, "desc": "2 left"},
|
||||
# 第二回合
|
||||
{'t': 'click', 'p': (699, 344), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (461, 495), "wait-over": True, "desc": "2 left"},
|
||||
|
||||
# 第三回合
|
||||
{'t': 'click', 'p': (851, 300), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'end-turn'},
|
||||
]
|
||||
},
|
||||
'13-2': {
|
||||
'start': {
|
||||
'pierce1': (728, 394),
|
||||
'pierce2': (409, 226),
|
||||
},
|
||||
'action': [
|
||||
# 第一回合
|
||||
{'t': 'click', 'p': (630, 463), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (591, 400), 'ec': True, "wait-over": True, "desc": "2 lower right"},
|
||||
|
||||
# 第二回合
|
||||
{'t': 'click', 'p': (585, 565), 'ec': True, "desc": "lower left"},
|
||||
{'t': 'click', 'p': (666, 418), 'ec': True, "wait-over": True, "desc": "2 lower right"},
|
||||
|
||||
# 第三回合
|
||||
{'t': 'exchange_and_click', 'p': (823, 327), 'ec': True, "desc": "2 upper right"},
|
||||
{'t': 'click', 'p': (610, 570), "desc": "1 lower right"},
|
||||
]
|
||||
},
|
||||
'13-3': {
|
||||
'start': {
|
||||
'pierce1': (427, 513),
|
||||
'pierce2': (779, 451),
|
||||
},
|
||||
'action': [
|
||||
# 第一回合
|
||||
{'t': 'click', 'p': (579, 361), 'ec': True, "desc": "1 upper right"},
|
||||
{'t': 'click', 'p': (702, 354), "wait-over": True, 'ec': True, "desc": "2 upper left"},
|
||||
|
||||
# 第二回合
|
||||
{'t': 'choose_and_change', 'p': (782, 458), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (823, 357), 'ec': True, "desc": "1 upper right"},
|
||||
{'t': 'click', 'p': (722, 445), "wait-over": True, 'ec': True, "desc": "2 right"},
|
||||
|
||||
# 第三回合
|
||||
{'t': 'click', 'p': (826, 282), 'ec': True, "desc": "1 right"},
|
||||
{'t': 'click', 'p': (762, 498), 'ec': True, "wait-over": True, "desc": "2 right"},
|
||||
|
||||
# 第四回合
|
||||
{'t': 'click', 'p': (890, 365), "desc": "1 right"},
|
||||
]
|
||||
},
|
||||
'13-4': {
|
||||
'start': {
|
||||
'pierce1': (580, 263),
|
||||
'pierce2': (875, 389),
|
||||
},
|
||||
'action': [
|
||||
# 第一回合
|
||||
{'t': 'click', 'p': (604, 473), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (731, 473), 'ec': True, "wait-over": True, "desc": "2 lower left"},
|
||||
|
||||
# 第二回合
|
||||
{'t': 'exchange_and_click', 'p': (728, 473), 'ec': True, "desc": "2 lower left"},
|
||||
{'t': 'choose_and_change', 'p': (728, 473), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (672, 567), "wait-over": True, "desc": "1 lower left"},
|
||||
|
||||
# 第三回合
|
||||
{'t': 'click', 'p': (628, 475), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (738, 198), "desc": "2 upper right"},
|
||||
|
||||
]
|
||||
},
|
||||
'13-5': {
|
||||
'start': {
|
||||
'pierce1': (669, 223),
|
||||
'pierce2': (904, 419),
|
||||
},
|
||||
'action': [
|
||||
# 第一回合
|
||||
{'t': 'click', 'p': (625, 355), 'ec': True, "desc": "1 lower right"},
|
||||
{'t': 'click', 'p': (651, 440), 'ec': True, "wait-over": True, "desc": "2 left"},
|
||||
|
||||
# 第二回合
|
||||
{'t': 'exchange_and_click', 'p': (503, 371), 'ec': True, "desc": "2 left"},
|
||||
{'t': 'choose_and_change', 'p': (503, 371), "desc": "swap 1 2"},
|
||||
{'t': 'click', 'p': (443, 454), "wait-over": True, "desc": "1 lower left"},
|
||||
|
||||
# 第三回合
|
||||
{'t': 'click', 'p': (454, 473), 'ec': True, "desc": "1 left"},
|
||||
{'t': 'click', 'p': (550, 275), 'ec': True, "wait-over": True, "desc": "2 left"},
|
||||
|
||||
# 第四回合
|
||||
{'t': 'click', 'p': (476, 498), "desc": "1 lower left"},
|
||||
]
|
||||
},
|
||||
}
|
||||