Beispiel #1
0
    def start(self):

        logger.info(u'Обновляем файл %s...' % items_filename)
        self.game_item_reader = GameItemReader()
        self.game_item_reader.download(items_filename)
        self.game_item_reader.read(items_filename)

        logger.info(u'Логинимся...')
        self.api_user_id, game_auth_key, self.api_access_token, self.connection = self.site.get_game_params(
        )
        self.session = Session(self.api_user_id,
                               game_auth_key,
                               client_version=self.CLIENT_VERSION)
        self.factory = Factory(self.session, None)
        self.request_sender = RequestSender(self.factory, self.connection)
        self.timer = GameTimer()

        logger.info(u'Получаем ключ сессии...')
        key = self.site.get_time_key()
        command = GameTIME(key=key)
        time_response = self.request_sender.send(command)
        server_time = time_response.time
        session_key = time_response.key

        logger.info(u'Синхронизируем время сервера...')
        client_time = self.timer.get_client_time()
        start_time = time.time()
        command = self.site.create_start_command(server_time, client_time)
        sending_time = (time.time() - start_time) * 1000
        self.timer.client_time += sending_time

        logger.info(u'Загружаем игровые данные...')
        self.factory.set_request_id(server_time)
        self.factory.set_session_key(session_key)
        self.factory.set_master(self.account)

        start_response = self.request_sender.send(command)
        self.game_state = GameState(start_response, self.game_item_reader)
        self.game_events_sender = GameEventsSender(self.request_sender)
        self.api = vk.api.API(token=self.api_access_token)

        # Получаем доступ к статистике
        self.statistic = StatisticAccess(self.account)

        # Показываем нашу игровую статистику
        self.show_game_stats()