summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap/src/Struct/TurnResultAnimator.elm')
-rw-r--r-- | src/battlemap/src/Struct/TurnResultAnimator.elm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/battlemap/src/Struct/TurnResultAnimator.elm b/src/battlemap/src/Struct/TurnResultAnimator.elm new file mode 100644 index 0000000..b588631 --- /dev/null +++ b/src/battlemap/src/Struct/TurnResultAnimator.elm @@ -0,0 +1,50 @@ +module Struct.TurnResultAnimator exposing + ( + Type, + maybe_new, + maybe_trigger_next_step, + get_current_action + ) + +-- Elm ------------------------------------------------------------------------- + +-- Battlemap ------------------------------------------------------------------- +import Struct.TurnResult + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type alias Type = + { + remaining_actions : (List Struct.TurnResult.Type), + current_action : Struct.TurnResult.Type + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +maybe_new : (List Struct.TurnResult.Type) -> (Maybe Type) +maybe_new turn_results = + case ((List.head turn_results), (List.tail turn_results)) of + ((Just head), (Just tail)) -> + (Just + { + remaining_actions = tail, + current_action = head + } + ) + + (_, _) -> Nothing + +maybe_trigger_next_step : Type -> (Maybe Type) +maybe_trigger_next_step tra = + case (Struct.TurnResult.maybe_remove_step tra.current_action) of + (Just updated_action) -> (Just {tra | current_action = updated_action}) + Nothing -> (maybe_new tra.remaining_actions) + +get_current_action : Type -> Struct.TurnResult.Type +get_current_action tra = tra.current_action |