def ui_get_current_page(self): self.device.screenshot() for page in self.ui_pages: if self.ui_page_appear(page=page): logger.attr('UI', page.name) self.ui_current = page return page logger.info('Unknown ui page') if self.appear_then_click(GOTO_MAIN, offset=(20, 20)): logger.info('Goto page_main') self.ui_current = page_unknown self.ui_goto(page_main, skip_first_screenshot=True) if hasattr(self, 'ui_current'): logger.warning( f'Unrecognized ui_current, using previous: {self.ui_current}') else: logger.info('Unable to goto page_main') logger.warning('Starting from current page is not supported') logger.warning( f'Supported page: {[str(page) for page in self.ui_pages]}') logger.warning( f'Supported page: Any page with a "HOME" button on the upper-right' ) if not self.device.app_is_running(): raise GameNotRunningError('Game not running') else: exit(1)
def ui_get_current_page(self, skip_first_screenshot=True): """ Args: skip_first_screenshot: Returns: Page: """ if not skip_first_screenshot or not hasattr( self.device, 'image') or self.device.image is None: self.device.screenshot() # Known pages for page in self.ui_pages: if page.check_button is None: continue if self.ui_page_appear(page=page): logger.attr('UI', page.name) self.ui_current = page return page # Unknown page but able to handle logger.info('Unknown ui page') if self.appear_then_click(GOTO_MAIN, offset=(20, 20)) or self.ui_additional(): logger.info('Goto page_main') self.ui_current = page_unknown self.ui_goto(page_main, skip_first_screenshot=True) # Unknown page, need manual switching if hasattr(self, 'ui_current'): logger.warning( f'Unrecognized ui_current, using previous: {self.ui_current}') else: logger.info('Unable to goto page_main') logger.attr('EMULATOR__SCREENSHOT_METHOD', self.config.Emulator_ScreenshotMethod) logger.attr('EMULATOR__CONTROL_METHOD', self.config.Emulator_ControlMethod) logger.attr('SERVER', self.config.SERVER) logger.warning('Starting from current page is not supported') logger.warning( f'Supported page: {[str(page) for page in self.ui_pages]}') logger.warning( f'Supported page: Any page with a "HOME" button on the upper-right' ) if not self.device.app_is_running(): raise GameNotRunningError('Game not running') else: logger.critical( 'Please switch to a supported page before starting Alas') raise RequestHumanTakeover
def app_check(): if not self.device.app_is_running(): raise GameNotRunningError('Game not running')