public static function set(TeamRepositoryInterface $team, array $players) { $order = 0; $team->resetPlayersPosition(); //GoalKeeper $goalKeeper = array_pop($players); $team->addPlayerAtPosition(PlayerPositions::GoalKeeper, $goalKeeper["id"], ++$order); //Defenders for ($i = 0; $i < $team->getFormation()->defense; $i++) { $player = array_pop($players); $team->addPlayerAtPosition(PlayerPositions::Defense, $player["id"], ++$order); } //Midfielders for ($i = 0; $i < $team->getFormation()->midfield; $i++) { $player = array_pop($players); $team->addPlayerAtPosition(PlayerPositions::Midfield, $player["id"], ++$order); } //Attackers for ($i = 0; $i < $team->getFormation()->attack; $i++) { $player = array_pop($players); $team->addPlayerAtPosition(PlayerPositions::Attack, $player["id"], ++$order); } if ($team->getNumberOfEligiblePlayersForMatch() != 11) { $formation = new Formation($team->getFormation(), $team); $formation->spreadPlayersOnPositions(); throw new \Exception("The team should have 11 players in order to be able to play a match"); } }
public function postTeamFormation(Request $request) { $formationStructure = FormationFactory::getFormationStructure($request->get("formation")); $this->team->setFormation($formationStructure); $formation = new Formation($formationStructure, $this->team); $formation->spreadPlayersOnPositions(); return ['active' => $this->team->getActivePlayers(), 'passive' => $this->team->getPasivePlayers()]; }