protected function check() { // TODO spravit prechecker // $attackedPlayer = $this->params['enemyPlayerUsername']; // foreach ($this->players as $player) { // $user = $player->getUser(); // if ($user['username'] == $attackedPlayer) { // $this->attackedPlayer = $player; // break; // } // } if ($this->attackedPlayer) { if (isset($this->params['additionalCardsName'])) { $additionalCardTitle = $this->params['additionalCardsName']; $method = 'getHas' . ucfirst($additionalCardTitle) . 'OnHand'; $additionalCard = $this->actualPlayer->{$method}(); if ($additionalCard) { $this->cards[] = $additionalCard; if (isset($this->params['place']) && $this->params['place'] != 'hand') { $methods = array('hasAllCardsOnTheTableOrOnWait'); $enemyPlayerHasCardsChecker = new EnemyPlayerHasCardsChecker($this, $methods); $enemyPlayerHasCardsChecker->setCards(array($this->params['enemyCardsName'])); if ($enemyPlayerHasCardsChecker->check()) { $this->check = self::OK; $this->place = $enemyPlayerHasCardsChecker->getPlace(); } else { $this->check = self::NO_CARDS_ON_THE_TABLE; } } else { // TODO sacagaway $handCards = $this->attackedPlayer->getHandCards(); $card = $handCards[array_rand($handCards)]; if ($card) { $this->addEnemyPlayerCard($this->attackedPlayer, $card); $this->check = self::OK; $this->place = 'hand'; } else { $this->check = self::NO_CARDS_ON_HAND; } } } else { $this->check = self::ADDITIONAL_CARD_NOT_IN_HAND; } } else { $this->check = self::YOU_HAVE_TO_USE_ADDITIONAL_CARD; } } else { $this->check = self::PLAYER_NOT_SELECTED; } }
protected function check() { // TODO spravit prechecker // $attackedPlayer = $this->params['enemyPlayerUsername']; // foreach ($this->players as $player) { // $user = $player->getUser(); // if ($user['username'] == $attackedPlayer) { // $this->attackedPlayer = $player; // break; // } // } if ($this->attackedPlayer) { $place = $this->params['place']; if ($place == 'table') { $methods = array('hasAllCardsOnTheTableOrOnWait'); $enemyPlayerHasCardsChecker = new EnemyPlayerHasCardsChecker($this, $methods); $enemyPlayerHasCardsChecker->setCards(array($this->params['enemyCardsName'])); if ($enemyPlayerHasCardsChecker->check()) { $this->check = self::OK; $this->place = $enemyPlayerHasCardsChecker->getPlace(); } else { $this->check = self::NO_CARDS_ON_THE_TABLE; } } else { if ($this->params['enemyCardsName']) { // TODO asi radsej cez idecko lebo ak ma viac rovnakych zobral by som nieco co nechcem $method = 'getHas' . ucfirst($this->params['enemyCardsName']) . 'OnHand'; $card = $this->attackedPlayer->{$method}($this->game); if ($card) { $this->addEnemyPlayerCard($this->attackedPlayer, $card); $this->check = self::OK; $this->place = 'hand'; } } else { $handCards = $this->attackedPlayer->getHandCards(); $card = $handCards[array_rand($handCards)]; if ($card) { $this->addEnemyPlayerCard($this->attackedPlayer, $card); $this->check = self::OK; $this->place = 'hand'; } else { $this->check = self::NO_CARDS_ON_HAND; } } } } else { $this->check = self::PLAYER_NOT_SELECTED; } }
protected function check() { // TODO spravit prechecker $attackedPlayer = $this->params['enemyPlayerUsername']; foreach ($this->players as $player) { $user = $player->getUser(); if ($user['username'] == $attackedPlayer) { $this->enemyPlayer = $player; break; } } if ($this->enemyPlayer) { $attackedUser = $this->enemyPlayer->getUser(); $distance = $this->game->getDistance($this->loggedUser['username'], $attackedUser['username']); if ($distance <= 1) { if (isset($this->params['place']) && $this->params['place'] != 'hand') { $methods = array('hasAllCardsOnTheTableOrOnWait'); $enemyPlayerHasCardsChecker = new EnemyPlayerHasCardsChecker($this, $methods); $enemyPlayerHasCardsChecker->setCards(array($this->params['enemyCardsName'])); if ($enemyPlayerHasCardsChecker->check()) { $this->check = self::OK; $this->place = $enemyPlayerHasCardsChecker->getPlace(); } else { $this->check = self::NO_CARDS_ON_THE_TABLE; } } else { // TODO sacagaway ako v cat balou $handCards = $this->enemyPlayer->getHandCards(); $card = $handCards[array_rand($handCards)]; if ($card) { $this->addEnemyPlayerCard($this->enemyPlayer, $card); $this->check = self::OK; $this->place = 'hand'; } else { $this->check = self::NO_CARDS_ON_HAND; } } } else { $this->check = self::PLAYER_IS_TOO_FAR; } } else { $this->check = self::PLAYER_NOT_SELECTED; } }
protected function check() { // TODO spravit prechecker // $attackedPlayer = $this->params[0]; // foreach ($this->players as $player) { // $user = $player->getUser(); // if ($user['username'] == $attackedPlayer) { // $this->attackedPlayer = $player; // break; // } // } if ($this->attackedPlayer) { $place = $this->params['place']; if ($place == 'table') { $methods = array('hasAllCardsOnTheTableOrOnWait'); $enemyPlayerHasCardsChecker = new EnemyPlayerHasCardsChecker($this, $methods); $enemyPlayerHasCardsChecker->setCards(array($this->params['enemyCardsName'])); if ($enemyPlayerHasCardsChecker->check()) { $this->check = self::OK; $this->place = $enemyPlayerHasCardsChecker->getPlace(); } else { $this->check = self::NO_CARDS_ON_THE_TABLE; } } else { $handCards = $this->attackedPlayer->getHandCards(); $card = $handCards[array_rand($handCards)]; if ($card) { $this->addEnemyPlayerCard($this->attackedPlayer, $card); $this->check = self::OK; $this->place = 'hand'; } else { $this->check = self::NO_CARDS_ON_HAND; } } } else { $this->check = self::PLAYER_NOT_SELECTED; } }