1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-09 17:29:04 +08:00
AzurLaneAutoScript/module/daemon/daemon.py

71 lines
2.0 KiB
Python
Raw Permalink Normal View History

from module.campaign.campaign_base import CampaignBase
from module.daemon.daemon_base import DaemonBase
from module.exception import CampaignEnd
from module.handler.ambush import MAP_AMBUSH_EVADE
2022-04-15 03:37:54 +08:00
from module.map.map_operation import FLEET_PREPARATION, MAP_PREPARATION
2020-03-29 01:22:46 +08:00
class AzurLaneDaemon(DaemonBase, CampaignBase):
def run(self):
2020-03-29 01:22:46 +08:00
while 1:
self.device.screenshot()
# If is running a combat, do nothing.
if self.is_combat_executing():
continue
# Combat
if self.combat_appear():
self.combat_preparation()
try:
if self.handle_battle_status():
self.combat_status(expected_end='no_searching')
continue
except CampaignEnd:
2020-03-29 01:22:46 +08:00
continue
# Map operation
if self.appear_then_click(MAP_AMBUSH_EVADE, offset=(20, 20)):
2020-03-29 01:22:46 +08:00
self.device.sleep(1)
continue
if self.handle_mystery_items():
2020-03-29 01:22:46 +08:00
continue
# Map preparation
if self.config.Daemon_EnterMap:
if self.appear_then_click(MAP_PREPARATION, offset=(20, 20), interval=2):
2020-03-29 01:22:46 +08:00
continue
2023-10-19 21:36:19 +08:00
if self.appear_then_click(FLEET_PREPARATION, offset=(20, 50), interval=2):
2020-03-29 01:22:46 +08:00
continue
# Retire
if self.handle_retirement():
continue
2020-03-29 01:22:46 +08:00
# Emotion
pass
# Urgent commission
if self.handle_urgent_commission():
continue
# Popups
if self.handle_guild_popup_cancel():
return True
if self.handle_vote_popup():
2020-03-29 01:22:46 +08:00
continue
# Story
if self.story_skip():
continue
2020-03-29 01:22:46 +08:00
# End
# No end condition, stop it manually.
return True
if __name__ == '__main__':
b = AzurLaneDaemon('alas', task='Daemon')
b.run()