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 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.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 "")] ) )