Example #1
0
    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)
Example #2
0
    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
Example #3
0
 def app_check():
     if not self.device.app_is_running():
         raise GameNotRunningError('Game not running')