diff --git a/module/os/fleet.py b/module/os/fleet.py index 7cfaf2384..b4ed2fe63 100644 --- a/module/os/fleet.py +++ b/module/os/fleet.py @@ -285,6 +285,8 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh): if confirm_timer is None: confirm_timer = Timer(0.8, count=2) result = set() + # Record story history to clear click record + clicked_story = False confirm_timer.reset() while 1: @@ -294,9 +296,21 @@ class OSFleet(OSCamera, Combat, Fleet, OSAsh): self.device.screenshot() # Map event - if self.handle_map_event(drop=drop): + event = self.handle_map_event(drop=drop) + if event: confirm_timer.reset() result.add('event') + if event == 'story_skip': + clicked_story = True + elif event == 'map_get_items': + # story_skip -> map_get_items means abyssal progress reward is received + if clicked_story: + logger.info('Got items from story') + self.device.click_record_clear() + clicked_story = False + else: + # Handled other events, clear history + clicked_story = False continue if self.handle_retirement(): confirm_timer.reset() diff --git a/module/os_handler/map_event.py b/module/os_handler/map_event.py index 70574d1bc..dfc2c9332 100644 --- a/module/os_handler/map_event.py +++ b/module/os_handler/map_event.py @@ -150,24 +150,24 @@ class MapEventHandler(EnemySearchingHandler): drop (DropImage): Returns: - bool: If clicked to handle any map event. + str: Event that handled """ if self.handle_map_get_items(drop=drop): - return True + return 'map_get_items' if self.handle_os_game_tips(): - return True + return 'os_game_tips' if self.handle_map_archives(drop=drop): - return True + return 'map_archives' if self.handle_guild_popup_cancel(): - return True + return 'guild_popup_cancel' if self.handle_ash_popup(): - return True + return 'ash_popup' if self.handle_urgent_commission(drop=drop): - return True + return 'urgent_commission' if self.handle_story_skip(): - return True + return 'story_skip' - return False + return '' _os_in_map_confirm_timer = Timer(1.5, count=3)