public function expandPlayer(Player $player) { return sprintf('player(%s,%s,%s,%s) %s', $player->getColor(), $player->getIsAi() ? 'AI' : $player->getUsernameWithElo(), $player->getGame()->hasClock() ? $player->getGame()->getClock()->getRemainingTime($player->getColor()) . 's.' : '-', $this->generator->generate('lichess_player', array('id' => $player->getFullId()), true), $this->expandGame($player->getGame())); }
public function join(Player $player, array $messages) { $this->post('join/' . $player->getFullId(), array("redirect" => $this->url('lichess_player', array('id' => $player->getOpponent()->getFullId())), "messages" => $this->encodeMessages($messages), "entry" => $this->encodeLobbyEntry($player->getGame()))); }
public function renderGameData(Player $player, $possibleMoves, $isOpponentActive) { $game = $player->getGame(); $gameId = $game->getId(); $color = $player->getColor(); $opponent = $player->getOpponent(); $playerFullId = $player->getFullId(); $generator = $this->getRouterGenerator(); $translator = $this->getTranslator(); $locale = $this->container->get('session')->getLocale(); $data = array('game' => array('id' => $game->getId(), 'started' => $game->getIsStarted(), 'finished' => $game->getIsFinishedOrAborted(), 'clock' => $game->hasClock(), 'player' => $game->getTurnPlayer()->getColor(), 'turns' => $game->getTurns(), 'last_move' => $game->getLastMove()), 'player' => array('color' => $player->getColor(), 'version' => $player->getStack()->getVersion(), 'spectator' => false, 'alive_key' => $this->container->get('lichess.memory')->getPlayerKey($player)), 'opponent' => array('color' => $opponent->getColor(), 'ai' => $opponent->getIsAi(), 'active' => $isOpponentActive), 'url' => array('sync' => $this->getXhrUrlPrefix() . $generator->generate('lichess_sync', array('l' => $locale, 'id' => $gameId, 'color' => $color, 'version' => 9999999, 'playerFullId' => $playerFullId)), 'table' => $generator->generate('lichess_table', array('id' => $gameId, 'color' => $color, 'playerFullId' => $playerFullId)), 'opponent' => $generator->generate('lichess_opponent', array('id' => $gameId, 'color' => $color, 'playerFullId' => $playerFullId)), 'move' => $generator->generate('lichess_move', array('id' => $playerFullId)), 'say' => $generator->generate('lichess_say', array('id' => $playerFullId, 'version' => 9999999)), 'outoftime' => $game->hasClock() ? $generator->generate('lichess_outoftime', array('id' => $playerFullId)) : null), 'i18n' => array('Game Over' => $translator->trans('Game Over'), 'Waiting for opponent' => $translator->trans('Waiting for opponent'), 'Your turn' => $translator->trans('Your turn')), 'possible_moves' => $possibleMoves, 'sync_latency' => $this->container->getParameter('lichess.sync.latency') * 1000, 'animation_delay' => $this->container->getParameter('lichess.animation.delay') * 1000, 'locale' => $locale, 'debug' => $this->container->getParameter('kernel.debug')); return sprintf('<script type="text/javascript">var lichess_data = %s;</script>', json_encode($data)); }
public function renderGameData(Player $player, $version, $possibleMoves) { $game = $player->getGame(); $gameId = $game->getId(); $color = $player->getColor(); $opponent = $player->getOpponent(); $playerFullId = $player->getFullId(); $generator = $this->getUrlGenerator(); $translator = $this->getTranslator(); $data = array('game' => array('id' => $game->getId(), 'started' => $game->getIsStarted(), 'finished' => $game->getIsFinishedOrAborted(), 'clock' => $game->hasClock(), 'player' => $game->getTurnPlayer()->getColor(), 'turns' => $game->getTurns(), 'last_move' => $game->getLastMove()), 'player' => array('id' => $player->getId(), 'color' => $player->getColor(), 'version' => $version, 'spectator' => false), 'opponent' => array('color' => $opponent->getColor(), 'ai' => $opponent->getIsAi()), 'url' => array('table' => $generator->generate('lichess_table', array('id' => $gameId, 'color' => $color, 'playerFullId' => $playerFullId)), 'players' => $generator->generate('lichess_game_players', array('id' => $gameId))), 'possible_moves' => $possibleMoves, 'animation_delay' => round($this->container->getParameter('lichess.animation.delay') * 1000 * self::animationDelayFactor($game->estimateTotalTime())), 'debug' => $this->container->getParameter('kernel.debug')); return sprintf('<script type="text/javascript">var lichess_data = %s;</script>', json_encode($data)); }