/**
  * get single GameUserLevel instance from a DOMElement
  *
  * @param DOMElement $node
  * @return GameUserLevel
  */
 public static function fromDOMElement(DOMElement $node)
 {
     $o = new GameUserLevel();
     $o->assignByHash(self::domNodeToHash($node, self::$FIELD_NAMES, self::$DEFAULT_VALUES, self::$FIELD_TYPES));
     $o->notifyPristine();
     return $o;
 }
Ejemplo n.º 2
0
 public static function updateXP(GameUsers $user, GameUsers $opponent, $roomGroupId, $action, $gameId = null, $double = 0, $normal = true, $type = null, $time = null)
 {
     $result = new FunctionResult();
     $result->success = false;
     if (!empty($user) && !empty($action)) {
         $gain = 0;
         $xp = $user->getUserXP();
         if ($action == GameUtils::$GAME_RESULT_ACTION_WIN) {
             $gain = (int) GameConstantUtil::getConstant(GameUtils::$CONSTANT_WIN_XP_GAIN);
             if (!$normal) {
                 $gain = $gain * 2;
             }
         } else {
             if ($action == GameUtils::$GAME_RESULT_ACTION_LOST) {
                 if ($type == GameUtils::$GAME_RESULT_ACTION_TYPE_QUIT) {
                     $gain = (int) GameConstantUtil::getConstant(GameUtils::$CONSTANT_QUIT_XP_GAIN);
                 } else {
                     if ($type == GameUtils::$GAME_RESULT_ACTION_TYPE_LEFT || $type == GameUtils::$GAME_RESULT_ACTION_TYPE_TIMESUP) {
                         $gain = (int) GameConstantUtil::getConstant(GameUtils::$CONSTANT_CONN_LOST_XP_GAIN);
                     } else {
                         $gain = (int) GameConstantUtil::getConstant(GameUtils::$CONSTANT_LOSE_XP_GAIN);
                     }
                 }
             } else {
                 $xp = -1;
             }
         }
         if ($xp >= 0) {
             $gameResult = $action . "_" . $normal . "_" . $double . "_" . $type;
             $oppId = null;
             if (!empty($opponent)) {
                 $oppId = $opponent->getUserId();
             }
             if (empty($time)) {
                 $time = time();
             }
             Queue::addUserXPLog($user->userId, $gain, $time, GameUserXpLog::$CONSTANT_LOG_TYPE_GAME, $gameId, $gameResult, $oppId);
             $xp = $xp + $gain;
             $user->setUserXP($xp);
             $userLevel = GameUserLevel::getUserLevel($xp);
             $user->userLevel = $userLevel;
             if (!empty($userLevel) && !empty($userLevel->levelNumber)) {
                 $user->setUserLevelNumber($userLevel->levelNumber);
             }
             $result->success = true;
         } else {
             $result->success = false;
             $result->result = "Action unknown";
         }
     }
     return $result;
 }
Ejemplo n.º 3
0
 public static function createGameUser($fbUser, $accessToken)
 {
     $result = new FunctionResult();
     $errors = array();
     if (empty($fbUser) || empty($fbUser['id'])) {
         array_push($errors, LanguageUtils::getText("LANG_FACEBOOK_USER_CREATE_ERROR_USER_EMPTY"));
         $result->success = false;
         $result->result = $errors;
         unset($errors);
         return $result;
     }
     if (empty($accessToken)) {
         array_push($errors, LanguageUtils::getText("LANG_FACEBOOK_USER_CREATE_ERROR_TOKEN_EMPTY"));
         $result->success = false;
         $result->result = $errors;
         unset($errors);
         return $result;
     }
     $user = GameUsers::create();
     $user->setActive(1);
     $user->setFacebookId($fbUser['id']);
     $user->setOauthToken($accessToken);
     $user->setCoins(GameConstantUtil::getConstant(GameUsers::$CONSTANT_USER_FIRST_COIN));
     if (isset($fbUser['username'])) {
         $user->setUserName($fbUser['username']);
     } else {
         $user->setUserName($fbUser['id']);
     }
     if (isset($fbUser['first_name'])) {
         $user->setUserFirstname($fbUser['first_name']);
     }
     if (isset($fbUser['last_name'])) {
         $user->setUserLastname($fbUser['last_name']);
     }
     if (isset($fbUser['email'])) {
         $user->setUserMail($fbUser['email']);
     }
     $time = time();
     $user->setRegisterDate($time);
     $user->setLastLoginDate($time);
     $user->setLoginCount(1);
     if (isset($fbUser['gender'])) {
         if ($fbUser['gender'] == "male") {
             $user->setGender(1);
         } else {
             if ($fbUser['gender'] == "female") {
                 $user->setGender(0);
             }
         }
     }
     if (isset($fbUser['birthday'])) {
         $user->setBirtday($fbUser['birthday']);
         $user->setBirthdayDate(DBUtils::facebookBirthDayConverter($fbUser['birthday']));
     }
     $user->setPassword(DBUtils::get_uuid());
     $user->setUserXP(0);
     $level = GameUserLevel::getUserLevel(0);
     if (!empty($level)) {
         $user->setUserLevelNumber($level->levelNumber);
     }
     $user->setWinGameCount(0);
     $user->setLostGameCount(0);
     $user->setWinCountQuitGame(0);
     $user->setWinCountConnectionLostGame(0);
     $user->setWinCountDoubleGame(0);
     $user->setLostCountQuitGame(0);
     $user->setLostCountConnectionLostGame(0);
     $user->setLostCountDoubleGame(0);
     $user->insertIntoDatabase(DBUtils::getConnection());
     $result->success = true;
     $result->result = $user;
     Queue::updateUserImage($user->userId);
     unset($user);
     return $result;
 }