protected function run() { if ($this->check == self::OK) { $cardBaseTypeRepository = new CardBaseTypeRepository(); $validCardBaseTypes = $cardBaseTypeRepository->getByValid(1); $validCardBaseTypesIdList = array(); foreach ($validCardBaseTypes as $cardBaseType) { $validCardBaseTypesIdList[] = $cardBaseType['id']; } $cardRepository = new CardRepository(); $where = array('column' => 'card_base_type', 'value' => $validCardBaseTypesIdList); $cardRepository->addAdditionalWhere($where); $gameSets = unserialize($this->room['game_sets']); if ($gameSets) { $where = array('column' => 'game_set', 'value' => $gameSets); $cardRepository->addAdditionalWhere($where); } $cards = $cardRepository->getCardIds(); shuffle($cards); // TODO prepare High noon draw pile // TODO - other extensions $players = $this->players; foreach ($players as $player) { $playerCards = array(); $character = $player->getAdditionalField('character'); $role = $player->getAdditionalField('role'); $player['actual_lifes'] = $character['lifes']; $cardsCount = $player->getIsBigSpencer() ? 5 : $player['actual_lifes']; for ($i = 0; $i < $cardsCount; $i++) { $playerCards[] = array_pop($cards); } if ($role['type'] == Role::SHERIFF) { $player['phase'] = Player::PHASE_DRAW; $player['actual_lifes'] = $player['actual_lifes'] + 1; } $player['max_lifes'] = $player['actual_lifes']; $player['hand_cards'] = serialize($playerCards); $player['table_cards'] = serialize(array()); $player['wait_cards'] = serialize(array()); $player->save(); } $this->game['draw_pile'] = serialize($cards); $this->game['throw_pile'] = serialize(array()); // musime ulozit hru lebo hracom sa zmenili charaktery $this->game = $this->game->save(TRUE); $this->game = GameUtils::changePositions($this->game); foreach ($this->game->getPlayers() as $player) { if ($player['role'] == Role::SHERIFF) { $this->game['turn'] = $player['id']; break; } } $this->game['game_start'] = time(); $this->game['status'] = Game::GAME_STATUS_STARTED; $matrix = GameUtils::countMatrix($this->game); $this->game['distance_matrix'] = serialize($matrix); $this->game = $this->game->save(TRUE); } }
protected function setup() { $cardAlias = Utils::get('identifier'); $cardBaseTypeRepository = new CardBaseTypeRepository(TRUE); $cardBaseType = $cardBaseTypeRepository->getOneByAlias($cardAlias); if ($cardBaseType) { $cardRepository = new CardRepository(TRUE); $card = $cardRepository->getOneByCardBaseType($cardBaseType['id']); } BangSeo::addTitlePart($card->getTitle()); if ($card->getDescription()) { BangSeo::setDescription($card->getDescription()); } MySmarty::assign('card', $card); }
protected function setup() { // cards $cardBaseTypeRepository = new CardBaseTypeRepository(TRUE); $validCardBaseTypes = $cardBaseTypeRepository->getByValid(1); $validCardBaseTypesIdList = array(); foreach ($validCardBaseTypes as $cardBaseType) { $validCardBaseTypesIdList[] = $cardBaseType['id']; } $cardRepository = new CardRepository(TRUE); $cardRepository->setGroupBy('card_base_type'); $cards = $cardRepository->getAll(); $validCards = array(); $notValidCards = array(); foreach ($cards as $card) { if (in_array($card['card_base_type'], $validCardBaseTypesIdList)) { $validCards[] = $card; } else { $notValidCards[] = $card; } } MySmarty::assign('validCards', $validCards); MySmarty::assign('notValidCards', $notValidCards); // characters $characterRepository = new CharacterRepository(TRUE); $characters = $characterRepository->getAll(); $validCharacters = array(); $notValidCharacters = array(); foreach ($characters as $character) { if ($character['valid'] == 1) { $validCharacters[] = $character; } else { $notValidCharacters[] = $character; } } MySmarty::assign('validCharacters', $validCharacters); MySmarty::assign('notValidCharacters', $notValidCharacters); }
/** * getter for related cards via common card_group_type of their cardBaseType * * @return array<Card> */ public function getRelatedCards() { $cardBaseType = $this->getAdditionalField('cardBaseType'); if ($cardBaseType) { $cardBaseTypeRepository = new CardBaseTypeRepository(); $cardBaseTypeRepository->addAdditionalWhere(array('column' => 'id', 'value' => $this['card_base_type'], 'xxx' => '!=')); $cardBaseTypeList = $cardBaseTypeRepository->getByCardGroupType($cardBaseType['card_group_type']); $cardBaseTypes = array(); foreach ($cardBaseTypeList as $oneCardBaseType) { $cardBaseTypes[] = $oneCardBaseType['id']; } $cardRepository = new CardRepository(); $cardRepository->setGroupBy('card_base_type'); return $cardRepository->getByCardBaseType($cardBaseTypes); } }