54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package routes
|
|
|
|
import (
|
|
"dk/internal/actions"
|
|
"dk/internal/middleware"
|
|
"dk/internal/router"
|
|
"dk/internal/template/components"
|
|
"strconv"
|
|
)
|
|
|
|
func Index(ctx router.Ctx, _ []string) {
|
|
user := middleware.GetCurrentUser(ctx)
|
|
if user != nil {
|
|
if user.Currently == "In Town" {
|
|
ctx.Redirect("/town", 303)
|
|
return
|
|
}
|
|
}
|
|
|
|
components.RenderPage(ctx, "", "intro.html", nil)
|
|
}
|
|
|
|
func Move(ctx router.Ctx, _ []string) {
|
|
user := middleware.GetCurrentUser(ctx)
|
|
dir, err := strconv.Atoi(string(ctx.PostArgs().Peek("direction")))
|
|
if err != nil {
|
|
ctx.SetContentType("text/plain")
|
|
ctx.SetBodyString("move form parsing error")
|
|
return
|
|
}
|
|
|
|
currently, newX, newY, err := actions.Move(user, actions.Direction(dir))
|
|
if err != nil {
|
|
ctx.SetContentType("text/plain")
|
|
ctx.SetBodyString("move error: " + err.Error())
|
|
return
|
|
}
|
|
|
|
user.Currently = currently
|
|
user.X, user.Y = newX, newY
|
|
|
|
if currently == "In Town" {
|
|
ctx.Redirect("/town", 303)
|
|
return
|
|
}
|
|
|
|
ctx.Redirect("/explore", 303)
|
|
}
|
|
|
|
func Explore(ctx router.Ctx, _ []string) {
|
|
ctx.SetContentType("text/plain")
|
|
ctx.SetBodyString("Exploring")
|
|
}
|