1
0
forked from sass/tipibot

Change exp leveling system

This commit is contained in:
Rene Arumetsa
2026-05-13 22:43:34 +03:00
parent 15e3121d55
commit 8d7ac504ca
3 changed files with 45 additions and 16 deletions

View File

@@ -317,16 +317,18 @@ LEVEL_ROLES: list[tuple[int, str]] = [
def get_level(exp: int) -> int:
"""Level = max(1, floor(sqrt(exp/6))).
Level 5 @ 150 EXP, 10 @ 600, 20 @ 2400, 30 @ 5400."""
return max(1, int(math.sqrt(max(0, exp) / 6)))
"""Level = max(1, floor(sqrt(exp/10))).
Level 5 @ 250 EXP, 10 @ 1000, 20 @ 4000, 30 @ 9000."""
return max(1, int(math.sqrt(max(0, exp) / 10)))
def exp_for_level(level: int) -> int:
"""Minimum cumulative EXP to reach this level. level^2 * 6."""
"""Minimum cumulative EXP to reach this level.
Recurrence: exp_for_level(L) = L*20 - 10 + exp_for_level(L-1), base 0.
Closed form: 10*level^2."""
if level <= 1:
return 0
return level * level * 6
return 10 * level * level
def level_role_name(level: int) -> str: