blob: c6c7ae330104d6b7e26b19c772b71906935ed53d (
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
module ElmModule.Update exposing (update)
-- Local Module ----------------------------------------------------------------
import Struct.Event
import Struct.Model
import Update.HandleServerReply
import Update.Puppeteer
import Update.SelectCharacter
import Update.SelectCharacterOrTile
import Update.SelectTile
import Update.SetRequestedHelp
import Update.Character.DisplayCharacterInfo
import Update.Character.LookForCharacter
import Update.CharacterTurn.AbortTurn
import Update.CharacterTurn.Attack
import Update.CharacterTurn.EndTurn
import Update.CharacterTurn.RequestDirection
import Update.CharacterTurn.SwitchWeapon
import Update.CharacterTurn.UndoAction
import Update.UI.ChangeScale
import Update.UI.GoToMainMenu
import Update.UI.SelectTab
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
update : (
Struct.Event.Type ->
Struct.Model.Type ->
(Struct.Model.Type, (Cmd Struct.Event.Type))
)
update event model =
case event of
Struct.Event.None -> (model, Cmd.none)
(Struct.Event.Failed err) ->
(
(Struct.Model.invalidate err model),
Cmd.none
)
Struct.Event.AttackRequest ->
(Update.CharacterTurn.Attack.apply_to model)
Struct.Event.AnimationEnded ->
(Update.Puppeteer.apply_to model)
(Struct.Event.DirectionRequested d) ->
(Update.CharacterTurn.RequestDirection.apply_to d model)
(Struct.Event.TileSelected loc) ->
(Update.SelectTile.apply_to loc model)
(Struct.Event.CharacterOrTileSelected loc) ->
(Update.SelectCharacterOrTile.apply_to loc model)
(Struct.Event.CharacterSelected char_id) ->
(Update.SelectCharacter.apply_to char_id model)
(Struct.Event.CharacterInfoRequested char_id) ->
(Update.Character.DisplayCharacterInfo.apply_to char_id model)
(Struct.Event.LookingForCharacter char_id) ->
(Update.Character.LookForCharacter.apply_to char_id model)
Struct.Event.TurnEnded ->
(Update.CharacterTurn.EndTurn.apply_to model)
(Struct.Event.ScaleChangeRequested mod) ->
(Update.UI.ChangeScale.apply_to mod model)
(Struct.Event.TabSelected tab) ->
(Update.UI.SelectTab.apply_to tab model)
(Struct.Event.ServerReplied result) ->
(Update.HandleServerReply.apply_to result model)
Struct.Event.WeaponSwitchRequest ->
(Update.CharacterTurn.SwitchWeapon.apply_to model)
Struct.Event.AbortTurnRequest ->
(Update.CharacterTurn.AbortTurn.apply_to model)
Struct.Event.UndoActionRequest ->
(Update.CharacterTurn.UndoAction.apply_to model)
(Struct.Event.RequestedHelp help_request) ->
(Update.SetRequestedHelp.apply_to help_request model)
Struct.Event.GoToMainMenu ->
(Update.UI.GoToMainMenu.apply_to model)
|