mirror of
https://github.com/0O0o0oOoO00/Alas.git
synced 2026-05-14 07:49:25 +08:00
Add: Raid Scuttle function
This commit is contained in:
5
alas.py
5
alas.py
@@ -931,6 +931,11 @@ class AzurLaneAutoScript(AzurLaneAutoScript):
|
|||||||
from module.shop_event.shop_event import EventShop
|
from module.shop_event.shop_event import EventShop
|
||||||
EventShop(config=self.config, device=self.device).run()
|
EventShop(config=self.config, device=self.device).run()
|
||||||
|
|
||||||
|
@disable_all_crack
|
||||||
|
def raid_scuttle(self):
|
||||||
|
from module.raid.scuttle import RaidScuttleRun
|
||||||
|
RaidScuttleRun(config=self.config, device=self.device).run()
|
||||||
|
|
||||||
def hook_op(self):
|
def hook_op(self):
|
||||||
op = self.config.full_config.HookOp_HookOp_Operation
|
op = self.config.full_config.HookOp_HookOp_Operation
|
||||||
if op == "detect":
|
if op == "detect":
|
||||||
|
|||||||
BIN
assets/cn/raid/my_RAID_FLEET_FLAGSHIP.png
Normal file
BIN
assets/cn/raid/my_RAID_FLEET_FLAGSHIP.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/cn/raid/my_RAID_FLEET_VANGUARD.png
Normal file
BIN
assets/cn/raid/my_RAID_FLEET_VANGUARD.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -1288,6 +1288,74 @@
|
|||||||
"Storage": {}
|
"Storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"Scheduler": {
|
||||||
|
"Enable": false,
|
||||||
|
"NextRun": "2020-01-01 00:00:00",
|
||||||
|
"Command": "RaidScuttle",
|
||||||
|
"SuccessInterval": 0,
|
||||||
|
"FailureInterval": 120,
|
||||||
|
"ServerUpdate": "00:00"
|
||||||
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"Sacrifice": "vanguard"
|
||||||
|
},
|
||||||
|
"Raid": {
|
||||||
|
"Mode": "hard",
|
||||||
|
"UseTicket": false
|
||||||
|
},
|
||||||
|
"Campaign": {
|
||||||
|
"Name": "dynamic",
|
||||||
|
"Event": "campaign_main",
|
||||||
|
"Mode": "normal",
|
||||||
|
"UseClearMode": true,
|
||||||
|
"UseFleetLock": true,
|
||||||
|
"UseAutoSearch": false,
|
||||||
|
"Use2xBook": false,
|
||||||
|
"AmbushEvade": true
|
||||||
|
},
|
||||||
|
"StopCondition": {
|
||||||
|
"OilLimit": 1000,
|
||||||
|
"RunCount": 0,
|
||||||
|
"MapAchievement": "non_stop",
|
||||||
|
"StageIncrease": false,
|
||||||
|
"GetNewShip": false,
|
||||||
|
"ReachLevel": 0
|
||||||
|
},
|
||||||
|
"Fleet": {
|
||||||
|
"Fleet1": 1,
|
||||||
|
"Fleet1Formation": "double_line",
|
||||||
|
"Fleet1Mode": "combat_manual",
|
||||||
|
"Fleet1Step": 3,
|
||||||
|
"Fleet2": 2,
|
||||||
|
"Fleet2Formation": "double_line",
|
||||||
|
"Fleet2Mode": "combat_auto",
|
||||||
|
"Fleet2Step": 3,
|
||||||
|
"FleetOrder": "fleet1_all_fleet2_standby"
|
||||||
|
},
|
||||||
|
"Submarine": {
|
||||||
|
"Fleet": 0,
|
||||||
|
"Mode": "do_not_use",
|
||||||
|
"AutoSearchMode": "sub_standby",
|
||||||
|
"DistanceToBoss": "2_grid_to_boss"
|
||||||
|
},
|
||||||
|
"Emotion": {
|
||||||
|
"Mode": "calculate",
|
||||||
|
"Fleet1Value": 119,
|
||||||
|
"Fleet1Record": "2020-01-01 00:00:00",
|
||||||
|
"Fleet1Control": "prevent_yellow_face",
|
||||||
|
"Fleet1Recover": "not_in_dormitory",
|
||||||
|
"Fleet1Oath": false,
|
||||||
|
"Fleet2Value": 119,
|
||||||
|
"Fleet2Record": "2020-01-01 00:00:00",
|
||||||
|
"Fleet2Control": "prevent_yellow_face",
|
||||||
|
"Fleet2Recover": "not_in_dormitory",
|
||||||
|
"Fleet2Oath": false
|
||||||
|
},
|
||||||
|
"Storage": {
|
||||||
|
"Storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Hospital": {
|
"Hospital": {
|
||||||
"Scheduler": {
|
"Scheduler": {
|
||||||
"Enable": false,
|
"Enable": false,
|
||||||
|
|||||||
@@ -8884,6 +8884,450 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"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": "RaidScuttle",
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"SuccessInterval": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 0,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"FailureInterval": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 120,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"ServerUpdate": {
|
||||||
|
"type": "input",
|
||||||
|
"value": "00:00",
|
||||||
|
"display": "hide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"Sacrifice": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "vanguard",
|
||||||
|
"option": [
|
||||||
|
"vanguard",
|
||||||
|
"flagship"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Raid": {
|
||||||
|
"Mode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "hard",
|
||||||
|
"option": [
|
||||||
|
"easy",
|
||||||
|
"normal",
|
||||||
|
"hard",
|
||||||
|
"ex"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"UseTicket": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Campaign": {
|
||||||
|
"Name": {
|
||||||
|
"type": "input",
|
||||||
|
"value": "dynamic",
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Event": {
|
||||||
|
"type": "state",
|
||||||
|
"value": "campaign_main",
|
||||||
|
"option": [
|
||||||
|
"raid_20200624",
|
||||||
|
"raid_20210708",
|
||||||
|
"raid_20220127",
|
||||||
|
"raid_20220630",
|
||||||
|
"raid_20221027",
|
||||||
|
"raid_20230118",
|
||||||
|
"raid_20230629",
|
||||||
|
"raid_20240130",
|
||||||
|
"raid_20240328",
|
||||||
|
"raid_20250116",
|
||||||
|
"raid_20260212"
|
||||||
|
],
|
||||||
|
"option_cn": [
|
||||||
|
"raid_20260212",
|
||||||
|
"raid_20240328",
|
||||||
|
"raid_20250116",
|
||||||
|
"raid_20240130",
|
||||||
|
"raid_20230629",
|
||||||
|
"raid_20230118",
|
||||||
|
"raid_20221027",
|
||||||
|
"raid_20220630",
|
||||||
|
"raid_20220127",
|
||||||
|
"raid_20210708",
|
||||||
|
"raid_20200624"
|
||||||
|
],
|
||||||
|
"option_en": [
|
||||||
|
"raid_20260212",
|
||||||
|
"raid_20240328",
|
||||||
|
"raid_20250116",
|
||||||
|
"raid_20240130",
|
||||||
|
"raid_20230629",
|
||||||
|
"raid_20230118",
|
||||||
|
"raid_20221027",
|
||||||
|
"raid_20220630",
|
||||||
|
"raid_20220127",
|
||||||
|
"raid_20210708",
|
||||||
|
"raid_20200624"
|
||||||
|
],
|
||||||
|
"option_jp": [
|
||||||
|
"raid_20260212",
|
||||||
|
"raid_20240328",
|
||||||
|
"raid_20250116",
|
||||||
|
"raid_20240130",
|
||||||
|
"raid_20230629",
|
||||||
|
"raid_20230118",
|
||||||
|
"raid_20221027",
|
||||||
|
"raid_20220630",
|
||||||
|
"raid_20220127",
|
||||||
|
"raid_20210708",
|
||||||
|
"raid_20200624"
|
||||||
|
],
|
||||||
|
"option_tw": [
|
||||||
|
"raid_20260212",
|
||||||
|
"raid_20250116",
|
||||||
|
"raid_20240130",
|
||||||
|
"raid_20240328",
|
||||||
|
"raid_20230629",
|
||||||
|
"raid_20230118",
|
||||||
|
"raid_20221027",
|
||||||
|
"raid_20220630",
|
||||||
|
"raid_20220127",
|
||||||
|
"raid_20210708",
|
||||||
|
"raid_20200624"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Mode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "normal",
|
||||||
|
"option": [
|
||||||
|
"normal",
|
||||||
|
"hard"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"UseClearMode": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": true,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"UseFleetLock": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": true,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"UseAutoSearch": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Use2xBook": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"AmbushEvade": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": true,
|
||||||
|
"display": "hide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"StopCondition": {
|
||||||
|
"OilLimit": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 1000
|
||||||
|
},
|
||||||
|
"RunCount": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"MapAchievement": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "non_stop",
|
||||||
|
"option": [
|
||||||
|
"non_stop",
|
||||||
|
"100_percent_clear",
|
||||||
|
"map_3_stars",
|
||||||
|
"threat_safe",
|
||||||
|
"threat_safe_without_3_stars"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"StageIncrease": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"GetNewShip": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"ReachLevel": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 0,
|
||||||
|
"display": "hide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fleet": {
|
||||||
|
"Fleet1": {
|
||||||
|
"type": "select",
|
||||||
|
"value": 1,
|
||||||
|
"option": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet1Formation": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "double_line",
|
||||||
|
"option": [
|
||||||
|
"line_ahead",
|
||||||
|
"double_line",
|
||||||
|
"diamond"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet1Mode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "combat_manual",
|
||||||
|
"option": [
|
||||||
|
"combat_manual",
|
||||||
|
"stand_still_in_the_middle",
|
||||||
|
"hide_in_bottom_left",
|
||||||
|
"hide_in_upper_left"
|
||||||
|
],
|
||||||
|
"display": "display"
|
||||||
|
},
|
||||||
|
"Fleet1Step": {
|
||||||
|
"type": "select",
|
||||||
|
"value": 3,
|
||||||
|
"option": [
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2": {
|
||||||
|
"type": "select",
|
||||||
|
"value": 2,
|
||||||
|
"option": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Formation": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "double_line",
|
||||||
|
"option": [
|
||||||
|
"line_ahead",
|
||||||
|
"double_line",
|
||||||
|
"diamond"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Mode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "combat_auto",
|
||||||
|
"option": [
|
||||||
|
"combat_auto",
|
||||||
|
"combat_manual",
|
||||||
|
"stand_still_in_the_middle",
|
||||||
|
"hide_in_bottom_left"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Step": {
|
||||||
|
"type": "select",
|
||||||
|
"value": 3,
|
||||||
|
"option": [
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"FleetOrder": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "fleet1_all_fleet2_standby",
|
||||||
|
"option": [
|
||||||
|
"fleet1_mob_fleet2_boss",
|
||||||
|
"fleet1_boss_fleet2_mob",
|
||||||
|
"fleet1_all_fleet2_standby",
|
||||||
|
"fleet1_standby_fleet2_all"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Submarine": {
|
||||||
|
"Fleet": {
|
||||||
|
"type": "select",
|
||||||
|
"value": 0,
|
||||||
|
"option": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Mode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "do_not_use",
|
||||||
|
"option": [
|
||||||
|
"do_not_use",
|
||||||
|
"every_combat"
|
||||||
|
],
|
||||||
|
"display": "display"
|
||||||
|
},
|
||||||
|
"AutoSearchMode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "sub_standby",
|
||||||
|
"option": [
|
||||||
|
"sub_standby",
|
||||||
|
"sub_auto_call"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"DistanceToBoss": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "2_grid_to_boss",
|
||||||
|
"option": [
|
||||||
|
"to_boss_position",
|
||||||
|
"1_grid_to_boss",
|
||||||
|
"2_grid_to_boss",
|
||||||
|
"use_open_ocean_support"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Emotion": {
|
||||||
|
"Mode": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "calculate",
|
||||||
|
"option": [
|
||||||
|
"calculate",
|
||||||
|
"ignore",
|
||||||
|
"calculate_ignore"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Fleet1Value": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 119
|
||||||
|
},
|
||||||
|
"Fleet1Record": {
|
||||||
|
"type": "datetime",
|
||||||
|
"value": "2020-01-01 00:00:00",
|
||||||
|
"validate": "datetime",
|
||||||
|
"display": "disabled"
|
||||||
|
},
|
||||||
|
"Fleet1Control": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "prevent_yellow_face",
|
||||||
|
"option": [
|
||||||
|
"keep_exp_bonus",
|
||||||
|
"prevent_green_face",
|
||||||
|
"prevent_yellow_face",
|
||||||
|
"prevent_red_face"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet1Recover": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "not_in_dormitory",
|
||||||
|
"option": [
|
||||||
|
"not_in_dormitory",
|
||||||
|
"dormitory_floor_1",
|
||||||
|
"dormitory_floor_2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Fleet1Oath": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false
|
||||||
|
},
|
||||||
|
"Fleet2Value": {
|
||||||
|
"type": "input",
|
||||||
|
"value": 119,
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Record": {
|
||||||
|
"type": "datetime",
|
||||||
|
"value": "2020-01-01 00:00:00",
|
||||||
|
"validate": "datetime",
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Control": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "prevent_yellow_face",
|
||||||
|
"option": [
|
||||||
|
"keep_exp_bonus",
|
||||||
|
"prevent_green_face",
|
||||||
|
"prevent_yellow_face",
|
||||||
|
"prevent_red_face"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Recover": {
|
||||||
|
"type": "select",
|
||||||
|
"value": "not_in_dormitory",
|
||||||
|
"option": [
|
||||||
|
"not_in_dormitory",
|
||||||
|
"dormitory_floor_1",
|
||||||
|
"dormitory_floor_2"
|
||||||
|
],
|
||||||
|
"display": "hide"
|
||||||
|
},
|
||||||
|
"Fleet2Oath": {
|
||||||
|
"type": "checkbox",
|
||||||
|
"value": false,
|
||||||
|
"display": "hide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Storage": {
|
||||||
|
"Storage": {
|
||||||
|
"type": "storage",
|
||||||
|
"value": {},
|
||||||
|
"valuetype": "ignore",
|
||||||
|
"display": "disabled"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Hospital": {
|
"Hospital": {
|
||||||
"Scheduler": {
|
"Scheduler": {
|
||||||
"Enable": {
|
"Enable": {
|
||||||
|
|||||||
@@ -1051,4 +1051,11 @@ EventShop:
|
|||||||
> DR > PR
|
> DR > PR
|
||||||
> AugmentCore > AugmentEnhanceT2 > AugmentChangeT2 > AugmentChangeT1
|
> AugmentCore > AugmentEnhanceT2 > AugmentChangeT2 > AugmentChangeT1
|
||||||
> CatT2 > CatT1 > PlateGeneralT3 > PlateT3 > BoxT4
|
> CatT2 > CatT1 > PlateGeneralT3 > PlateT3 > BoxT4
|
||||||
> ShipSSR
|
> ShipSSR
|
||||||
|
|
||||||
|
# ==================== RaidScuttle ======================
|
||||||
|
|
||||||
|
RaidScuttle:
|
||||||
|
Sacrifice:
|
||||||
|
value: vanguard
|
||||||
|
option: [ vanguard, flagship ]
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
"Event5",
|
"Event5",
|
||||||
"Event6",
|
"Event6",
|
||||||
"Raid",
|
"Raid",
|
||||||
|
"RaidScuttle",
|
||||||
"Hospital",
|
"Hospital",
|
||||||
"Coalition",
|
"Coalition",
|
||||||
"MaritimeEscort",
|
"MaritimeEscort",
|
||||||
|
|||||||
@@ -483,4 +483,50 @@ EventShop:
|
|||||||
Scheduler:
|
Scheduler:
|
||||||
SuccessInterval: 30
|
SuccessInterval: 30
|
||||||
FailureInterval: 30
|
FailureInterval: 30
|
||||||
ServerUpdate: 00:00
|
ServerUpdate: 00:00
|
||||||
|
|
||||||
|
# ==================== RaidScuttle ======================
|
||||||
|
|
||||||
|
RaidScuttle:
|
||||||
|
Campaign:
|
||||||
|
Name: dynamic
|
||||||
|
Event:
|
||||||
|
type: state
|
||||||
|
Mode: normal
|
||||||
|
UseClearMode: true
|
||||||
|
UseFleetLock: true
|
||||||
|
UseAutoSearch: false
|
||||||
|
Use2xBook: false
|
||||||
|
AmbushEvade: true
|
||||||
|
StopCondition:
|
||||||
|
MapAchievement: non_stop
|
||||||
|
StageIncrease: false
|
||||||
|
GetNewShip: false
|
||||||
|
ReachLevel: 0
|
||||||
|
Fleet:
|
||||||
|
Fleet1: 1
|
||||||
|
Fleet1Formation: double_line
|
||||||
|
Fleet1Mode:
|
||||||
|
display: display
|
||||||
|
value: combat_manual
|
||||||
|
option: [ combat_manual, stand_still_in_the_middle, hide_in_bottom_left, hide_in_upper_left ]
|
||||||
|
Fleet1Step: 3
|
||||||
|
Fleet2: 2
|
||||||
|
Fleet2Formation: double_line
|
||||||
|
Fleet2Mode: combat_auto
|
||||||
|
Fleet2Step: 3
|
||||||
|
FleetOrder: fleet1_all_fleet2_standby
|
||||||
|
Submarine:
|
||||||
|
Mode:
|
||||||
|
display: display
|
||||||
|
value: do_not_use
|
||||||
|
option: [ do_not_use, every_combat ]
|
||||||
|
AutoSearchMode: sub_standby
|
||||||
|
DistanceToBoss: 2_grid_to_boss
|
||||||
|
Emotion:
|
||||||
|
Fleet1Control: prevent_yellow_face
|
||||||
|
Fleet2Value: 119
|
||||||
|
Fleet2Record: 2020-01-01 00:00:00
|
||||||
|
Fleet2Control: prevent_yellow_face
|
||||||
|
Fleet2Recover: not_in_dormitory
|
||||||
|
Fleet2Oath: false
|
||||||
@@ -183,6 +183,15 @@ Event:
|
|||||||
- Campaign
|
- Campaign
|
||||||
- StopCondition
|
- StopCondition
|
||||||
- Emotion
|
- Emotion
|
||||||
|
RaidScuttle:
|
||||||
|
- Scheduler
|
||||||
|
- RaidScuttle
|
||||||
|
- Raid
|
||||||
|
- Campaign
|
||||||
|
- StopCondition
|
||||||
|
- Fleet
|
||||||
|
- Submarine
|
||||||
|
- Emotion
|
||||||
Hospital:
|
Hospital:
|
||||||
- Scheduler
|
- Scheduler
|
||||||
- Hospital
|
- Hospital
|
||||||
|
|||||||
@@ -669,5 +669,8 @@ class GeneratedConfig:
|
|||||||
EventShop_PresetFilter = 'all' # all, custom
|
EventShop_PresetFilter = 'all' # all, custom
|
||||||
EventShop_CustomFilter = 'EquipUR > EquipSSR > Cube > GachaTicket\n> Array > Chip > CatT3 \n> Meta > SkinBox\n> Oil > Coin > Medal > ExpBookT1 > FoodT1\n> DR > PR\n> AugmentCore > AugmentEnhanceT2 > AugmentChangeT2 > AugmentChangeT1\n> CatT2 > CatT1 > PlateGeneralT3 > PlateT3 > BoxT4\n> ShipSSR'
|
EventShop_CustomFilter = 'EquipUR > EquipSSR > Cube > GachaTicket\n> Array > Chip > CatT3 \n> Meta > SkinBox\n> Oil > Coin > Medal > ExpBookT1 > FoodT1\n> DR > PR\n> AugmentCore > AugmentEnhanceT2 > AugmentChangeT2 > AugmentChangeT1\n> CatT2 > CatT1 > PlateGeneralT3 > PlateT3 > BoxT4\n> ShipSSR'
|
||||||
|
|
||||||
|
# Group `RaidScuttle`
|
||||||
|
RaidScuttle_Sacrifice = 'vanguard' # vanguard, flagship
|
||||||
|
|
||||||
# Group `Storage`
|
# Group `Storage`
|
||||||
Storage_Storage = {}
|
Storage_Storage = {}
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ class ManualConfig(ManualConfig):
|
|||||||
> Sos > EventSp > EventA > EventB > EventC > EventD
|
> Sos > EventSp > EventA > EventB > EventC > EventD
|
||||||
> RaidDaily > CoalitionSp > WarArchives > MaritimeEscort
|
> RaidDaily > CoalitionSp > WarArchives > MaritimeEscort
|
||||||
> Event > Event2 > Event3 > Event4 > Event5 > Event6
|
> Event > Event2 > Event3 > Event4 > Event5 > Event6
|
||||||
> Raid > Hospital > Coalition
|
> Raid > RaidScuttle > Hospital > Coalition
|
||||||
> Main > Main2 > Main3 > Main4 > Main5 > Main6
|
> Main > Main2 > Main3 > Main4 > Main5 > Main6
|
||||||
> OpsiMeowfficerFarming
|
> OpsiMeowfficerFarming
|
||||||
> GemsFarming
|
> GemsFarming
|
||||||
|
|||||||
@@ -898,6 +898,7 @@ class FullGeneratedConfig:
|
|||||||
|
|
||||||
MAINS += ['Main4', 'Main5', 'Main6']
|
MAINS += ['Main4', 'Main5', 'Main6']
|
||||||
EVENTS += ['Event3', 'Event4', 'Event5', 'Event6']
|
EVENTS += ['Event3', 'Event4', 'Event5', 'Event6']
|
||||||
|
RAIDS += ['RaidScuttle']
|
||||||
|
|
||||||
|
|
||||||
class ConfigGenerator(ConfigGenerator):
|
class ConfigGenerator(ConfigGenerator):
|
||||||
|
|||||||
@@ -964,6 +964,56 @@ class FullGeneratedConfig:
|
|||||||
Raid_Emotion_Fleet2Oath = None
|
Raid_Emotion_Fleet2Oath = None
|
||||||
Raid_Storage_Storage = None
|
Raid_Storage_Storage = None
|
||||||
|
|
||||||
|
# Task `RaidScuttle`
|
||||||
|
RaidScuttle_Scheduler_Enable = None
|
||||||
|
RaidScuttle_Scheduler_NextRun = None
|
||||||
|
RaidScuttle_Scheduler_Command = None
|
||||||
|
RaidScuttle_Scheduler_SuccessInterval = None
|
||||||
|
RaidScuttle_Scheduler_FailureInterval = None
|
||||||
|
RaidScuttle_Scheduler_ServerUpdate = None
|
||||||
|
RaidScuttle_RaidScuttle_Sacrifice = None
|
||||||
|
RaidScuttle_Raid_Mode = None
|
||||||
|
RaidScuttle_Raid_UseTicket = None
|
||||||
|
RaidScuttle_Campaign_Name = None
|
||||||
|
RaidScuttle_Campaign_Event = None
|
||||||
|
RaidScuttle_Campaign_Mode = None
|
||||||
|
RaidScuttle_Campaign_UseClearMode = None
|
||||||
|
RaidScuttle_Campaign_UseFleetLock = None
|
||||||
|
RaidScuttle_Campaign_UseAutoSearch = None
|
||||||
|
RaidScuttle_Campaign_Use2xBook = None
|
||||||
|
RaidScuttle_Campaign_AmbushEvade = None
|
||||||
|
RaidScuttle_StopCondition_OilLimit = None
|
||||||
|
RaidScuttle_StopCondition_RunCount = None
|
||||||
|
RaidScuttle_StopCondition_MapAchievement = None
|
||||||
|
RaidScuttle_StopCondition_StageIncrease = None
|
||||||
|
RaidScuttle_StopCondition_GetNewShip = None
|
||||||
|
RaidScuttle_StopCondition_ReachLevel = None
|
||||||
|
RaidScuttle_Fleet_Fleet1 = None
|
||||||
|
RaidScuttle_Fleet_Fleet1Formation = None
|
||||||
|
RaidScuttle_Fleet_Fleet1Mode = None
|
||||||
|
RaidScuttle_Fleet_Fleet1Step = None
|
||||||
|
RaidScuttle_Fleet_Fleet2 = None
|
||||||
|
RaidScuttle_Fleet_Fleet2Formation = None
|
||||||
|
RaidScuttle_Fleet_Fleet2Mode = None
|
||||||
|
RaidScuttle_Fleet_Fleet2Step = None
|
||||||
|
RaidScuttle_Fleet_FleetOrder = None
|
||||||
|
RaidScuttle_Submarine_Fleet = None
|
||||||
|
RaidScuttle_Submarine_Mode = None
|
||||||
|
RaidScuttle_Submarine_AutoSearchMode = None
|
||||||
|
RaidScuttle_Submarine_DistanceToBoss = None
|
||||||
|
RaidScuttle_Emotion_Mode = None
|
||||||
|
RaidScuttle_Emotion_Fleet1Value = None
|
||||||
|
RaidScuttle_Emotion_Fleet1Record = None
|
||||||
|
RaidScuttle_Emotion_Fleet1Control = None
|
||||||
|
RaidScuttle_Emotion_Fleet1Recover = None
|
||||||
|
RaidScuttle_Emotion_Fleet1Oath = None
|
||||||
|
RaidScuttle_Emotion_Fleet2Value = None
|
||||||
|
RaidScuttle_Emotion_Fleet2Record = None
|
||||||
|
RaidScuttle_Emotion_Fleet2Control = None
|
||||||
|
RaidScuttle_Emotion_Fleet2Recover = None
|
||||||
|
RaidScuttle_Emotion_Fleet2Oath = None
|
||||||
|
RaidScuttle_Storage_Storage = None
|
||||||
|
|
||||||
# Task `Hospital`
|
# Task `Hospital`
|
||||||
Hospital_Scheduler_Enable = None
|
Hospital_Scheduler_Enable = None
|
||||||
Hospital_Scheduler_NextRun = None
|
Hospital_Scheduler_NextRun = None
|
||||||
|
|||||||
@@ -122,6 +122,10 @@
|
|||||||
"name": "Raid",
|
"name": "Raid",
|
||||||
"help": ""
|
"help": ""
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"name": "Task.RaidScuttle.name",
|
||||||
|
"help": "Task.RaidScuttle.help"
|
||||||
|
},
|
||||||
"Hospital": {
|
"Hospital": {
|
||||||
"name": "Valley Hospital",
|
"name": "Valley Hospital",
|
||||||
"help": ""
|
"help": ""
|
||||||
@@ -3602,6 +3606,18 @@
|
|||||||
"help": "To use your own filter, set \"Event Shop Filter\" to \"Custom\". All options have been defined at <https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/filter_string_en>"
|
"help": "To use your own filter, set \"Event Shop Filter\" to \"Custom\". All options have been defined at <https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/filter_string_en>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"_info": {
|
||||||
|
"name": "RaidScuttle._info.name",
|
||||||
|
"help": "RaidScuttle._info.help"
|
||||||
|
},
|
||||||
|
"Sacrifice": {
|
||||||
|
"name": "RaidScuttle.Sacrifice.name",
|
||||||
|
"help": "RaidScuttle.Sacrifice.help",
|
||||||
|
"vanguard": "vanguard",
|
||||||
|
"flagship": "flagship"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Storage": {
|
"Storage": {
|
||||||
"_info": {
|
"_info": {
|
||||||
"name": "Task status",
|
"name": "Task status",
|
||||||
|
|||||||
@@ -122,6 +122,10 @@
|
|||||||
"name": "Raid",
|
"name": "Raid",
|
||||||
"help": ""
|
"help": ""
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"name": "Task.RaidScuttle.name",
|
||||||
|
"help": "Task.RaidScuttle.help"
|
||||||
|
},
|
||||||
"Hospital": {
|
"Hospital": {
|
||||||
"name": "病院探訪",
|
"name": "病院探訪",
|
||||||
"help": ""
|
"help": ""
|
||||||
@@ -3602,6 +3606,18 @@
|
|||||||
"help": "EventShop.CustomFilter.help"
|
"help": "EventShop.CustomFilter.help"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"_info": {
|
||||||
|
"name": "RaidScuttle._info.name",
|
||||||
|
"help": "RaidScuttle._info.help"
|
||||||
|
},
|
||||||
|
"Sacrifice": {
|
||||||
|
"name": "RaidScuttle.Sacrifice.name",
|
||||||
|
"help": "RaidScuttle.Sacrifice.help",
|
||||||
|
"vanguard": "vanguard",
|
||||||
|
"flagship": "flagship"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Storage": {
|
"Storage": {
|
||||||
"_info": {
|
"_info": {
|
||||||
"name": "Storage._info.name",
|
"name": "Storage._info.name",
|
||||||
|
|||||||
@@ -122,6 +122,10 @@
|
|||||||
"name": "共斗活动",
|
"name": "共斗活动",
|
||||||
"help": ""
|
"help": ""
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"name": "共斗沉船",
|
||||||
|
"help": ""
|
||||||
|
},
|
||||||
"Hospital": {
|
"Hospital": {
|
||||||
"name": "深谷来信",
|
"name": "深谷来信",
|
||||||
"help": ""
|
"help": ""
|
||||||
@@ -3602,6 +3606,18 @@
|
|||||||
"help": "使用自定义过滤器需将“活动商店过滤器”设置为“自定义”,并阅读 https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/filter_string_cn"
|
"help": "使用自定义过滤器需将“活动商店过滤器”设置为“自定义”,并阅读 https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/filter_string_cn"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"_info": {
|
||||||
|
"name": "共斗沉船",
|
||||||
|
"help": ""
|
||||||
|
},
|
||||||
|
"Sacrifice": {
|
||||||
|
"name": "牺牲船位置",
|
||||||
|
"help": "",
|
||||||
|
"vanguard": "前排",
|
||||||
|
"flagship": "旗舰"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Storage": {
|
"Storage": {
|
||||||
"_info": {
|
"_info": {
|
||||||
"name": "任务状态",
|
"name": "任务状态",
|
||||||
|
|||||||
@@ -122,6 +122,10 @@
|
|||||||
"name": "共鬥活動",
|
"name": "共鬥活動",
|
||||||
"help": ""
|
"help": ""
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"name": "Task.RaidScuttle.name",
|
||||||
|
"help": "Task.RaidScuttle.help"
|
||||||
|
},
|
||||||
"Hospital": {
|
"Hospital": {
|
||||||
"name": "深谷来信",
|
"name": "深谷来信",
|
||||||
"help": ""
|
"help": ""
|
||||||
@@ -3602,6 +3606,18 @@
|
|||||||
"help": "使用自定義過濾器需將 \"活動商店過濾器\" 設定為 \"自定義過濾器\",並閱讀 https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/filter_string_cn"
|
"help": "使用自定義過濾器需將 \"活動商店過濾器\" 設定為 \"自定義過濾器\",並閱讀 https://github.com/LmeSzinc/AzurLaneAutoScript/wiki/filter_string_cn"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"RaidScuttle": {
|
||||||
|
"_info": {
|
||||||
|
"name": "RaidScuttle._info.name",
|
||||||
|
"help": "RaidScuttle._info.help"
|
||||||
|
},
|
||||||
|
"Sacrifice": {
|
||||||
|
"name": "RaidScuttle.Sacrifice.name",
|
||||||
|
"help": "RaidScuttle.Sacrifice.help",
|
||||||
|
"vanguard": "vanguard",
|
||||||
|
"flagship": "flagship"
|
||||||
|
}
|
||||||
|
},
|
||||||
"Storage": {
|
"Storage": {
|
||||||
"_info": {
|
"_info": {
|
||||||
"name": "任務狀態",
|
"name": "任務狀態",
|
||||||
|
|||||||
8
module/raid/my_assets.py
Normal file
8
module/raid/my_assets.py
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
from module.base.button import Button
|
||||||
|
from module.base.template import Template
|
||||||
|
|
||||||
|
# This file was automatically generated by dev_tools/button_extract.py.
|
||||||
|
# Don't modify it manually.
|
||||||
|
|
||||||
|
my_RAID_FLEET_FLAGSHIP = Button(area={'cn': (402, 168, 462, 228), 'en': (402, 168, 462, 228), 'jp': (402, 168, 462, 228), 'tw': (402, 168, 462, 228)}, color={'cn': (73, 61, 55), 'en': (73, 61, 55), 'jp': (73, 61, 55), 'tw': (73, 61, 55)}, button={'cn': (402, 168, 462, 228), 'en': (402, 168, 462, 228), 'jp': (402, 168, 462, 228), 'tw': (402, 168, 462, 228)}, file={'cn': './assets/cn/raid/my_RAID_FLEET_FLAGSHIP.png', 'en': './assets/cn/raid/my_RAID_FLEET_FLAGSHIP.png', 'jp': './assets/cn/raid/my_RAID_FLEET_FLAGSHIP.png', 'tw': './assets/cn/raid/my_RAID_FLEET_FLAGSHIP.png'})
|
||||||
|
my_RAID_FLEET_VANGUARD = Button(area={'cn': (718, 168, 778, 228), 'en': (718, 168, 778, 228), 'jp': (718, 168, 778, 228), 'tw': (718, 168, 778, 228)}, color={'cn': (51, 50, 54), 'en': (51, 50, 54), 'jp': (51, 50, 54), 'tw': (51, 50, 54)}, button={'cn': (718, 168, 778, 228), 'en': (718, 168, 778, 228), 'jp': (718, 168, 778, 228), 'tw': (718, 168, 778, 228)}, file={'cn': './assets/cn/raid/my_RAID_FLEET_VANGUARD.png', 'en': './assets/cn/raid/my_RAID_FLEET_VANGUARD.png', 'jp': './assets/cn/raid/my_RAID_FLEET_VANGUARD.png', 'tw': './assets/cn/raid/my_RAID_FLEET_VANGUARD.png'})
|
||||||
249
module/raid/scuttle.py
Normal file
249
module/raid/scuttle.py
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
from module.combat.assets import OPTS_INFO_D, BATTLE_STATUS_D, EXP_INFO_D, BATTLE_STATUS_C, EXP_INFO_C
|
||||||
|
from module.exception import ScriptError, CampaignEnd
|
||||||
|
from module.logger import logger
|
||||||
|
from module.raid.assets import RAID_FLEET_PREPARATION
|
||||||
|
from module.raid.my_assets import *
|
||||||
|
from module.raid.combat import RaidCombat
|
||||||
|
from module.raid.raid import raid_entrance
|
||||||
|
from module.raid.run import RaidRun
|
||||||
|
from module.retire.assets import DOCK_CHECK
|
||||||
|
from module.retire.dock import Dock
|
||||||
|
from module.retire.scanner import ShipScanner
|
||||||
|
from module.ui.page import page_raid, page_rpg_stage
|
||||||
|
|
||||||
|
|
||||||
|
class RaidScuttleCombat(RaidCombat):
|
||||||
|
triggered_normal_end = False
|
||||||
|
|
||||||
|
def handle_battle_status(self, drop=None):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
drop (DropImage):
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool:
|
||||||
|
"""
|
||||||
|
if self.is_combat_executing():
|
||||||
|
return False
|
||||||
|
if self.appear(BATTLE_STATUS_D, interval=self.battle_status_click_interval):
|
||||||
|
if drop:
|
||||||
|
drop.handle_add(self)
|
||||||
|
else:
|
||||||
|
self.device.sleep((0.25, 0.5))
|
||||||
|
self.device.click(BATTLE_STATUS_D)
|
||||||
|
return True
|
||||||
|
if self.appear(OPTS_INFO_D, interval=self.battle_status_click_interval):
|
||||||
|
if drop:
|
||||||
|
drop.handle_add(self)
|
||||||
|
else:
|
||||||
|
self.device.sleep((0.25, 0.5))
|
||||||
|
self.device.click(OPTS_INFO_D)
|
||||||
|
return True
|
||||||
|
if super().handle_battle_status(drop=drop):
|
||||||
|
logger.warning("Triggered normal end")
|
||||||
|
self.triggered_normal_end = True
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def handle_exp_info(self):
|
||||||
|
"""
|
||||||
|
Returns:
|
||||||
|
bool:
|
||||||
|
"""
|
||||||
|
if self.is_combat_executing():
|
||||||
|
return False
|
||||||
|
if self.appear_then_click(EXP_INFO_D):
|
||||||
|
self.device.sleep((0.25, 0.5))
|
||||||
|
return True
|
||||||
|
if super().handle_exp_info():
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def handle_combat_weapon_release(self):
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
class RaidScuttleRun(RaidRun, RaidScuttleCombat, Dock):
|
||||||
|
@property
|
||||||
|
def manual_mode(self):
|
||||||
|
return self.config.Fleet_Fleet1Mode
|
||||||
|
|
||||||
|
@property
|
||||||
|
def change_vanguard(self):
|
||||||
|
return 'vanguard' in self.config.RaidScuttle_Sacrifice
|
||||||
|
|
||||||
|
@property
|
||||||
|
def change_flagship(self):
|
||||||
|
return 'flagship' in self.config.RaidScuttle_Sacrifice
|
||||||
|
|
||||||
|
def triggered_stop_condition(self, oil_check=False, pt_check=False, coin_check=False):
|
||||||
|
if self.triggered_normal_end:
|
||||||
|
return True
|
||||||
|
if super().triggered_stop_condition(oil_check, pt_check, coin_check):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def raid_enter_preparation(self, mode, raid, skip_first_screenshot=True):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
mode:
|
||||||
|
raid:
|
||||||
|
skip_first_screenshot:
|
||||||
|
|
||||||
|
Pages:
|
||||||
|
in: page_raid
|
||||||
|
out: BATTLE_PREPARATION
|
||||||
|
"""
|
||||||
|
# UI ensure
|
||||||
|
self.device.stuck_record_clear()
|
||||||
|
self.device.click_record_clear()
|
||||||
|
if not self.is_raid_rpg():
|
||||||
|
self.ui_ensure(page_raid)
|
||||||
|
else:
|
||||||
|
self.ui_ensure(page_rpg_stage)
|
||||||
|
self.raid_rpg_swipe()
|
||||||
|
entrance = raid_entrance(raid=raid, mode=mode)
|
||||||
|
while 1:
|
||||||
|
if skip_first_screenshot:
|
||||||
|
skip_first_screenshot = False
|
||||||
|
else:
|
||||||
|
self.device.screenshot()
|
||||||
|
|
||||||
|
if self.appear(entrance, offset=(10, 10), interval=5):
|
||||||
|
self.device.click(entrance)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# End
|
||||||
|
if self.appear_then_click(RAID_FLEET_PREPARATION, offset=(20, 20), interval=5):
|
||||||
|
break
|
||||||
|
|
||||||
|
def combat_auto_reset(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def raid_execute_once(self, mode, raid):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
mode:
|
||||||
|
raid:
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
in: page_raid
|
||||||
|
out: page_raid
|
||||||
|
"""
|
||||||
|
logger.hr('Raid Execute')
|
||||||
|
self.config.override(
|
||||||
|
Campaign_Name=f'{raid}_{mode}',
|
||||||
|
Campaign_UseAutoSearch=False,
|
||||||
|
Fleet_FleetOrder='fleet1_all_fleet2_standby'
|
||||||
|
)
|
||||||
|
|
||||||
|
if mode == 'ex':
|
||||||
|
backup = self.config.temporary(
|
||||||
|
Submarine_Fleet=1,
|
||||||
|
Submarine_Mode='every_combat'
|
||||||
|
)
|
||||||
|
|
||||||
|
self.emotion.check_reduce(1)
|
||||||
|
|
||||||
|
self.raid_enter(mode=mode, raid=raid)
|
||||||
|
self.combat(balance_hp=False, auto_mode=self.manual_mode, expected_end=self.raid_expected_end)
|
||||||
|
|
||||||
|
if mode == 'ex':
|
||||||
|
backup.recover()
|
||||||
|
|
||||||
|
logger.hr('Raid End')
|
||||||
|
|
||||||
|
def get_common_rarity_ship(self, index='all'):
|
||||||
|
self.dock_favourite_set(False, wait_loading=False)
|
||||||
|
self.dock_sort_method_dsc_set(False, wait_loading=False)
|
||||||
|
self.dock_filter_set(
|
||||||
|
index=index, rarity='common', extra='enhanceable', sort='total'
|
||||||
|
)
|
||||||
|
|
||||||
|
logger.hr('FINDING SHIP')
|
||||||
|
|
||||||
|
scanner = ShipScanner(level=(1, 31), fleet=0, status='free')
|
||||||
|
scanner.disable('rarity')
|
||||||
|
|
||||||
|
return scanner.scan(self.device.image)
|
||||||
|
|
||||||
|
def vanguard_change(self):
|
||||||
|
logger.hr('Change vanguard', level=2)
|
||||||
|
for _ in self.loop():
|
||||||
|
if self.appear(DOCK_CHECK, offset=(20, 20)):
|
||||||
|
break
|
||||||
|
if self.appear(RAID_FLEET_PREPARATION, offset=(20, 20)):
|
||||||
|
self.device.click(my_RAID_FLEET_VANGUARD)
|
||||||
|
continue
|
||||||
|
|
||||||
|
ship = self.get_common_rarity_ship(index='vanguard')
|
||||||
|
if ship:
|
||||||
|
self._ship_change_confirm(min(ship, key=lambda s: (s.level, -s.emotion)).button)
|
||||||
|
logger.info('Change vanguard success')
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
logger.info('Change vanguard failed, no vanguard in common rarity.')
|
||||||
|
self._dock_reset()
|
||||||
|
self.ui_back(check_button=RAID_FLEET_PREPARATION)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def flagship_change(self):
|
||||||
|
logger.hr('Change flagship', level=2)
|
||||||
|
for _ in self.loop():
|
||||||
|
if self.appear(DOCK_CHECK, offset=(20, 20)):
|
||||||
|
break
|
||||||
|
if self.appear(RAID_FLEET_PREPARATION, offset=(20, 20)):
|
||||||
|
self.device.click(my_RAID_FLEET_FLAGSHIP)
|
||||||
|
continue
|
||||||
|
|
||||||
|
ship = self.get_common_rarity_ship(index='main')
|
||||||
|
if ship:
|
||||||
|
self._ship_change_confirm(min(ship, key=lambda s: (s.level, -s.emotion)).button)
|
||||||
|
logger.info('Change flagship success')
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
logger.info('Change flagship failed, no flagship in common rarity.')
|
||||||
|
self._dock_reset()
|
||||||
|
self.ui_back(check_button=RAID_FLEET_PREPARATION)
|
||||||
|
return False
|
||||||
|
|
||||||
|
def run(self, name='', mode='', total=0):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
name (str): Raid name, such as 'raid_20200624'
|
||||||
|
mode (str): Raid mode, such as 'hard', 'normal', 'easy'
|
||||||
|
total (int): Total run count
|
||||||
|
"""
|
||||||
|
name = name if name else self.config.Campaign_Event
|
||||||
|
mode = mode if mode else self.config.Raid_Mode
|
||||||
|
if not name or not mode:
|
||||||
|
raise ScriptError(f'RaidRun arguments unfilled. name={name}, mode={mode}')
|
||||||
|
|
||||||
|
while 1:
|
||||||
|
super().run(name=name, mode=mode, total=total)
|
||||||
|
|
||||||
|
# End
|
||||||
|
if self.triggered_normal_end:
|
||||||
|
self.raid_enter_preparation(mode=mode, raid=name, skip_first_screenshot=False)
|
||||||
|
success = True
|
||||||
|
if self.change_vanguard:
|
||||||
|
success = self.vanguard_change()
|
||||||
|
if self.change_flagship:
|
||||||
|
success = success and self.flagship_change()
|
||||||
|
|
||||||
|
self.enter_map_cancel(skip_first_screenshot=False)
|
||||||
|
self.triggered_normal_end = False
|
||||||
|
|
||||||
|
# Scheduler
|
||||||
|
if self.config.task_switched():
|
||||||
|
self.campaign.ensure_auto_search_exit()
|
||||||
|
self.config.task_stop()
|
||||||
|
elif not success:
|
||||||
|
self.campaign.ensure_auto_search_exit()
|
||||||
|
self.config.task_delay(minute=30)
|
||||||
|
self.config.task_stop()
|
||||||
|
else:
|
||||||
|
break
|
||||||
Reference in New Issue
Block a user