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; }
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; }