summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'elm/battlemap/src/View/Battlemap.elm')
-rw-r--r-- | elm/battlemap/src/View/Battlemap.elm | 88 |
1 files changed, 70 insertions, 18 deletions
diff --git a/elm/battlemap/src/View/Battlemap.elm b/elm/battlemap/src/View/Battlemap.elm index 1e10a2a..efe4d1e 100644 --- a/elm/battlemap/src/View/Battlemap.elm +++ b/elm/battlemap/src/View/Battlemap.elm @@ -1,26 +1,78 @@ -module View.Battlemap exposing (view) +module View.Battlemap exposing (get_html) + +import Array + +import List + +import Html +import Html.Attributes +import Html.Events + +import Battlemap + +import Character import View.Battlemap.Tile import View.Battlemap.Navigator -view : Battlemap.Type -> (Html.Html Event.Type) -view battlemap = +import Event +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +char_on_map : Int -> Character.Type -> (Html.Html Event.Type) +char_on_map tile_size char = + let + char_loc = (Character.get_location char) + in + (Html.div + [ + (Html.Attributes.class "battlemap-character-icon"), + (Html.Attributes.class + ("asset-character-icon-" ++ (Character.get_icon_id char)) + ), + (Html.Events.onClick + (Event.CharacterSelected (Character.get_ref char)) + ), + (Html.Attributes.style + [ + ("top", ((toString (char_loc.y * tile_size)) ++ "px")), + ("left", ((toString (char_loc.x * tile_size)) ++ "px")) + ] + ) + ] + [ + ] + ) + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +get_html : ( + Battlemap.Type -> + Int -> + (List Character.Type) -> + (Html.Html Event.Type) + ) +get_html battlemap tile_size characters = (Html.div [ - (Html.Attribute.class "battlemap-container") - ] - [ - ( - , - case battlemap.navigator of - (Just navigator) -> - (Html.div - [ - (Html.Attribute.class "battlemap-navigator-container") - ] - [ (Battlemap.Navigator.Html.view battlemap.navigator) ] - ) - - Nothing -> (Html.text "") -- Meaning no element. + (Html.Attributes.class "battlemap-container") ] + ( + (List.map + (View.Battlemap.Tile.get_html tile_size) + (Array.toList (Battlemap.get_tiles battlemap)) + ) + ++ + (List.map + (char_on_map tile_size) + characters + ) + ++ + case (Battlemap.try_getting_navigator_summary battlemap) of + (Just nav_summary) -> + (View.Battlemap.Navigator.get_html tile_size nav_summary) + + Nothing -> [(Html.text "")] + ) ) |