diff --git a/.gitignore b/.gitignore index 6bd35d1..6a45967 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ tmp # we do not want these -*_templ.txt \ No newline at end of file +*_templ.txt +*_templ.go \ No newline at end of file diff --git a/go.mod b/go.mod index 4224f2f..3dd9681 100644 --- a/go.mod +++ b/go.mod @@ -4,19 +4,18 @@ go 1.22.1 require ( github.com/a-h/templ v0.2.598 - github.com/gofiber/fiber/v2 v2.52.2 + github.com/gofiber/fiber/v3 v3.0.0-20240322111812-5e8df0a348be ) require ( - github.com/andybalholm/brotli v1.0.5 // indirect - github.com/google/uuid v1.5.0 // indirect - github.com/klauspost/compress v1.17.0 // indirect + github.com/andybalholm/brotli v1.1.0 // indirect + github.com/gofiber/utils/v2 v2.0.0-beta.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.17.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.15 // indirect - github.com/rivo/uniseg v0.2.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/fasthttp v1.52.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/sys v0.18.0 // indirect ) diff --git a/go.sum b/go.sum index c263190..49de404 100644 --- a/go.sum +++ b/go.sum @@ -1,31 +1,37 @@ github.com/a-h/templ v0.2.598 h1:6jMIHv6wQZvdPxTuv87erW4RqN/FPU0wk7ZHN5wVuuo= github.com/a-h/templ v0.2.598/go.mod h1:SA7mtYwVEajbIXFRh3vKdYm/4FYyLQAtPH1+KxzGPA8= -github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= -github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/gofiber/fiber/v2 v2.52.2 h1:b0rYH6b06Df+4NyrbdptQL8ifuxw/Tf2DgfkZkDaxEo= -github.com/gofiber/fiber/v2 v2.52.2/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gofiber/fiber/v3 v3.0.0-20240322111812-5e8df0a348be h1:TzDUSuyDBVIuGxQhEuWOm1EgIZMzWfNHO14fl/0EMPU= +github.com/gofiber/fiber/v3 v3.0.0-20240322111812-5e8df0a348be/go.mod h1:vYjHc92UkENqQ7bj/JhoTl84ZPKnb+seO8ddclUT0Xs= +github.com/gofiber/utils/v2 v2.0.0-beta.3 h1:pfOhUDDVjBJpkWv6C5jaDyYLvpui7zQ97zpyFFsUOKw= +github.com/gofiber/utils/v2 v2.0.0-beta.3/go.mod h1:jsl17+MsKfwJjM3ONCE9Rzji/j8XNbwjhUVTjzgfDCo= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= -github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= -github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/fasthttp v1.52.0 h1:wqBQpxH71XW0e2g+Og4dzQM8pk34aFYlA1Ga8db7gU0= +github.com/valyala/fasthttp v1.52.0/go.mod h1:hf5C4QnVMkNXMspnsUlfM3WitlgYflyhHYoKol/szxQ= github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/handler/index.go b/handler/index.go index e1c26eb..9f81cc0 100644 --- a/handler/index.go +++ b/handler/index.go @@ -1,11 +1,11 @@ package handler import ( - "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v3" "github.com/itsig0/tallytome/view/home" ) -func Index(c *fiber.Ctx) error { +func Index(c fiber.Ctx) error { hx := len(c.GetReqHeaders()["Hx-Request"]) > 0 return render(c, home.Show(hx)) } diff --git a/handler/tracker.go b/handler/tracker.go index 520d8e0..7dba7c3 100644 --- a/handler/tracker.go +++ b/handler/tracker.go @@ -5,12 +5,12 @@ import ( "math" "strconv" - "github.com/gofiber/fiber/v2" - "github.com/gofiber/fiber/v2/log" + "github.com/gofiber/fiber/v3" + "github.com/gofiber/fiber/v3/log" "github.com/itsig0/tallytome/view/hptracker" ) -func Tracker(c *fiber.Ctx) error { +func Tracker(c fiber.Ctx) error { hx := len(c.GetReqHeaders()["Hx-Request"]) > 0 data := hptracker.TrackerData{ @@ -28,7 +28,7 @@ func Tracker(c *fiber.Ctx) error { return render(c, hptracker.Show(hx, data)) } -func TrackerUpdate(c *fiber.Ctx) error { +func TrackerUpdate(c fiber.Ctx) error { sess, err := store.Get(c) if err != nil { @@ -67,12 +67,14 @@ func TrackerUpdate(c *fiber.Ctx) error { sess.Set(pre+"ManaStartPercentage", data.ManaStartPercentage) sess.Set(pre+"ManaPercentage", data.ManaPercentage) + // sess.Set("tracker", data) + sess.Save() return render(c, hptracker.TrackerColumn(data)) } -func TrackerDamage(c *fiber.Ctx) error { +func TrackerDamage(c fiber.Ctx) error { sess, err := store.Get(c) if err != nil { @@ -88,6 +90,10 @@ func TrackerDamage(c *fiber.Ctx) error { return c.SendString("HP NOT NULL") } + if damage < 0 { + damage *= -1 + } + currentHP, err := strconv.Atoi(fmt.Sprint(sess.Get("tracker_HP"))) if err != nil { c.SendStatus(418) @@ -100,14 +106,28 @@ func TrackerDamage(c *fiber.Ctx) error { return err } + heal := string(c.FormValue("heal")) savingThrow := string(c.FormValue("savingthrow")) - if savingThrow == "on" { + + if savingThrow == "on" || heal == "false" { damageFloat := float64(damage) * 0.33333 damage -= int(math.Round(damageFloat)) } + if heal == "true" && damage > 0 { + damage *= -1 + } + newHP := currentHP - damage + if newHP < 0 { + newHP = 0 + } + + if newHP > baseHP { + newHP = baseHP + } + newPercentage := (newHP * 100) / baseHP data := hptracker.TrackerData{ @@ -125,7 +145,7 @@ func TrackerDamage(c *fiber.Ctx) error { return render(c, hptracker.HPTracker(data)) } -func CheckStore(c *fiber.Ctx) error { +func CheckStore(c fiber.Ctx) error { sess, err := store.Get(c) if err != nil { return err diff --git a/handler/util.go b/handler/util.go index 4d4ba4c..15116b7 100644 --- a/handler/util.go +++ b/handler/util.go @@ -2,13 +2,13 @@ package handler import ( "github.com/a-h/templ" - "github.com/gofiber/fiber/v2" - "github.com/gofiber/fiber/v2/middleware/session" + "github.com/gofiber/fiber/v3" + "github.com/gofiber/fiber/v3/middleware/session" ) var store = session.New() -func render(c *fiber.Ctx, component templ.Component) error { +func render(c fiber.Ctx, component templ.Component) error { // or templ wil bork... c.Set("Content-type", "text/html") return component.Render(c.Context(), c.Response().BodyWriter()) diff --git a/main.go b/main.go index d319a59..efdfbce 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,8 @@ package main import ( - "github.com/gofiber/fiber/v2" - "github.com/gofiber/fiber/v2/middleware/compress" + "github.com/gofiber/fiber/v3" + "github.com/gofiber/fiber/v3/middleware/compress" "github.com/itsig0/tallytome/handler" )