/** * Handling of putting $card by $player in WarGame * * @param Card $card * @param Player $player */ public function putCardByPlayer(Card $card, Player $player) { parent::putCardByPlayer($card, $player); $playerCardsSituatedCount = $this->gameTable->countSituatedCardPlayer($player); if ($playerCardsSituatedCount % 2 === 0) { $card->setVisible(false); } else { $card->setVisible(true); } $cardsCandPutByPlayerCount = $this->getMovementCountForPlayer($player); $this->setMovementCountForPlayer($player, --$cardsCandPutByPlayerCount); if (false === $this->isPlayerWhoHasMovement()) { if ($this->isWarFromLastSituatedCards()) { $this->addHowManyMovementsCanDoPlayersOnWar(); if ($this->isAnyPlayerLoser()) { $this->endAndStartRound(); } } elseif ($this->isOneHighestCardPutted()) { $this->endAndStartRound(); } } }
/** * Put card by player on GameTable * * @param Card $card */ public function putCard(Card $card) { $this->checkIsGameSetForPlayer(); $this->game->putCardByPlayer($card, $this); }