summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'elm/battlemap/src/Model.elm')
-rw-r--r--elm/battlemap/src/Model.elm36
1 files changed, 34 insertions, 2 deletions
diff --git a/elm/battlemap/src/Model.elm b/elm/battlemap/src/Model.elm
index 4303b6f..437d118 100644
--- a/elm/battlemap/src/Model.elm
+++ b/elm/battlemap/src/Model.elm
@@ -1,10 +1,20 @@
-module Model exposing (Type, CharacterSelection, State(..))
+module Model exposing
+ (
+ Type,
+ CharacterSelection,
+ State(..),
+ get_state,
+ invalidate,
+ reset,
+ clear_error
+ )
import Dict
import Battlemap
import Battlemap.Navigator
import Battlemap.Location
+import Battlemap.Tile
import Battlemap.RangeIndicator
import Error
@@ -24,7 +34,6 @@ type alias CharacterSelection =
type State =
Default
- | Error Error.Type
| MovingCharacterWithButtons
| MovingCharacterWithClick
| FocusingTile
@@ -34,5 +43,28 @@ type alias Type =
state: State,
battlemap: Battlemap.Type,
characters: (Dict.Dict Character.Ref Character.Type),
+ error: (Maybe Error.Type),
selection: (Maybe CharacterSelection)
}
+
+get_state : Type -> State
+get_state model = model.state
+
+reset : Type -> Type
+reset model =
+ {model |
+ state = Default,
+ selection = Nothing,
+ error = Nothing,
+ battlemap =
+ (Battlemap.apply_to_all_tiles
+ model.battlemap
+ (Battlemap.Tile.reset)
+ )
+ }
+
+invalidate : Type -> Error.Type -> Type
+invalidate model err = {model | error = (Just err)}
+
+clear_error : Type -> Type
+clear_error model = {model | error = Nothing}