Ejemplo n.º 1
0
 /**
  * @param Group  $group
  * @param Player $player1
  * @param Player $player2
  *
  * @return GameGearsInterface
  */
 public function create(Group $group, Player $player1, Player $player2)
 {
     $roundSetup = $group->getRound()->getSetup();
     $gameMode = $roundSetup->getGameMode();
     $game = $group->getGameByContestants($player1, $player2);
     if (null === $game) {
         $game = new Game($group, $player1, $player2);
         $this->entityManager->persist($game);
     }
     if (in_array($gameMode->getMode(), GameGearsSimple::getSupportedModes())) {
         $gears = new GameGearsSimple($game);
     } else {
         throw new \InvalidArgumentException('can not create game-gears for ' . $gameMode->getMode());
     }
     $gears->setLegGearsFactory($this->legGearsFactory);
     $gears->setLogger($this->logger);
     $this->eventDispatcher->addSubscriber($gears);
     $this->entityManager->flush();
     return $gears;
 }