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