Files
my-botty/src/utils/levels.py
T

128 lines
8.6 KiB
Python

levels = {}
levels[1] = levels[0] = { "lvl":1, "exp":0, "xp_to_next":500 }
levels[2] = levels[500] = { "lvl":2, "exp":500, "xp_to_next":1000 }
levels[3] = levels[1500] = { "lvl":3, "exp":1500, "xp_to_next":2250 }
levels[4] = levels[3750] = { "lvl":4, "exp":3750, "xp_to_next":4125 }
levels[5] = levels[7875] = { "lvl":5, "exp":7875, "xp_to_next":6300 }
levels[6] = levels[14175] = { "lvl":6, "exp":14175, "xp_to_next":8505 }
levels[7] = levels[22680] = { "lvl":7, "exp":22680, "xp_to_next":10206 }
levels[8] = levels[32886] = { "lvl":8, "exp":32886, "xp_to_next":11510 }
levels[9] = levels[44396] = { "lvl":9, "exp":44396, "xp_to_next":13319 }
levels[10] = levels[57715] = { "lvl":10, "exp":57715, "xp_to_next":14429 }
levels[11] = levels[72144] = { "lvl":11, "exp":72144, "xp_to_next":18036 }
levels[12] = levels[90180] = { "lvl":12, "exp":90180, "xp_to_next":22545 }
levels[13] = levels[112725] = { "lvl":13, "exp":112725, "xp_to_next":28181 }
levels[14] = levels[140906] = { "lvl":14, "exp":140906, "xp_to_next":35226 }
levels[15] = levels[176132] = { "lvl":15, "exp":176132, "xp_to_next":44033 }
levels[16] = levels[220165] = { "lvl":16, "exp":220165, "xp_to_next":55042 }
levels[17] = levels[275207] = { "lvl":17, "exp":275207, "xp_to_next":68801 }
levels[18] = levels[344008] = { "lvl":18, "exp":344008, "xp_to_next":86002 }
levels[19] = levels[430010] = { "lvl":19, "exp":430010, "xp_to_next":107503 }
levels[20] = levels[537513] = { "lvl":20, "exp":537513, "xp_to_next":134378 }
levels[21] = levels[671891] = { "lvl":21, "exp":671891, "xp_to_next":167973 }
levels[22] = levels[839864] = { "lvl":22, "exp":839864, "xp_to_next":209966 }
levels[23] = levels[1049830] = { "lvl":23, "exp":1049830, "xp_to_next":262457 }
levels[24] = levels[1312287] = { "lvl":24, "exp":1312287, "xp_to_next":328072 }
levels[25] = levels[1640359] = { "lvl":25, "exp":1640359, "xp_to_next":410090 }
levels[26] = levels[2050449] = { "lvl":26, "exp":2050449, "xp_to_next":512612 }
levels[27] = levels[2563061] = { "lvl":27, "exp":2563061, "xp_to_next":640765 }
levels[28] = levels[3203826] = { "lvl":28, "exp":3203826, "xp_to_next":698434 }
levels[29] = levels[3902260] = { "lvl":29, "exp":3902260, "xp_to_next":761293 }
levels[30] = levels[4663553] = { "lvl":30, "exp":4663553, "xp_to_next":829810 }
levels[31] = levels[5493363] = { "lvl":31, "exp":5493363, "xp_to_next":904492 }
levels[32] = levels[6397855] = { "lvl":32, "exp":6397855, "xp_to_next":985897 }
levels[33] = levels[7383752] = { "lvl":33, "exp":7383752, "xp_to_next":1074627 }
levels[34] = levels[8458379] = { "lvl":34, "exp":8458379, "xp_to_next":1171344 }
levels[35] = levels[9629723] = { "lvl":35, "exp":9629723, "xp_to_next":1276765 }
levels[36] = levels[10906488] = { "lvl":36, "exp":10906488, "xp_to_next":1391674 }
levels[37] = levels[12298162] = { "lvl":37, "exp":12298162, "xp_to_next":1516924 }
levels[38] = levels[13815086] = { "lvl":38, "exp":13815086, "xp_to_next":1653448 }
levels[39] = levels[15468534] = { "lvl":39, "exp":15468534, "xp_to_next":1802257 }
levels[40] = levels[17270791] = { "lvl":40, "exp":17270791, "xp_to_next":1964461 }
levels[41] = levels[19235252] = { "lvl":41, "exp":19235252, "xp_to_next":2141263 }
levels[42] = levels[21376515] = { "lvl":42, "exp":21376515, "xp_to_next":2333976 }
levels[43] = levels[23710491] = { "lvl":43, "exp":23710491, "xp_to_next":2544034 }
levels[44] = levels[26254525] = { "lvl":44, "exp":26254525, "xp_to_next":2772997 }
levels[45] = levels[29027522] = { "lvl":45, "exp":29027522, "xp_to_next":3022566 }
levels[46] = levels[32050088] = { "lvl":46, "exp":32050088, "xp_to_next":3294598 }
levels[47] = levels[35344686] = { "lvl":47, "exp":35344686, "xp_to_next":3591112 }
levels[48] = levels[38935798] = { "lvl":48, "exp":38935798, "xp_to_next":3914311 }
levels[49] = levels[42850109] = { "lvl":49, "exp":42850109, "xp_to_next":4266600 }
levels[50] = levels[47116709] = { "lvl":50, "exp":47116709, "xp_to_next":4650593 }
levels[51] = levels[51767302] = { "lvl":51, "exp":51767302, "xp_to_next":5069147 }
levels[52] = levels[56836449] = { "lvl":52, "exp":56836449, "xp_to_next":5525370 }
levels[53] = levels[62361819] = { "lvl":53, "exp":62361819, "xp_to_next":6022654 }
levels[54] = levels[68384473] = { "lvl":54, "exp":68384473, "xp_to_next":6564692 }
levels[55] = levels[74949165] = { "lvl":55, "exp":74949165, "xp_to_next":7155515 }
levels[56] = levels[82104680] = { "lvl":56, "exp":82104680, "xp_to_next":7799511 }
levels[57] = levels[89904191] = { "lvl":57, "exp":89904191, "xp_to_next":8501467 }
levels[58] = levels[98405658] = { "lvl":58, "exp":98405658, "xp_to_next":9266598 }
levels[59] = levels[107672256] = { "lvl":59, "exp":107672256, "xp_to_next":10100593 }
levels[60] = levels[117772849] = { "lvl":60, "exp":117772849, "xp_to_next":11009646 }
levels[61] = levels[128782495] = { "lvl":61, "exp":128782495, "xp_to_next":12000515 }
levels[62] = levels[140783010] = { "lvl":62, "exp":140783010, "xp_to_next":13080560 }
levels[63] = levels[153863570] = { "lvl":63, "exp":153863570, "xp_to_next":14257811 }
levels[64] = levels[168121381] = { "lvl":64, "exp":168121381, "xp_to_next":15541015 }
levels[65] = levels[183662396] = { "lvl":65, "exp":183662396, "xp_to_next":16939705 }
levels[66] = levels[200602101] = { "lvl":66, "exp":200602101, "xp_to_next":18464279 }
levels[67] = levels[219066380] = { "lvl":67, "exp":219066380, "xp_to_next":20126064 }
levels[68] = levels[239192444] = { "lvl":68, "exp":239192444, "xp_to_next":21937409 }
levels[69] = levels[261129853] = { "lvl":69, "exp":261129853, "xp_to_next":23911777 }
levels[70] = levels[285041630] = { "lvl":70, "exp":285041630, "xp_to_next":26063836 }
levels[71] = levels[311105466] = { "lvl":71, "exp":311105466, "xp_to_next":28409582 }
levels[72] = levels[339515048] = { "lvl":72, "exp":339515048, "xp_to_next":30966444 }
levels[73] = levels[370481492] = { "lvl":73, "exp":370481492, "xp_to_next":33753424 }
levels[74] = levels[404234916] = { "lvl":74, "exp":404234916, "xp_to_next":36791232 }
levels[75] = levels[441026148] = { "lvl":75, "exp":441026148, "xp_to_next":40102443 }
levels[76] = levels[481128591] = { "lvl":76, "exp":481128591, "xp_to_next":43711663 }
levels[77] = levels[524840254] = { "lvl":77, "exp":524840254, "xp_to_next":47645713 }
levels[78] = levels[572485967] = { "lvl":78, "exp":572485967, "xp_to_next":51933826 }
levels[79] = levels[624419793] = { "lvl":79, "exp":624419793, "xp_to_next":56607872 }
levels[80] = levels[681027665] = { "lvl":80, "exp":681027665, "xp_to_next":61702579 }
levels[81] = levels[742730244] = { "lvl":81, "exp":742730244, "xp_to_next":67255812 }
levels[82] = levels[809986056] = { "lvl":82, "exp":809986056, "xp_to_next":73308835 }
levels[83] = levels[883294891] = { "lvl":83, "exp":883294891, "xp_to_next":79906630 }
levels[84] = levels[963201521] = { "lvl":84, "exp":963201521, "xp_to_next":87098226 }
levels[85] = levels[1050299747] = { "lvl":85, "exp":1050299747, "xp_to_next":94937067 }
levels[86] = levels[1145236814] = { "lvl":86, "exp":1145236814, "xp_to_next":103481403 }
levels[87] = levels[1248718217] = { "lvl":87, "exp":1248718217, "xp_to_next":112794729 }
levels[88] = levels[1361512946] = { "lvl":88, "exp":1361512946, "xp_to_next":122946255 }
levels[89] = levels[1484459201] = { "lvl":89, "exp":1484459201, "xp_to_next":134011418 }
levels[90] = levels[1618470619] = { "lvl":90, "exp":1618470619, "xp_to_next":146072446 }
levels[91] = levels[1764543065] = { "lvl":91, "exp":1764543065, "xp_to_next":159218965 }
levels[92] = levels[1923762030] = { "lvl":92, "exp":1923762030, "xp_to_next":173548673 }
levels[93] = levels[2097310703] = { "lvl":93, "exp":2097310703, "xp_to_next":189168053 }
levels[94] = levels[2286478756] = { "lvl":94, "exp":2286478756, "xp_to_next":206193177 }
levels[95] = levels[2492671933] = { "lvl":95, "exp":2492671933, "xp_to_next":224750564 }
levels[96] = levels[2717422497] = { "lvl":96, "exp":2717422497, "xp_to_next":244978115 }
levels[97] = levels[2962400612] = { "lvl":97, "exp":2962400612, "xp_to_next":267026144 }
levels[98] = levels[3229426756] = { "lvl":98, "exp":3229426756, "xp_to_next":291058498 }
levels[99] = levels[3520485254] = { "lvl":99, "exp":3520485254, "xp_to_next":None }
def get_level(index: int):
try:
return levels[index]
except:
return { "lvl":0, "exp":0, "xp_to_next":0 }
def get_level_from_exp(current_exp: int):
"""Resolve character level from current absolute XP value."""
try:
exp_val = int(current_exp)
except Exception:
return { "lvl":0, "exp":0, "xp_to_next":0 }
if exp_val < 0:
return { "lvl":0, "exp":0, "xp_to_next":0 }
resolved = levels[1]
for lvl in range(1, 100):
lvl_info = levels.get(lvl)
if not lvl_info:
continue
if exp_val >= lvl_info["exp"]:
resolved = lvl_info
else:
break
return resolved