From c362475bae10fbfe928118aaec9e5ef150e2a62c Mon Sep 17 00:00:00 2001 From: Sky Johnson Date: Thu, 21 Aug 2025 12:04:17 -0500 Subject: [PATCH] fix request time tracking, exp calc --- data/fights.json | 266 +++++++++++++++++++++++---------- go.mod | 2 +- go.sum | 4 +- internal/components/page.go | 11 +- internal/models/users/users.go | 3 +- 5 files changed, 205 insertions(+), 81 deletions(-) diff --git a/data/fights.json b/data/fights.json index f077021..5d5dece 100644 --- a/data/fights.json +++ b/data/fights.json @@ -252,77 +252,23 @@ { "id": 5, "user_id": 1, - "monster_id": 2, - "monster_hp": 0, - "monster_max_hp": 6, + "monster_id": 5, + "monster_hp": 10, + "monster_max_hp": 10, "monster_sleep": 0, - "monster_immune": 0, + "monster_immune": 1, "uber_damage": 0, "uber_defense": 0, "first_strike": true, - "turn": 6, + "turn": 1, "ran_away": false, - "victory": true, - "won": true, - "reward_gold": 1, - "reward_exp": 2, - "actions": [ - { - "t": 1, - "d": 1 - }, - { - "t": 8, - "d": 1, - "n": "Red Slime" - }, - { - "t": 1, - "d": 1 - }, - { - "t": 8, - "d": 1, - "n": "Red Slime" - }, - { - "t": 1, - "d": 1 - }, - { - "t": 8, - "d": 1, - "n": "Red Slime" - }, - { - "t": 1, - "d": 1 - }, - { - "t": 8, - "d": 1, - "n": "Red Slime" - }, - { - "t": 1, - "d": 1 - }, - { - "t": 8, - "d": 1, - "n": "Red Slime" - }, - { - "t": 1, - "d": 1 - }, - { - "t": 11, - "n": "Red Slime" - } - ], - "created": 1755270995, - "updated": 1755271001 + "victory": false, + "won": false, + "reward_gold": 0, + "reward_exp": 0, + "actions": [], + "created": 1755608716, + "updated": 1755608716 }, { "id": 6, @@ -829,24 +775,192 @@ "updated": 1755222893 }, { - "id": 5, + "id": 14, + "user_id": 1, + "monster_id": 6, + "monster_hp": 0, + "monster_max_hp": 11, + "monster_sleep": 0, + "monster_immune": 0, + "uber_damage": 0, + "uber_defense": 0, + "first_strike": false, + "turn": 6, + "ran_away": false, + "victory": true, + "won": true, + "reward_gold": 2, + "reward_exp": 6, + "actions": [ + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Drake" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Drake" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 2, + "n": "Drake" + }, + { + "t": 1, + "d": 1 + }, + { + "t": 8, + "d": 2, + "n": "Drake" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Drake" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 11, + "n": "Drake" + } + ], + "created": 1755788992, + "updated": 1755788999 + }, + { + "id": 15, "user_id": 1, "monster_id": 5, - "monster_hp": 10, + "monster_hp": 0, "monster_max_hp": 10, "monster_sleep": 0, "monster_immune": 1, "uber_damage": 0, "uber_defense": 0, - "first_strike": true, - "turn": 1, + "first_strike": false, + "turn": 6, "ran_away": false, - "victory": false, - "won": false, + "victory": true, + "won": true, + "reward_gold": 1, + "reward_exp": 5, + "actions": [ + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Shadow" + }, + { + "t": 1, + "d": 1 + }, + { + "t": 8, + "d": 1, + "n": "Shadow" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Shadow" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Shadow" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 8, + "d": 1, + "n": "Shadow" + }, + { + "t": 1, + "d": 2 + }, + { + "t": 11, + "n": "Shadow" + } + ], + "created": 1755789058, + "updated": 1755789064 + }, + { + "id": 16, + "user_id": 1, + "monster_id": 1, + "monster_hp": 0, + "monster_max_hp": 4, + "monster_sleep": 0, + "monster_immune": 0, + "uber_damage": 0, + "uber_defense": 0, + "first_strike": true, + "turn": 2, + "ran_away": false, + "victory": true, + "won": true, "reward_gold": 0, - "reward_exp": 0, - "actions": [], - "created": 1755608716, - "updated": 1755608716 + "reward_exp": 1, + "actions": [ + { + "t": 1, + "d": 3 + }, + { + "t": 8, + "d": 1, + "n": "Blue Slime" + }, + { + "t": 1, + "d": 3 + }, + { + "t": 11, + "n": "Blue Slime" + } + ], + "created": 1755789095, + "updated": 1755789098 } ] \ No newline at end of file diff --git a/go.mod b/go.mod index fb69a86..c3b73cb 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.25.0 require ( git.sharkk.net/Sharkk/Nigiri v1.0.0 - git.sharkk.net/Sharkk/Sushi v1.1.0 + git.sharkk.net/Sharkk/Sushi v1.1.1 github.com/valyala/fasthttp v1.65.0 ) diff --git a/go.sum b/go.sum index b49a838..bc03a56 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ git.sharkk.net/Sharkk/Nigiri v1.0.0 h1:N0MvWOoX54iXjR8D1LqGIFrtMAPdaoj/32n13Ou/p90= git.sharkk.net/Sharkk/Nigiri v1.0.0/go.mod h1:HWpMtXaodPXE7dZXQ6tbZNL0DRV9PT65D0DOV0NAwsM= -git.sharkk.net/Sharkk/Sushi v1.1.0 h1:mOcQlcLEl941ozjbOzHOnBAmsOcZ7Q5BkFowILwxNow= -git.sharkk.net/Sharkk/Sushi v1.1.0/go.mod h1:S84ACGkuZ+BKzBO4lb5WQnm5aw9+l7VSO2T1bjzxL3o= +git.sharkk.net/Sharkk/Sushi v1.1.1 h1:ynU16l6vAhY/JUwHlI4zMQiPuL9lcs88W/mAGZsL4Rw= +git.sharkk.net/Sharkk/Sushi v1.1.1/go.mod h1:S84ACGkuZ+BKzBO4lb5WQnm5aw9+l7VSO2T1bjzxL3o= github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= diff --git a/internal/components/page.go b/internal/components/page.go index dd58458..0ce4d46 100644 --- a/internal/components/page.go +++ b/internal/components/page.go @@ -10,6 +10,7 @@ import ( sushi "git.sharkk.net/Sharkk/Sushi" "git.sharkk.net/Sharkk/Sushi/csrf" + "git.sharkk.net/Sharkk/Sushi/timing" ) // RenderPage renders a page using the layout template with common data and additional custom data @@ -28,11 +29,19 @@ func RenderPage(ctx sushi.Ctx, title, tmplPath string, additionalData map[string sess := ctx.GetCurrentSession() + seconds := timing.GetRequestDuration(ctx).Seconds() + var totalTime string + if seconds < 0.001 { + totalTime = fmt.Sprintf("%.0f", seconds) + } else { + totalTime = fmt.Sprintf("%.3f", seconds) + } + data := map[string]any{ "_title": PageTitle(title), "authenticated": ctx.IsAuthenticated(), "csrf": csrf.HiddenField(ctx), - "_totaltime": ctx.UserValue("request_time"), + "_totaltime": totalTime, "_version": "1.0.0", "_build": "dev", "user": ctx.GetCurrentUser(), diff --git a/internal/models/users/users.go b/internal/models/users/users.go index fccad54..ab65569 100644 --- a/internal/models/users/users.go +++ b/internal/models/users/users.go @@ -348,7 +348,8 @@ func (u *User) SetPosition(x, y int) { } func (u *User) ExpNeededForNextLevel() int { - return u.Level * u.Level * u.Level + level := u.Level + 1 + return level * level * level } func (u *User) GrantExp(expAmount int) {