forge/blade/systems/experience.py (16 lines of code) (raw):
import numpy as np
class ExperienceCalculator:
def __init__(self):
self.exp = []
self.tabulateExp()
def tabulateExp(self, numLevels=99):
for i in range(numLevels):
if i == 0:
self.exp += [0]
else:
increment = np.floor(np.floor(i + 300*(2**(i/7.0)))/4.0)
self.exp += [self.exp[-1] + increment]
def expAtLevel(self, level):
return self.exp[level]
def levelAtExp(self, exp):
return np.searchsorted(self.exp, exp)