diff options
| author | Anhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me> | 2024-04-15 18:59:10 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <anhgelus.morhtuuzh@proton.me> | 2024-04-15 18:59:10 +0200 |
| commit | 9de1f3f90b2d94215f14458a11a951cb143a8dc2 (patch) | |
| tree | 0df42a6510c1706eae425e461d9b5e067c139ae8 | |
| parent | f00941a17ad1c789b7354c685d84386ed7904163 (diff) | |
feat(xp): xp update without reseting last event
| -rw-r--r-- | xp/level.go | 15 |
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() +} |
