Ejemplo n.º 1
0
 protected static function putCard($params)
 {
     if (GameUtils::checkTurn(self::$game, self::$player)) {
         if (self::$player['phase'] == 2) {
             if ($params) {
                 $cardName = ucfirst(strtolower($params[0]));
                 $methodName = 'getHas' . $cardName . 'OnHand';
                 $card = self::$player->{$methodName}();
                 if ($card) {
                     if ($card->getIsPuttable()) {
                         $playerTo = null;
                         if ($card->getIsVazenie()) {
                             if (isset($params[1])) {
                                 $rival = $params[1];
                                 if (self::$loggedUser['username'] == $rival) {
                                     Chat::addMessage('Nemôžeš dať do väzenie samého seba.', self::$room, User::SYSTEM, self::$loggedUser['id']);
                                 } else {
                                     $rivalPlayer = self::$game->getPlayerByUsername($rival);
                                     if ($rivalPlayer['role']['type'] == Role::SHERIFF) {
                                         Chat::addMessage('Nemôžeš dať do väzenie šerifa.', self::$room, User::SYSTEM, self::$loggedUser['id']);
                                     } else {
                                         $playerTo = $rivalPlayer;
                                     }
                                 }
                             } else {
                                 Chat::addMessage('Musíš určiť, ktorého hráča chceš dať do väzenia.', self::$room, User::SYSTEM, self::$loggedUser['id']);
                             }
                         } elseif ($card->getIsGun() && self::$player->getHasGun()) {
                             // TODO musi najprv odhodit staru zbran ak si chce vylozit novu
                         }
                         GameUtils::putOnTable(self::$game, self::$player, $card, $playerTo);
                     } else {
                         Chat::addMessage('Nemôžeš vyložiť kartu ' . strtolower($cardName), self::$room, User::SYSTEM, self::$loggedUser['id']);
                     }
                 } elseif ($card === 0) {
                     Chat::addMessage('Karta ' . strtolower($cardName) . ' neexistuje.', self::$room, User::SYSTEM, self::$loggedUser['id']);
                 } else {
                     Chat::addMessage('Nemáš ' . strtolower($cardName), self::$room, User::SYSTEM, self::$loggedUser['id']);
                 }
             } else {
                 Chat::addMessage('Musíš určiť, ktorú kartu chceš vyložiť.', self::$room, User::SYSTEM, self::$loggedUser['id']);
             }
         } else {
             Chat::addMessage('Najprv musíš potiahnuť karty. Použi príkaz ".tahaj".', self::$room, User::SYSTEM, self::$loggedUser['id']);
         }
     } else {
         Chat::addMessage('Nie si na rade.', self::$room, User::SYSTEM, self::$loggedUser['id']);
     }
 }