/** * extract score and multiplier from request and put it into an arrow * * @param Request $request * @return Arrow */ protected function getArrowFromRequest(Request $request) { $score = $request->get('score', 0); $multiplier = $request->get('multiplier', 1); switch ($multiplier) { default: case 1: $multiplier = Arrow::MULTIPLIER_SINGLE; break; case 2: $multiplier = Arrow::MULTIPLIER_DOUBLE; break; case 3: $multiplier = Arrow::MULTIPLIER_TRIPLE; break; } return Arrow::create($score, $multiplier); }
protected function playGame2(TournamentEngineInterface $engine, Ledger $ledger) { /** @var GameGearsInterface $group0Game1Gears */ $group0Game1Gears = $engine->getCurrentRoundGears()->getGameGearsGrouped()[0][2]; $game = $group0Game1Gears->getGame(); $ledger->setGameId($game->getId()); // player 1 $ledger->registerShot(Arrow::create(1, Arrow::MULTIPLIER_SINGLE)); $ledger->registerShot(Arrow::create(20, Arrow::MULTIPLIER_TRIPLE)); $ledger->registerShot(Arrow::create(20, Arrow::MULTIPLIER_TRIPLE)); // player 2 $ledger->registerShot(Arrow::create(7, Arrow::MULTIPLIER_SINGLE)); $ledger->registerShot(Arrow::create(19, Arrow::MULTIPLIER_TRIPLE)); $ledger->registerShot(Arrow::create(16, Arrow::MULTIPLIER_DOUBLE)); // player 1 $ledger->registerShot(Arrow::create(20, Arrow::MULTIPLIER_TRIPLE)); $ledger->registerShot(Arrow::create(20, Arrow::MULTIPLIER_TRIPLE)); $ledger->registerShot(Arrow::create(20, Arrow::MULTIPLIER_TRIPLE)); // player-1 won... $game = $ledger->getGame(); $this->assertTrue($game->isClosed()); }
/** * @param Arrow $arrow * * @return Arrow */ public function setArrow(Arrow $arrow) { switch ($arrow->getNumber()) { case 1: $this->arrow1multiplier = $arrow->getMultiplier(); $this->arrow1score = $arrow->getScore(); $this->arrow1total = $arrow->getTotal(); break; case 2: $this->arrow2multiplier = $arrow->getMultiplier(); $this->arrow2score = $arrow->getScore(); $this->arrow2total = $arrow->getTotal(); break; case 3: $this->arrow3multiplier = $arrow->getMultiplier(); $this->arrow3score = $arrow->getScore(); $this->arrow3total = $arrow->getTotal(); break; } if ($this->isVoid()) { $this->totalScore = 0; } else { $this->totalScore = ($this->arrow1total > 0 ? $this->arrow1total : 0) + ($this->arrow2total > 0 ? $this->arrow2total : 0) + ($this->arrow3total > 0 ? $this->arrow3total : 0); } return $arrow; }
/** * @expectedException \Fda\TournamentBundle\Engine\Bolts\InvalidArrowException */ public function testInvalidMultiplier() { Arrow::create(5, 'quadruple'); }
/** * @inheritDoc */ protected function handleArrow(Arrow $arrow) { // set arrow number // do stuff // return arrow $remainingShots = $this->remainingShots(); $arrowNumber = 4 - $remainingShots; $arrow->setNumber($arrowNumber); $turn = $this->updateTurn($arrow); if ($turn->isVoid() || $turn->isComplete()) { // turn closed! $this->setTurnCompleted($turn); } if ($this->leg->isClosed()) { $this->setLegCompleted($this->leg); } return $arrow; }