summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-10-18 13:48:58 +0200
committernsensfel <SpamShield0@noot-noot.org>2017-10-18 13:48:58 +0200
commit2805c647010cbcca126ebf162fcbdd691fc72488 (patch)
tree2e05d66c8177cc5ff5125e2cbc23fdd4b1d05e36 /elm/battlemap/src/Battlemap
parentd0dc7f665ba90d126e41048b2d7b992c3e804163 (diff)
Correcting whatever the compiler tells me is wrong.
Diffstat (limited to 'elm/battlemap/src/Battlemap')
-rw-r--r--elm/battlemap/src/Battlemap/Html.elm82
-rw-r--r--elm/battlemap/src/Battlemap/Navigator.elm18
-rw-r--r--elm/battlemap/src/Battlemap/Navigator/RangeIndicator.elm6
-rw-r--r--elm/battlemap/src/Battlemap/Tile.elm18
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