summaryrefslogtreecommitdiff
blob: 79f1f7335f998d0df4efc3a92c5849fbd7b04b17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module Battlemap.Navigator exposing
   (
      Type,
      new_navigator,
      reset_navigation
   )

import Set -- exposing (Set, member, empty, insert, remove)

import Battlemap
import Battlemap.Direction
import Battlemap.Location
import Battlemap.Tile


type alias Type =
   {
      current_location : Battlemap.Location.Type,
      visited_locations : (Set.Set Battlemap.Location.Ref),
      previous_directions : (List Battlemap.Direction.Type),
      remaining_points : Int
   }

new_navigator : Battlemap.Location.Type -> Int -> Type
new_navigator start points =
   {
      current_location = start,
      visited_locations = Set.empty,
      previous_directions = [],
      remaining_points = points
   }


reset_navigation : Battlemap.Tile.Type -> Battlemap.Tile.Type
reset_navigation t =
   {t |
      nav_level = Battlemap.Direction.None
   }