aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xp/level.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/xp/level.go b/xp/level.go
index 2ec6106..14d0e95 100644
--- a/xp/level.go
+++ b/xp/level.go
@@ -56,3 +56,18 @@ func onLastEventUpdate(c *Copaing) {
c.Save()
c.SetLastEvent()
}
+
+func onXPUpdate(c *Copaing) {
+ h := c.HourSinceLastEvent()
+ l := Lose(h, c.XP)
+ xp := c.XPAlreadyRemoved()
+ if l-xp < 0 {
+ utils.SendWarn("lose - xp already removed is negative", "lose", l, "xp", xp)
+ c.XP = 0
+ c.AddXPAlreadyRemoved(0)
+ } else {
+ c.XP -= l - c.XPAlreadyRemoved()
+ c.AddXPAlreadyRemoved(l - xp)
+ }
+ c.Save()
+}