summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'client/elm/battlemap/src/Battlemap/Navigator.elm')
-rw-r--r-- | client/elm/battlemap/src/Battlemap/Navigator.elm | 106 |
1 files changed, 1 insertions, 105 deletions
diff --git a/client/elm/battlemap/src/Battlemap/Navigator.elm b/client/elm/battlemap/src/Battlemap/Navigator.elm index 41593c5..79f1f73 100644 --- a/client/elm/battlemap/src/Battlemap/Navigator.elm +++ b/client/elm/battlemap/src/Battlemap/Navigator.elm @@ -2,19 +2,16 @@ module Battlemap.Navigator exposing ( Type, new_navigator, - reset_navigation, - go + reset_navigation ) import Set -- exposing (Set, member, empty, insert, remove) -import List -- exposing (head, tail) import Battlemap import Battlemap.Direction import Battlemap.Location import Battlemap.Tile -import Character type alias Type = { @@ -39,104 +36,3 @@ reset_navigation t = {t | nav_level = Battlemap.Direction.None } - -go : ( - Battlemap.Type -> - Type -> - Battlemap.Direction.Type -> - (List Character.Type) -> - (Battlemap.Type, Type) - ) -go battlemap nav dir char_list = - let - next_location = (Battlemap.Location.neighbor nav.current_location dir) - is_occupied = (List.any (\c -> (c.location == next_location)) char_list) - in - if - ( - (not is_occupied) - && (nav.remaining_points > 0) - && (Battlemap.has_location battlemap next_location) - && (nav.current_location /= next_location) - && - (not - (Set.member - (Battlemap.Location.get_ref next_location) - nav.visited_locations - ) - ) - ) - then - ( - (case - (Battlemap.apply_to_tile - battlemap - nav.current_location - (Battlemap.Tile.set_direction dir) - ) - of - Nothing -> battlemap - (Just bmap0) -> - (case - (Battlemap.apply_to_tile - bmap0 - next_location - (Battlemap.Tile.set_direction dir) - ) - of - Nothing -> battlemap - (Just bmap1) -> bmap1 - ) - ), - {nav | - current_location = next_location, - visited_locations = - (Set.insert - (Battlemap.Location.get_ref nav.current_location) - nav.visited_locations - ), - previous_directions = (dir :: nav.previous_directions), - remaining_points = (nav.remaining_points - 1) - } - ) - else if (not is_occupied) - then - case - ( - (List.head nav.previous_directions), - (List.tail nav.previous_directions) - ) - of - (Nothing, _) -> (battlemap, nav) - (_ , Nothing) -> (battlemap, nav) - ((Just prev_dir), (Just prev_dir_list)) -> - if (dir == (Battlemap.Direction.opposite_of prev_dir)) - then - ( - (case - (Battlemap.apply_to_tile - battlemap - nav.current_location - (Battlemap.Tile.set_direction - Battlemap.Direction.None - ) - ) - of - Nothing -> battlemap - (Just bmap) -> bmap - ), - {nav | - current_location = next_location, - visited_locations = - (Set.remove - (Battlemap.Location.get_ref next_location) - nav.visited_locations - ), - previous_directions = prev_dir_list, - remaining_points = (nav.remaining_points + 1) - } - ) - else - (battlemap, nav) - else - (battlemap, nav) |