From 1f68e698991d7bb1c9a5519536b2215185de0616 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sun, 14 Apr 2024 15:54:27 +0200 Subject: feat(xp): functions --- xp/functions.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 xp/functions.go (limited to 'xp/functions.go') 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)), + )) +} -- cgit v1.2.3