diff options
Diffstat (limited to 'xp/functions.go')
| -rw-r--r-- | xp/functions.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/xp/functions.go b/xp/functions.go new file mode 100644 index 0000000..e6979c0 --- /dev/null +++ b/xp/functions.go @@ -0,0 +1,33 @@ +package xp + +import "math" + +func XPMessage(length uint, diversity uint) uint { + return uint(math.Floor( + 0.025*math.Pow(float64(length), 1.25)*math.Sqrt(float64(diversity)) + 1, + )) +} + +func XPVocal(time uint) uint { + return uint(math.Floor( + 0.01*math.Pow(float64(time), 1.3) + 1, + )) +} + +func Level(xp uint) uint { + return uint(math.Floor( + 0.2 * math.Sqrt(float64(xp)), + )) +} + +func XPForLevel(level uint) uint { + return uint(math.Floor( + math.Pow(float64(5*level), 2), + )) +} + +func Lose(time uint, xp uint) uint { + return uint(math.Floor( + math.Pow(float64(time), 2) * math.Pow(10, -2+math.Log(float64(time/85))) * math.Floor(float64(time/500)), + )) +} |
