/** * @param Game $game * @return Pgn */ private function buildPgnForSaver(Game $game) : Pgn { $headers = ['Event' => 'Game #' . $game->getId(), 'Site' => $this->container->getParameter('app_core_site_host'), 'White' => $game->getUserWhite(), 'Black' => $game->getUserBlack(), 'Result' => $game->getResultWhite() == 0.5 ? '1/2-1/2' : $game->getResultWhite() . '-' . $game->getResultBlack(), 'Date' => $game->getTimeLastMove()->format('Y.m.d')]; if ($game->getTournamentGame()) { $headers['Event'] = $game->getTournamentGame()->getTournament()->getName(); $headers['Round'] = $game->getTournamentGame()->getRound(); } return (new Pgn())->setPgnString($game->getPgn())->setHeaders($headers); }
/** * @param Game $game * @param $status */ public function changeGameStatus(Game $game, $status) { $this->container->get("logger")->debug(__METHOD__ . ' ' . $game->getId() . ' ' . $status); $game->setStatus($status); $this->container->get("event_dispatcher")->dispatch(GameEvents::CHANGE_STATUS_BEFORE, (new GameEvent())->setGame($game)); $this->saveEntity($game); $this->container->get("event_dispatcher")->dispatch(GameEvents::CHANGE_STATUS_AFTER, (new GameEvent())->setGame($game)); }