| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-27 10:31:16 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-27 10:31:16 +0200 | 
| commit | 2c9b2af9ac011a871c5c02d3e2258fca73a98880 (patch) | |
| tree | 653db3959f444f1065f05658650c6ec81863d627 /elm/battlemap/src/Update/DirectionRequest.elm | |
| parent | 33e57128d48a012533c42635f52037fcdedd4c56 (diff) | |
Splits client and server into two repositories.
Diffstat (limited to 'elm/battlemap/src/Update/DirectionRequest.elm')
| -rw-r--r-- | elm/battlemap/src/Update/DirectionRequest.elm | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/elm/battlemap/src/Update/DirectionRequest.elm b/elm/battlemap/src/Update/DirectionRequest.elm new file mode 100644 index 0000000..da32240 --- /dev/null +++ b/elm/battlemap/src/Update/DirectionRequest.elm @@ -0,0 +1,37 @@ +module Update.DirectionRequest exposing (apply_to) + +import Dict + +import Battlemap.Direction +import Battlemap.Navigator.Move + +import Model +import Error + +make_it_so : Model.Type -> Battlemap.Direction.Type -> Model.Type +make_it_so model dir = +   case model.selection of +      Nothing -> {model | state = (Model.Error Error.Programming)} +      (Just selection) -> +         let +            (new_bmap, new_nav) = +               (Battlemap.Navigator.Move.to +                  model.battlemap +                  selection.navigator +                  dir +                  (Dict.values model.characters) +               ) +         in +            {model | +               state = Model.MovingCharacterWithButtons, +               battlemap = new_bmap, +               selection = (Just {selection | navigator = new_nav}) +            } + + +apply_to : Model.Type -> Battlemap.Direction.Type -> Model.Type +apply_to model dir = +   case model.state of +      Model.MovingCharacterWithButtons -> (make_it_so model dir) +      Model.MovingCharacterWithClick -> (make_it_so model dir) +      _ -> {model | state = (Model.Error Error.IllegalAction)} | 


