Example #1
0
 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;
     }
 }
Example #2
0
 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;
     }
 }
Example #3
0
 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;
     }
 }
Example #4
0
 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;
     }
 }