package components import ( "dk/internal/helpers" "dk/internal/models/towns" "dk/internal/models/users" "fmt" sushi "git.sharkk.net/Sharkk/Sushi" ) // LeftAside generates the data map for the left sidebar. // Returns an empty map when not auth'd. func LeftAside(ctx sushi.Ctx) map[string]any { data := map[string]any{} if !ctx.IsAuthenticated() { return data } user := ctx.UserValue("user").(*users.User) if user.Currently == "In Town" { data["town"], _ = towns.ByCoords(user.X, user.Y) } // Build owned town maps list townList, err := user.GetKnownTowns() if err != nil { fmt.Printf("User town list error: %s\n", err.Error()) } data["_towns"] = townList return data } // RightAside generates the data map for the right sidebar. // Returns an empty map when not auth'd. func RightAside(ctx sushi.Ctx) map[string]any { data := map[string]any{} if !ctx.IsAuthenticated() { return data } user := ctx.GetCurrentUser().(*users.User) data["_class"] = user.Class() data["_expprog"] = fmt.Sprintf("%.1f", user.ExpProgress()) hpPct := helpers.ClampPct(float64(user.HP), float64(user.MaxHP), 0, 100) data["hppct"] = hpPct data["mppct"] = helpers.ClampPct(float64(user.MP), float64(user.MaxMP), 0, 100) data["tppct"] = helpers.ClampPct(float64(user.TP), float64(user.MaxTP), 0, 100) data["hpcolor"] = "" if hpPct < 35 { data["hpcolor"] = "danger" } else if hpPct < 75 { data["hpcolor"] = "warning" } // Build known healing spells list healingSpells, err := user.GetHealingSpells() if err != nil { fmt.Printf("User healing spells list error: %s\n", err.Error()) } data["_spells"] = healingSpells return data }