1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-09 18:39:04 +08:00
AzurLaneAutoScript/module/os_handler/map_event.py

65 lines
1.9 KiB
Python
Raw Normal View History

from module.base.timer import Timer
from module.combat.assets import *
from module.os_handler.assets import *
from module.os_handler.enemy_searching import EnemySearchingHandler
class MapEventHandler(EnemySearchingHandler):
def handle_map_get_items(self):
if self.is_in_map():
return False
2020-12-25 13:28:45 +08:00
if self.appear(GET_ITEMS_1, interval=2) \
or self.appear(GET_ITEMS_2, interval=2) \
or self.appear(GET_ITEMS_3, interval=2):
self.device.click(CLICK_SAFE_AREA)
return True
if self.appear(GET_ADAPTABILITY, interval=2):
self.device.click(CLICK_SAFE_AREA)
return True
if self.appear(GET_MEOWFFICER_ITEMS_1, interval=2):
self.device.click(CLICK_SAFE_AREA)
return True
if self.appear(GET_MEOWFFICER_ITEMS_2, interval=2):
self.device.click(CLICK_SAFE_AREA)
return True
return False
def handle_map_archives(self):
if self.appear(MAP_ARCHIVES, interval=5):
self.device.click(CLICK_SAFE_AREA)
return True
if self.appear_then_click(MAP_WORLD, offset=(20, 20), interval=5):
return True
return False
def handle_map_event(self):
if self.handle_map_get_items():
return True
if self.handle_map_archives():
return True
if self.handle_guild_popup_cancel():
return True
if self.handle_story_skip():
return True
return False
def ensure_no_map_event(self, timeout=1.5):
confirm_timer = Timer(timeout, count=int(timeout / 0.5)).start()
while 1:
self.device.screenshot()
if self.handle_map_event():
confirm_timer.reset()
continue
if not self.is_in_map():
confirm_timer.reset()
continue
if confirm_timer.reached():
break