pellest/src/island.ml

73 lines
1.6 KiB
OCaml
Raw Normal View History

2022-12-06 02:31:33 +01:00
open Tyxml.Html
open Syntax
let mk_img hidden name =
let a = [ a_id name ] in
2022-12-06 03:08:30 +01:00
img
~src:(Format.sprintf "/assets/img/%s.png" name)
~alt:name
~a:(if hidden then a_hidden () :: a else a)
2022-12-06 03:08:30 +01:00
()
2022-12-06 02:31:33 +01:00
let get request =
let** () = User.assert_logged request in
2022-12-06 02:31:33 +01:00
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
2023-01-15 02:23:14 +01:00
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
2022-12-06 02:31:33 +01:00
let canvas =
2023-01-10 04:39:58 +01:00
div
~a:[ a_class [ "centered" ] ]
[ canvas
~a:[ a_id "canvas" ]
[ txt "please update your browser or enable javascript" ]
]
2022-12-06 02:31:33 +01:00
in
let canvas_images =
2023-01-10 04:39:58 +01:00
div
@@ List.map (mk_img true)
2023-01-15 02:23:14 +01:00
[ "grass"
; "papy_left"
; "papy_right"
; "papy_down"
; "papy_up"
; "water"
; "wheat"
2023-07-09 22:11:21 +02:00
; "sheep"
2023-01-15 02:23:14 +01:00
]
2022-12-08 04:08:27 +01:00
in
2022-12-06 03:08:30 +01:00
2023-01-10 04:39:58 +01:00
let bottombar =
let medidate_button =
button ~a:[ a_id "medidate_button" ] [ txt "Medidate" ]
in
2023-01-15 02:23:14 +01:00
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
2022-12-06 02:31:33 +01:00
2023-01-10 04:39:58 +01:00
let page = div [ topbar; canvas; bottombar; canvas_images ] in
2022-12-06 02:31:33 +01:00
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