1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
module Battlemap.Html exposing (view)
import Html exposing (Html, text, table, tr, td)
-- import List as Lt exposing (map)
import Array as Ay exposing (foldr)
import Update exposing (Msg)
import Model exposing (Model)
import Battlemap exposing (Battlemap, random)
import Battlemap.Tile exposing (Tile)
import Battlemap.Direction exposing (..)
view_battlemap_cell : Tile -> (Html Msg)
view_battlemap_cell t =
(td
[]
[
(text
(case t.nav_level of
Right -> "R"
Left -> "L"
Up -> "U"
Down -> "D"
None -> (toString t.floor_level)
)
)
]
)
type alias GridBuilder =
{
row : (List (Html Msg)),
columns : (List (Html Msg)),
row_size : Int,
bmap : Battlemap
}
foldr_to_html : Tile -> GridBuilder -> GridBuilder
foldr_to_html t bg =
if (bg.row_size == bg.bmap.width)
then
{bg |
row = [(view_battlemap_cell t)],
row_size = 1,
columns =
(
(tr [] bg.row) :: bg.columns
)
}
else
{bg |
row = ((view_battlemap_cell t) :: bg.row),
row_size = (bg.row_size + 1)
}
grid_builder_to_html : GridBuilder -> (List (Html Msg))
grid_builder_to_html gb =
if (gb.row_size == 0)
then
gb.columns
else
(grid_builder_to_html
{gb |
row = [],
row_size = 0,
columns =
(
(tr [] gb.row) :: gb.columns
)
}
)
view_battlemap : Battlemap -> (Html Msg)
view_battlemap battlemap =
(table
[]
(grid_builder_to_html
(Ay.foldr
(foldr_to_html)
{
row = [],
columns = [],
row_size = 0,
bmap = battlemap
}
battlemap.content
)
)
)
view : Model -> (Html Msg)
view m =
(view_battlemap m.battlemap)
|