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']); } }