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);
 }
Exemple #3
0
 /**
  * @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;
 }
Exemple #4
0
 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);
 }
Exemple #6
0
 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);
 }