summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2017-10-18 13:48:58 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2017-10-18 13:48:58 +0200 |
commit | 2805c647010cbcca126ebf162fcbdd691fc72488 (patch) | |
tree | 2e05d66c8177cc5ff5125e2cbc23fdd4b1d05e36 /elm/battlemap/src/Battlemap | |
parent | d0dc7f665ba90d126e41048b2d7b992c3e804163 (diff) |
Correcting whatever the compiler tells me is wrong.
Diffstat (limited to 'elm/battlemap/src/Battlemap')
-rw-r--r-- | elm/battlemap/src/Battlemap/Html.elm | 82 | ||||
-rw-r--r-- | elm/battlemap/src/Battlemap/Navigator.elm | 18 | ||||
-rw-r--r-- | elm/battlemap/src/Battlemap/Navigator/RangeIndicator.elm | 6 | ||||
-rw-r--r-- | elm/battlemap/src/Battlemap/Tile.elm | 18 |
4 files changed, 73 insertions, 51 deletions
diff --git a/elm/battlemap/src/Battlemap/Html.elm b/elm/battlemap/src/Battlemap/Html.elm index d7cfc63..2fa6472 100644 --- a/elm/battlemap/src/Battlemap/Html.elm +++ b/elm/battlemap/src/Battlemap/Html.elm @@ -19,40 +19,25 @@ type alias GridBuilder = bmap : Battlemap.Type } -nav_level_to_text : Battlemap.Tile.Type -> String -nav_level_to_text t = - case t.nav_level of - Battlemap.Direction.Right -> "R" - Battlemap.Direction.Left -> "L" - Battlemap.Direction.Up -> "U" - Battlemap.Direction.Down -> "D" - Battlemap.Direction.None -> (toString t.floor_level) - view_battlemap_cell : Battlemap.Tile.Type -> (Html.Html Event.Type) view_battlemap_cell t = - case t.char_level of - Nothing -> - (Html.td - [ (Html.Events.onClick (Event.TileSelected t.location)) ] - [ - (Html.text - (case t.mod_level of - Nothing -> "[_]" - (Just Battlemap.Tile.CanBeReached) -> "[M]" - (Just Battlemap.Tile.CanBeAttacked) -> "[A]" - ) - ), - (Html.text (nav_level_to_text t)) - ] - ) - (Just char_id) -> - (Html.td - [ (Html.Events.onClick (Event.CharacterSelected char_id)) ] - [ - (Html.text ("[" ++ char_id ++ "]")), - (Html.text (nav_level_to_text t)) - ] - ) + (Html.td + [ + (Html.Events.onClick + (Battlemap.Tile.get_location t) + ), + (Html.Attribute.class (Battlemap.Tile.get_css_class t)) + ] + [ + case (Battlemap.Tile.get_character t) of + (Just char_id) -> + (Character.Html.get_icon + (Character.get model char_id) + ) + + Nothing -> (Html.text "") -- Meaning no element. + ] + ) foldr_to_html : Battlemap.Tile.Type -> GridBuilder -> GridBuilder @@ -81,10 +66,11 @@ grid_builder_to_html gb = else ((Html.tr [] gb.row) :: gb.columns) -view : Battlemap.Type -> (Html.Html Event.Type) -view battlemap = +tiles_grid battlemap = (Html.table - [] + [ + (Html.Attribute.class "battlemap-tiles-grid") + ] (grid_builder_to_html (Array.foldr (foldr_to_html) @@ -98,3 +84,29 @@ view battlemap = ) ) ) + +view : Battlemap.Type -> (Html.Html Event.Type) +view battlemap = + (Html.div + [ + (Html.Attribute.class "battlemap-container") + ] + [ + (Html.div + [ + (Html.Attribute.class "battlemap-tiles-container") + ] + [ (tiles_grid battlemap) ] + ), + 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. + ] + ) diff --git a/elm/battlemap/src/Battlemap/Navigator.elm b/elm/battlemap/src/Battlemap/Navigator.elm index 2c2734d..ac394b5 100644 --- a/elm/battlemap/src/Battlemap/Navigator.elm +++ b/elm/battlemap/src/Battlemap/Navigator.elm @@ -5,7 +5,8 @@ module Battlemap.Navigator exposing get_current_location, get_remaining_points, get_range_markers, - add_step + try_adding_step, + try_getting_path_to ) import Dict @@ -78,14 +79,14 @@ get_range_markers : ( ) get_range_markers navigator = (Dict.toList navigator.range_indicators) -add_step : ( +try_adding_step : ( Type -> Battlemap.Direction.Type -> (Battlemap.Location.Type -> Bool) -> (Battlemap.Location.Type -> Int) -> (Maybe Type) ) -add_step navigator dir can_cross cost_fun = +try_adding_step navigator dir can_cross cost_fun = case (Battlemap.Navigator.Path.try_following_direction can_cross @@ -96,3 +97,14 @@ add_step navigator dir can_cross cost_fun = of (Just path) -> (Just {navigator | path = path}) Nothing -> Nothing + +try_getting_path_to : ( + Type -> + Battlemap.Location.Ref -> + (Maybe (List Battlemap.Direction.Type)) + ) +try_getting_path_to navigator loc_ref = + case (Dict.get loc_ref navigator.range_indicators) of + (Just target) -> + (Just (Battlemap.Navigator.RangeIndicator.get_path target)) + Nothing -> Nothing diff --git a/elm/battlemap/src/Battlemap/Navigator/RangeIndicator.elm b/elm/battlemap/src/Battlemap/Navigator/RangeIndicator.elm index 9f31d49..a8cac8e 100644 --- a/elm/battlemap/src/Battlemap/Navigator/RangeIndicator.elm +++ b/elm/battlemap/src/Battlemap/Navigator/RangeIndicator.elm @@ -2,7 +2,8 @@ module Battlemap.Navigator.RangeIndicator exposing ( Type, generate, - get_marker + get_marker, + get_path ) import Dict @@ -281,3 +282,6 @@ generate location dist atk_dist can_cross_fun = get_marker : Type -> Battlemap.Marker.Type get_marker indicator = indicator.marker + +get_path : Type -> (List Battlemap.Direction.Type) +get_path indicator = indicator.path diff --git a/elm/battlemap/src/Battlemap/Tile.elm b/elm/battlemap/src/Battlemap/Tile.elm index e90e9bc..828fb67 100644 --- a/elm/battlemap/src/Battlemap/Tile.elm +++ b/elm/battlemap/src/Battlemap/Tile.elm @@ -1,27 +1,21 @@ module Battlemap.Tile exposing ( Type, - set_character, - get_character, + get_class, get_cost ) import Battlemap.Location -import Character - type alias Type = { location : Battlemap.Location.Ref, - floor_level : Int, - char_level : (Maybe Character.Ref) + class : Int, + crossing_cost : Int } -set_character : (Maybe Character.Ref) -> Type -> Type -set_character char_ref tile = {tile | char_level = char_ref} - -get_character : Type -> (Maybe Character.Ref) -get_character tile = tile.char_level +get_class : Type -> Int +get_class tile = tile.class get_cost : Type -> Int -get_cost tile = tile.floor_level +get_cost tile = tile.crossing_cost |