Added Leveling

This commit is contained in:
ZKWolf
2024-04-25 03:27:38 +02:00
parent d15cb4c59b
commit 292fd1d9ce
2 changed files with 132 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ from logic.time_handler import get_lifetime
# from logic.challenge_handler import get_progression_batch, update_progression_batch, get_time_based_challenges
from logic.hash_handler import hash_handler
from logic.challenge_handler_new import new_challenge_handler, get_challenge_ids_from_inventory
from logic.level_handler import update_user_xp
import json
import os

131
src/logic/level_handler.py Normal file
View File

@@ -0,0 +1,131 @@
import math
from flask_definitions import *
# 'RunnerGroupA': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'RunnerGroupB': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'RunnerGroupC': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'RunnerGroupD': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'RunnerGroupE': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'RunnerGroupF': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'HunterGroupA': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'HunterGroupB': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'HunterGroupC': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'HunterGroupD': {
# 'prestige': 0,
# 'experience': {
# 'level': 1,
# 'experienceToReach': 5403,
# 'currentExperience': 0
# },
# },
# 'RunnerProgression':{
# "experience": {
# "level": 1,
# "experienceToReach": 5,
# "currentExperience": 3
# }
# },
# 'HunterProgression': {
# "experience": {
# "level": 1,
# "experienceToReach": 5,
# "currentExperience": 3
# }
# },
# 'PlayerProgression': {
# "experience": {
# "level": 1,
# "experienceToReach": 5,
# "currentExperience": 3
# }
# },
# 'ProfileMetaData': {
# 'characterCumulativeExperience': 0
# }
def get_xp_for_new_level(level):
xp = 5000 * 1.2 ** level - 1
xp = math.ceil(xp)
return xp
def update_user_xp(user_id, xp, characterGroup):
# todo Find out what PlayerProgression, HunterProgression and RunnerProgression are
user_data_raw = mongo.get_data_with_list(login=user_id, login_steam=False, items={characterGroup, "ProfileMetaData"})
user_data = user_data_raw[characterGroup]
profile_meta_data = user_data_raw['ProfileMetaData']
current_xp = user_data['experience']['currentExperience']
new_experience = current_xp + xp
if new_experience >= user_data['experience']['experienceToReach']:
overflow = new_experience - user_data['experience']['experienceToReach']
user_data['experience']['level'] += 1
user_data['experience']['experienceToReach'] = get_xp_for_new_level(user_data['experience']['level'])
user_data['experience']['currentExperience'] = overflow
else:
user_data['experience']['currentExperience'] = new_experience
profile_meta_data['characterCumulativeExperience'] += xp
mongo.write_data_with_list(login=user_id, login_steam=False, items_dict={characterGroup: user_data,
"ProfileMetaData": profile_meta_data})