Пример #1
0
 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);
     }
 }
Пример #2
0
 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);
 }
Пример #3
0
 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);
 }
Пример #4
0
 /**
  * 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);
     }
 }