/** * * @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; }
/** * * @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'); }
/** * * @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); }