72 lines
1.6 KiB
OCaml
72 lines
1.6 KiB
OCaml
open Tyxml.Html
|
|
open Syntax
|
|
|
|
let mk_img hidden name =
|
|
let a = [ a_id name ] in
|
|
img
|
|
~src:(Format.sprintf "/assets/img/%s.png" name)
|
|
~alt:name
|
|
~a:(if hidden then a_hidden () :: a else a)
|
|
()
|
|
|
|
let get request =
|
|
let** () = User.assert_logged request in
|
|
|
|
let title = "Your island" in
|
|
|
|
let topbar =
|
|
let mana_img = mk_img false "mana" in
|
|
let mana_lvl = span ~a:[ a_id "mana_lvl" ] [ txt "0" ] in
|
|
let wheat_img = mk_img false "wheat" in
|
|
let wheat_lvl = span ~a:[ a_id "wheat_lvl" ] [ txt "0" ] in
|
|
div
|
|
~a:[ a_class [ "centered" ] ]
|
|
[ mana_img; mana_lvl; wheat_img; wheat_lvl ]
|
|
in
|
|
|
|
let canvas =
|
|
div
|
|
~a:[ a_class [ "centered" ] ]
|
|
[ canvas
|
|
~a:[ a_id "canvas" ]
|
|
[ txt "please update your browser or enable javascript" ]
|
|
]
|
|
in
|
|
|
|
let canvas_images =
|
|
div
|
|
@@ List.map (mk_img true)
|
|
[ "grass"
|
|
; "papy_left"
|
|
; "papy_right"
|
|
; "papy_down"
|
|
; "papy_up"
|
|
; "water"
|
|
; "wheat"
|
|
; "sheep"
|
|
]
|
|
in
|
|
|
|
let bottombar =
|
|
let medidate_button =
|
|
button ~a:[ a_id "medidate_button" ] [ txt "Medidate" ]
|
|
in
|
|
let plant_wheat_button =
|
|
button ~a:[ a_id "plant_wheat_button" ] [ txt "Plant wheat" ]
|
|
in
|
|
div ~a:[ a_class [ "centered" ] ] [ medidate_button; plant_wheat_button ]
|
|
in
|
|
|
|
let page = div [ topbar; canvas; bottombar; canvas_images ] in
|
|
|
|
let js =
|
|
script
|
|
~a:
|
|
[ a_mime_type "text/javascript"
|
|
; a_src "/assets/js/island_client.js"
|
|
; a_defer ()
|
|
]
|
|
(txt "")
|
|
in
|
|
|
|
Template.render ~title ~scripts:[ js ] page
|