From 2c9b2af9ac011a871c5c02d3e2258fca73a98880 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Wed, 27 Sep 2017 10:31:16 +0200 Subject: Splits client and server into two repositories. --- elm/battlemap/src/Update/DirectionRequest.elm | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 elm/battlemap/src/Update/DirectionRequest.elm (limited to 'elm/battlemap/src/Update/DirectionRequest.elm') 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)} -- cgit v1.2.3-70-g09d2