| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'client/elm/battlemap/src/Battlemap')
| -rw-r--r-- | client/elm/battlemap/src/Battlemap/Html.elm | 19 | ||||
| -rw-r--r-- | client/elm/battlemap/src/Battlemap/RangeIndicator.elm | 66 | ||||
| -rw-r--r-- | client/elm/battlemap/src/Battlemap/Tile.elm | 24 | 
3 files changed, 70 insertions, 39 deletions
| diff --git a/client/elm/battlemap/src/Battlemap/Html.elm b/client/elm/battlemap/src/Battlemap/Html.elm index e474901..f67bdf0 100644 --- a/client/elm/battlemap/src/Battlemap/Html.elm +++ b/client/elm/battlemap/src/Battlemap/Html.elm @@ -35,7 +35,13 @@ view_battlemap_cell t =           (Html.td              []              [ -               (Html.text "[_]"), +               (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))              ]           ) @@ -73,16 +79,7 @@ grid_builder_to_html gb =     then        gb.columns     else -      (grid_builder_to_html -         {gb | -            row = [], -            row_size = 0, -            columns = -               ( -                  (Html.tr [] gb.row) :: gb.columns -               ) -         } -      ) +     ((Html.tr [] gb.row) :: gb.columns)  view : Battlemap.Type -> (Html.Html Update.Type)  view battlemap = diff --git a/client/elm/battlemap/src/Battlemap/RangeIndicator.elm b/client/elm/battlemap/src/Battlemap/RangeIndicator.elm index 3311f42..d6c00cc 100644 --- a/client/elm/battlemap/src/Battlemap/RangeIndicator.elm +++ b/client/elm/battlemap/src/Battlemap/RangeIndicator.elm @@ -2,6 +2,7 @@ module Battlemap.RangeIndicator exposing (Type, generate)  import Dict  import List +import Debug  import Battlemap  import Battlemap.Direction @@ -16,41 +17,56 @@ type alias Type =        node_cost: Int     } -generate_grid : ( +generate_row : (        Battlemap.Location.Type ->        Int ->        Int ->        Int -> +      (List Battlemap.Location.Type) -> +      (List Battlemap.Location.Type) +   ) +generate_row src max_x_mod curr_y curr_x_mod curr_row = +   if (curr_x_mod > max_x_mod) +   then +      curr_row +   else +      (generate_row +         src +         max_x_mod +         curr_y +         (curr_x_mod + 1) +         ({x = (src.x + curr_x_mod), y = curr_y} :: curr_row) +      ) + +generate_grid : ( +      Battlemap.Location.Type -> +      Int ->        Int ->        (List Battlemap.Location.Type) ->        (List Battlemap.Location.Type)     ) -generate_grid src max_dist curr_dist curr_y_mod curr_x_mod curr_list = -   if (curr_x_mod > curr_dist) +generate_grid src dist curr_y_mod curr_list = +   if (curr_y_mod > dist)     then -      if (curr_y_mod > max_dist) -      then -         curr_list -      else -         let -            new_limit = (max_dist - (abs curr_y_mod)) -         in -         (generate_grid -            src -            max_dist -            new_limit -            (curr_y_mod + 1) -            (-new_limit) -            curr_list -         ) +      curr_list     else +      let +         new_limit = (dist - (abs curr_y_mod)) +      in           (generate_grid              src -            max_dist -            curr_dist -            curr_y_mod -            (curr_x_mod + 1) -            ({x = (src.x + curr_x_mod), y = (src.y + curr_y_mod)} :: curr_list) +            dist +            (curr_y_mod + 1) +            ( +               (generate_row +                  src +                  new_limit +                  (src.y + curr_y_mod) +                  (-new_limit) +                  [] +               ) +               ++ curr_list +            )           )  get_closest : ( @@ -118,7 +134,7 @@ search : (        (Dict.Dict Battlemap.Location.Ref Type)     )  search result remaining dist = -   if (Dict.isEmpty remaining) +   if (Dict.isEmpty (Debug.log "Search call" remaining))     then        result     else @@ -207,7 +223,7 @@ generate battlemap location dist =           battlemap           location           dist -         (generate_grid location dist 0 (-dist) (-dist) []) +         (generate_grid location dist (-dist) [])           Dict.empty        )        dist diff --git a/client/elm/battlemap/src/Battlemap/Tile.elm b/client/elm/battlemap/src/Battlemap/Tile.elm index 068ee30..6d2a65b 100644 --- a/client/elm/battlemap/src/Battlemap/Tile.elm +++ b/client/elm/battlemap/src/Battlemap/Tile.elm @@ -1,14 +1,25 @@ -module Battlemap.Tile exposing (Type, set_direction, set_navigation) +module Battlemap.Tile exposing +   ( +      Type, +      TileModifier(..), +      set_direction, +      set_navigation, +      reset_tile +   )  import Battlemap.Direction  import Character +type TileModifier = +   CanBeReached +   | CanBeAttacked +  type alias Type =     {        floor_level : Int,        nav_level : Battlemap.Direction.Type, -      char_level : (Maybe Character.Ref) ---    mod_level : (Set TileModifier) +      char_level : (Maybe Character.Ref), +      mod_level : (Maybe TileModifier)     }  set_direction : Battlemap.Direction.Type -> Type -> Type @@ -22,3 +33,10 @@ set_navigation dir t =     {t |        nav_level = dir     } + +reset_tile : Type -> Type +reset_tile t = +   {t | +      nav_level = Battlemap.Direction.None, +      mod_level = Nothing +   } | 


