public function set(Player $player, Stats $stats) { $builder = $this->gameRepository->findByPlayer($player->getId()); $builder->setMaxResults(50); $builder->orderBy('game.date', 'DESC'); $results = $builder->getQuery()->getResult(); $stats->setGames($results); }
public function set(Player $player, Stats $stats) { $results = $this->gameRepository->getGamesPrDay($player); $out = []; foreach ($results as $res) { $out[] = new PlayerGamesPrDay($res['counter'], $res['date']); } $stats->setGamesPrDay($out); }
/** * @param Player $player * @param SinglePlayerStats|null $stats * @return SinglePlayerStats */ public function getSinglePlayerStats(Player $player, SinglePlayerStats $stats = null) { if ($stats === null) { $stats = new SinglePlayerStats(); $stats->setData($player); } foreach ($this->singlePlayerStats as $provider) { $provider->set($player, $stats); } return $stats; }
public function set(Player $player, Stats $stats) { $builder = $this->gameRepository->findLostGamesByPlayer($player->getId()); $builder->select($builder->expr()->count('game.id')); $value = $builder->getQuery()->getSingleScalarResult(); if ($value == 0) { $stat = new Stat('Total lost', $value, 0); } else { $stat = new Stat('Total lost', $value, $value / $this->totalGames($player) * 100); } $stats->addStat($stat); }
public function set(Player $player, Stats $stats) { $builder = $this->gameRepository->findByPlayer($player->getId()); $builder->select('COUNT(game.id)'); $builder->andWhere($builder->expr()->eq('game.wintype', Game::WINTYPE_BACKGAMMON)); $result = $builder->getQuery()->getSingleScalarResult(); if ($result == 0) { $stat = new Stat('Total backgammons', $result, 0); } else { $stat = new Stat('Total backgammons', $result, round($result / $this->totalGames($player) * 100, 2)); } $stats->addStat($stat); }
public function set(Player $player, Stats $stats) { $players = $this->loadPlayers(); $rsm = new ResultSetMapping(); $rsm->addScalarResult('player1_id', 'p1', 'integer'); $rsm->addScalarResult('player2_id', 'p2', 'integer'); $rsm->addScalarResult('winner', 'winner', 'integer'); $sql = 'SELECT player1_id, player2_id, winner FROM game WHERE player1_id = :p1 OR player2_id = :p2'; $nsql = $this->gameRepository->getManager()->createNativeQuery($sql, $rsm); $nsql->setParameter(':p1', $player->getId(), 'integer'); $nsql->setParameter(':p2', $player->getId(), 'integer'); $results = $nsql->execute(); $matches = []; foreach ($results as $result) { $this->addResult($player, $result, $matches); } foreach ($matches as $opponent => $result) { $stats->addAgainst(new AgainstPlayerWinRate($result['wins'], $result['lost'], $players[$opponent])); } }
public function set(Player $player, Stats $stats) { $stat = new Stat('Total games', $this->totalGames($player)); $stats->addStat($stat); }