aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me>2024-04-15 18:59:10 +0200
committerAnhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me>2024-04-15 18:59:10 +0200
commit9de1f3f90b2d94215f14458a11a951cb143a8dc2 (patch)
tree0df42a6510c1706eae425e461d9b5e067c139ae8
parentf00941a17ad1c789b7354c685d84386ed7904163 (diff)
feat(xp): xp update without reseting last event
-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()
+}