+ hp goes now down

This commit is contained in:
itsig0
2024-03-21 23:09:19 +01:00
parent cc4bd9febc
commit 57f809cd85
3 changed files with 72 additions and 33 deletions

View File

@@ -1,6 +1,10 @@
package handler package handler
import ( import (
"fmt"
"math"
"strconv"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/log" "github.com/gofiber/fiber/v2/log"
"github.com/itsig0/tallytome/view/hptracker" "github.com/itsig0/tallytome/view/hptracker"
@@ -26,23 +30,19 @@ func Tracker(c *fiber.Ctx) error {
func TrackerUpdate(c *fiber.Ctx) error { func TrackerUpdate(c *fiber.Ctx) error {
_, err := store.Get(c) sess, err := store.Get(c)
if err != nil { if err != nil {
return err return err
} }
// Parse the form data
formdata := c.Context().PostArgs()
// Create an instance of TrackerData
data := hptracker.TrackerData{ data := hptracker.TrackerData{
HP: string(formdata.Peek("hp")), HP: c.FormValue("hp"),
HPBase: string(formdata.Peek("hp")), HPBase: c.FormValue("hp"),
HPStartPercentage: "0", HPStartPercentage: "0",
HPPercentage: "100", HPPercentage: "100",
Mana: string(formdata.Peek("mana")), Mana: c.FormValue("mana"),
ManaBase: string(formdata.Peek("mana")), ManaBase: c.FormValue("mana"),
ManaRegen: string(formdata.Peek("manaregen")), ManaRegen: c.FormValue("manaregen"),
ManaStartPercentage: "0", ManaStartPercentage: "0",
ManaPercentage: "100", ManaPercentage: "100",
} }
@@ -55,33 +55,72 @@ func TrackerUpdate(c *fiber.Ctx) error {
// sess.Set(prefix+types.Field(i).Name, values.Field(i)) // sess.Set(prefix+types.Field(i).Name, values.Field(i))
// log.Info("test") // log.Info("test")
// } // }
// pre := "tracker_" pre := "tracker_"
// sess.Set(pre+"HP", data.HP) sess.Set(pre+"HP", data.HP)
// sess.Set(pre+"HPBase", data.HPBase) sess.Set(pre+"HPBase", data.HPBase)
// sess.Set(pre+"HPStartPercentage", data.HPStartPercentage) sess.Set(pre+"HPPercentage", data.HPPercentage)
// sess.Set(pre+"HPStartPercentage", data.HPStartPercentage) sess.Set(pre+"HPStartPercentage", data.HPStartPercentage)
// sess.Set(pre+"Mana", data.Mana) sess.Set(pre+"Mana", data.Mana)
// sess.Set(pre+"ManaBase", data.ManaBase) sess.Set(pre+"ManaBase", data.ManaBase)
// sess.Set(pre+"ManaRegen", data.ManaRegen) sess.Set(pre+"ManaRegen", data.ManaRegen)
// sess.Set(pre+"ManaStartPercentage", data.ManaStartPercentage) sess.Set(pre+"ManaStartPercentage", data.ManaStartPercentage)
// sess.Set(pre+"ManaPercentage", data.ManaPercentage) sess.Set(pre+"ManaPercentage", data.ManaPercentage)
// sess.Save() sess.Save()
return render(c, hptracker.TrackerColumn(data)) return render(c, hptracker.TrackerColumn(data))
} }
func TrackerDamage(c *fiber.Ctx) error { func TrackerDamage(c *fiber.Ctx) error {
// formdata := c.Context().PostArgs() sess, err := store.Get(c)
if err != nil {
data := hptracker.TrackerData{ return err
HPStartPercentage: "100",
HPPercentage: "66",
} }
// log.Info(data) damage, err := strconv.Atoi(c.FormValue("damageInput"))
if err != nil {
c.SendStatus(418)
return err
} else if damage == 0 {
c.SendStatus(418)
return c.SendString("HP NOT NULL")
}
currentHP, err := strconv.Atoi(fmt.Sprint(sess.Get("tracker_HP")))
if err != nil {
c.SendStatus(418)
return err
}
baseHP, err := strconv.Atoi(fmt.Sprint(sess.Get("tracker_HPBase")))
if err != nil {
c.SendStatus(418)
return err
}
savingThrow := string(c.FormValue("savingthrow"))
if savingThrow == "on" {
damageFloat := float64(damage) * 0.33333
damage -= int(math.Round(damageFloat))
}
newHP := currentHP - damage
newPercentage := (newHP * 100) / baseHP
data := hptracker.TrackerData{
HP: fmt.Sprint(newHP),
HPBase: fmt.Sprint(sess.Get("tracker_HPBase")),
HPStartPercentage: fmt.Sprint(sess.Get("tracker_HPPercentage")),
HPPercentage: fmt.Sprint(newPercentage),
}
sess.Set("tracker_HP", newHP)
sess.Set("tracker_HPPercentage", newPercentage)
sess.Save()
return render(c, hptracker.HPTracker(data)) return render(c, hptracker.HPTracker(data))
} }

View File

@@ -70,12 +70,12 @@ templ TrackerColumn(td TrackerData){
} }
templ HPTracker(td TrackerData){ templ HPTracker(td TrackerData){
<span class="progress-label">TP: {td.HP}/{td.HP} </span> <span class="progress-label">TP: {td.HP}/{td.HPBase} </span>
<div class={"hp", hpAnimation(td.HPStartPercentage, td.HPPercentage)} ></div> <div class={"hp", hpAnimation(td.HPStartPercentage, td.HPPercentage)} ></div>
} }
templ ManaTracker(td TrackerData){ templ ManaTracker(td TrackerData){
<span class="progress-label">Mana: {td.Mana}/{td.Mana} </span> <span class="progress-label">Mana: {td.Mana}/{td.ManaBase} </span>
<div class={"mana", manaAnimation(td.ManaStartPercentage, td.ManaPercentage)}></div> <div class={"mana", manaAnimation(td.ManaStartPercentage, td.ManaPercentage)}></div>
} }

View File

@@ -171,9 +171,9 @@ func HPTracker(td TrackerData) templ.Component {
return templ_7745c5c3_Err return templ_7745c5c3_Err
} }
var templ_7745c5c3_Var6 string var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(td.HP) templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(td.HPBase)
if templ_7745c5c3_Err != nil { if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `view/hptracker/tracker.templ`, Line: 72, Col: 51} return templ.Error{Err: templ_7745c5c3_Err, FileName: `view/hptracker/tracker.templ`, Line: 72, Col: 55}
} }
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil { if templ_7745c5c3_Err != nil {
@@ -238,9 +238,9 @@ func ManaTracker(td TrackerData) templ.Component {
return templ_7745c5c3_Err return templ_7745c5c3_Err
} }
var templ_7745c5c3_Var10 string var templ_7745c5c3_Var10 string
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(td.Mana) templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(td.ManaBase)
if templ_7745c5c3_Err != nil { if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `view/hptracker/tracker.templ`, Line: 77, Col: 57} return templ.Error{Err: templ_7745c5c3_Err, FileName: `view/hptracker/tracker.templ`, Line: 77, Col: 61}
} }
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
if templ_7745c5c3_Err != nil { if templ_7745c5c3_Err != nil {