Example #1
0
 /**
  *
  * @return Ultimatum_Model_Ultplayers
  */
 public static function for_user_game($pUser, $pGame, $pSpawn = TRUE)
 {
     if (is_numeric($pUser)) {
         $pUser = Model_Users::getInstance()->get($pUser);
     }
     if (is_numeric($pGame)) {
         $pGame = Ultimatum_Model_Ultgames::getInstance()->get($pGame);
     }
     //@TODO: better validation
     if (!$pUser || !$pUser->is_saved()) {
         throw new Exception(__METHOD__ . ': no user passed');
     }
     $params = array('user' => $pUser->identity(), 'game' => $pGame->identity());
     if (!($player = self::getInstance()->findOne($params))) {
         if ($pSpawn) {
             $player = new Ultimatum_Model_Ultplayers();
             $player->set_fields($params);
             $player->save();
         }
     }
     return $player;
 }
 /**
  *
  */
 public function run()
 {
     $user = Model_Users::current_user();
     if ($user) {
         $pi = Ultimatum_Model_Ultplayers::getInstance();
         $params = array('user' => $user->identity(), 'active' => 1, 'status' => 'active');
         $active_games = $pi->find($params, 'id DESC');
         foreach ($active_games as $ag) {
             $ag->active = FALSE;
             $ag->save();
         }
     } else {
         $this->view()->nouser = true;
     }
     return $this->forward('index');
 }
 /**
  * @return Ultimatum_Model_Ultplayers;
  */
 function get_player($pReload = FALSE)
 {
     if ($pReload || is_null($this->_player)) {
         // process
         $this->_player = Ultimatum_Model_Ultplayers::getInstance()->get($this->player);
     }
     return $this->_player;
 }
Example #4
0
 /**
  *
  * @return int[]
  */
 public function player_ids()
 {
     $table = $player_ids = Ultimatum_Model_Ultplayers::getInstance()->table();
     $sql = sprintf('SELECT id FROM %s where game = ?', $table->tableName());
     $player_ids = $table->getAdapter()->fetchCol($sql, $this->identity());
     return $player_ids;
 }
 public function gamesstoreAction()
 {
     $pt = Ultimatum_Model_Ultplayers::getInstance();
     $pl = $pt->find(array('user' => Model_Users::current_user()->identity()));
     $data = array();
     foreach ($pl as $p) {
         $game = $p->get_game();
         if ($game->status == 'started') {
             $row = $game->toArray();
             $players = $game->players(TRUE);
             $turn = $game->turn(TRUE);
             $row['players'] = count($players);
             $row['turn'] = $turn;
             $data[] = $row;
         }
     }
     ksort($data);
     $this->_store('id', $data, 'name');
 }
Example #6
0
 /**
  *
  * @param int | Model_Users $pUser
  * @return 
  */
 public function add_player($pUser)
 {
     return Ultimatum_Model_Ultplayers::for_user_game($pUser, $this);
 }
 /**
  * Note - this is the SCANNING player, not the owner of the group.
  * @return Ultimatum_Model_Ultplayer;
  */
 public function get_player()
 {
     return Ultimatum_Model_Ultplayers::getInstance()->get($this->player);
 }