summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'elm/battlemap/src/View/Battlemap.elm')
-rw-r--r--elm/battlemap/src/View/Battlemap.elm88
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 "")]
+ )
)