summaryrefslogtreecommitdiff
blob: 1a844815382494fd4be94e435adebc042d9f8d66 (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
module Update exposing (update)

import Event

import Model
import Model.RequestDirection
import Model.SelectTile
import Model.SelectCharacter
import Model.EndTurn

update : Event.Type -> Model.Type -> Model.Type
update event model =
   let
      new_model = (Model.clear_error model)
   in
   case event of
      (Event.DirectionRequested d) ->
         (Model.RequestDirection.apply_to new_model d)

      (Event.TileSelected loc) ->
         (Model.SelectTile.apply_to new_model loc)

      (Event.CharacterSelected char_id) ->
         (Model.SelectCharacter.apply_to new_model char_id)

      Event.TurnEnded ->
         (Model.EndTurn.apply_to new_model)