From 702297d1c268e9c760daa0356469465174cd7eae Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Wed, 8 Feb 2023 12:32:56 +0800 Subject: [PATCH] Fix: Handle map events in interrupt_auto_search() (fixed #2219) --- module/os/map.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/module/os/map.py b/module/os/map.py index 73c109962..4ee916885 100644 --- a/module/os/map.py +++ b/module/os/map.py @@ -528,10 +528,18 @@ class OSMap(OSFleet, Map, GlobeCamera, StrategicSearchHandler): # Auto search can not handle siren searching device. continue - def interrupt_auto_search(self): + def interrupt_auto_search(self, skip_first_screenshot=True): logger.info('Interrupting auto search') while 1: - self.device.screenshot() + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + # End + if self.ui_page_appear(page_main): + logger.info('Auto search interrupted') + self.config.task_stop() if self.appear_then_click(AUTO_SEARCH_REWARD, offset=(50, 50), interval=3): continue @@ -546,10 +554,12 @@ class OSMap(OSFleet, Map, GlobeCamera, StrategicSearchHandler): continue if self.ui_additional(): continue - # End - if self.ui_page_appear(page_main): - logger.info('Auto search interrupted') - self.config.task_stop() + if self.handle_map_event(): + continue + if self.handle_battle_status(): + continue + if self.handle_exp_info(): + continue def os_auto_search_run(self, drop=None, strategic=False): for _ in range(5):