From fbe232187e36f6661709376d0994ee48e9b27274 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Tue, 5 Dec 2017 16:33:11 +0100 Subject: ... --- src/battlemap/src/Main.elm | 24 +++--- src/battlemap/src/Send/CharacterTurn.elm | 21 +++-- src/battlemap/src/Send/LoadBattlemap.elm | 9 +- src/battlemap/src/Send/Query/CharacterTurn.elm | 115 ------------------------- src/battlemap/src/Send/Send.elm | 14 ++- src/battlemap/src/Struct/CharacterTurn.elm | 111 ++++++++++++++++++++++++ 6 files changed, 144 insertions(+), 150 deletions(-) delete mode 100644 src/battlemap/src/Send/Query/CharacterTurn.elm create mode 100644 src/battlemap/src/Struct/CharacterTurn.elm (limited to 'src/battlemap') diff --git a/src/battlemap/src/Main.elm b/src/battlemap/src/Main.elm index 5a9d843..96b267f 100644 --- a/src/battlemap/src/Main.elm +++ b/src/battlemap/src/Main.elm @@ -1,20 +1,22 @@ +-- Elm ------------------------------------------------------------------------ import Html -import Model -import Event +-- Battlemap ------------------------------------------------------------------- +import Struct.Model +import Struct.Event -import Init -import Subscriptions -import View -import Update +import ElmModule.Init +import ElmModule.Subscriptions +import ElmModule.View +import ElmModule.Update -main : (Program Never Model.Type Event.Type) +main : (Program Never Struct.Model.Type Struct.Event.Type) main = (Html.program { - init = Init.init, - view = View.view, - update = Update.update, - subscriptions = Subscriptions.subscriptions + init = ElmModule.Init.init, + view = ElmModule.View.view, + update = ElmModule.Update.update, + subscriptions = ElmModule.Subscriptions.subscriptions } ) diff --git a/src/battlemap/src/Send/CharacterTurn.elm b/src/battlemap/src/Send/CharacterTurn.elm index d096ac3..f7cf1c9 100644 --- a/src/battlemap/src/Send/CharacterTurn.elm +++ b/src/battlemap/src/Send/CharacterTurn.elm @@ -4,17 +4,16 @@ module Send.CharacterTurn exposing (try) import Json.Encode -- Battlemap ------------------------------------------------------------------- -import Battlemap -import Battlemap.Direction - -import UI +import Struct.Battlemap +import Struct.Direction +import Struct.UI +import Struct.Event +import Struct.Model import Constants.IO -import Event - -import Model import Send + -------------------------------------------------------------------------------- -- TYPES ------------------------------------------------------------------------ -------------------------------------------------------------------------------- @@ -22,7 +21,7 @@ import Send -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -try_encoding : Model.Type -> (Maybe Json.Encode.Value) +try_encoding : Struct.Model.Type -> (Maybe Json.Encode.Value) try_encoding model = case model.controlled_character of (Just char_ref) -> @@ -41,10 +40,10 @@ try_encoding model = ( (Json.Encode.string) << - (Battlemap.Direction.to_string) + (Struct.Direction.to_string) ) (List.reverse - (Battlemap.get_navigator_path model.battlemap) + (Struct.Battlemap.get_navigator_path model.battlemap) ) ) ) @@ -65,6 +64,6 @@ try_encoding model = -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- -try : Model.Type -> (Maybe (Cmd Event.Type)) +try : Struct.Model.Type -> (Maybe (Cmd Struct.Event.Type)) try model = (Send.try_sending model Constants.IO.character_turn_handler try_encoding) diff --git a/src/battlemap/src/Send/LoadBattlemap.elm b/src/battlemap/src/Send/LoadBattlemap.elm index b81ba00..08bff57 100644 --- a/src/battlemap/src/Send/LoadBattlemap.elm +++ b/src/battlemap/src/Send/LoadBattlemap.elm @@ -4,14 +4,13 @@ module Send.LoadBattlemap exposing (try) import Json.Encode -- Battlemap ------------------------------------------------------------------- -import Constants.IO +import Struct.Model +import Struct.Event -import Model +import Constants.IO import Send -import Event - -------------------------------------------------------------------------------- -- TYPES ------------------------------------------------------------------------ -------------------------------------------------------------------------------- @@ -19,7 +18,7 @@ import Event -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -try_encoding : Model.Type -> (Maybe Json.Encode.Value) +try_encoding : Struct.Model.Type -> (Maybe Json.Encode.Value) try_encoding model = (Just (Json.Encode.object diff --git a/src/battlemap/src/Send/Query/CharacterTurn.elm b/src/battlemap/src/Send/Query/CharacterTurn.elm deleted file mode 100644 index ec7efa0..0000000 --- a/src/battlemap/src/Send/Query/CharacterTurn.elm +++ /dev/null @@ -1,115 +0,0 @@ -module Query.CharacterTurn exposing - ( - Type, - State(..), - new, - try_getting_controlled_character, - set_controlled_character, - get_state, - get_path, - set_path, - add_target, - remove_target, - get_targets - ) - --- Elm ------------------------------------------------------------------------- -import List - --- Battlemap ------------------------------------------------------------------- -import Battlemap -import Battlemap.Direction - -import UI - -import Error - -import Character - --------------------------------------------------------------------------------- --- TYPES ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -type State = - Default - | SelectedCharacter - | MovedCharacter - | ChoseTarget - -type alias Type = - { - state : State, - controlled_character : (Maybe Character.Ref), - path : (List Battlemap.Direction.Type), - targets : (List Character.Ref) - } - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -new : Type -new = - { - state = Default, - controlled_character = Nothing, - path = [], - targets = [] - } - -try_getting_controlled_character : Type -> (Maybe Character.Ref) -try_getting_controlled_character ct = ct.controlled_character - -set_controlled_character : Type -> Character.Ref -> Type -set_controlled_character ct char_ref = - { - state = SelectedCharacter, - controlled_character = (Just char_ref), - path = [], - targets = [] - } - -get_state : Type -> State -get_state ct = ct.state - -get_path : Type -> (List Battlemap.Direction.Type) -get_path ct = ct.path - -set_path : Type -> (List Battlemap.Direction.Type) -> Type -set_path ct path = - {ct | - state = MovedCharacter, - path = path, - targets = [] - } - -add_target : Type -> Character.Ref -> Type -add_target ct target_ref = - {ct | - state = ChoseTarget, - targets = (List.append ct.targets [target_ref]) - } - -remove_target : Type -> Int -> Type -remove_target ct i = - let - new_targets = (List.drop i ct.list) - in - case new_targets of - [] -> - {ct | - state = MovedCharacter, - path = path, - targets = [] - } - - _ -> - {ct | - state = ChoseTarget, - targets = new_targets - } - -get_targets : Type -> (List Character.Ref) -get_targets ct = ct.targets diff --git a/src/battlemap/src/Send/Send.elm b/src/battlemap/src/Send/Send.elm index 3288050..ec14ce6 100644 --- a/src/battlemap/src/Send/Send.elm +++ b/src/battlemap/src/Send/Send.elm @@ -7,9 +7,8 @@ import Json.Encode import Http -- Battlemap ------------------------------------------------------------------- -import Model - -import Event +import Struct.Model +import Struct.Event -------------------------------------------------------------------------------- -- TYPES ----------------------------------------------------------------------- @@ -26,19 +25,18 @@ decoder = -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- - try_sending : ( - Model.Type -> + Struct.Model.Type -> String -> - (Model.Type -> (Maybe Json.Encode.Value)) -> - (Maybe (Cmd Event.Type)) + (Struct.Model.Type -> (Maybe Json.Encode.Value)) -> + (Maybe (Cmd Struct.Event.Type)) ) try_sending model recipient try_encoding_fun = case (try_encoding_fun model) of (Just serial) -> (Just (Http.send - Event.ServerReplied + Struct.Event.ServerReplied (Http.post recipient (Http.jsonBody serial) diff --git a/src/battlemap/src/Struct/CharacterTurn.elm b/src/battlemap/src/Struct/CharacterTurn.elm new file mode 100644 index 0000000..f234184 --- /dev/null +++ b/src/battlemap/src/Struct/CharacterTurn.elm @@ -0,0 +1,111 @@ +module Struct.CharacterTurn exposing + ( + Type, + State(..), + new, + try_getting_controlled_character, + set_controlled_character, + get_state, + get_path, + set_path, + add_target, + remove_target, + get_targets + ) + +-- Elm ------------------------------------------------------------------------- +import List + +-- Battlemap ------------------------------------------------------------------- +import Struct.Battlemap +import Struct.Character +import Struct.Direction +import Struct.Error + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type State = + Default + | SelectedCharacter + | MovedCharacter + | ChoseTarget + +type alias Type = + { + state : State, + controlled_character : (Maybe Struct.Character.Ref), + path : (List Struct.Direction.Type), + targets : (List Struct.Character.Ref) + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +new : Type +new = + { + state = Default, + controlled_character = Nothing, + path = [], + targets = [] + } + +try_getting_controlled_character : Type -> (Maybe Struct.Character.Ref) +try_getting_controlled_character ct = ct.controlled_character + +set_controlled_character : Type -> Struct.Character.Ref -> Type +set_controlled_character ct char_ref = + { + state = SelectedCharacter, + controlled_character = (Just char_ref), + path = [], + targets = [] + } + +get_state : Type -> State +get_state ct = ct.state + +get_path : Type -> (List Struct.Direction.Type) +get_path ct = ct.path + +set_path : Type -> (List Struct.Direction.Type) -> Type +set_path ct path = + {ct | + state = MovedCharacter, + path = path, + targets = [] + } + +add_target : Type -> Struct.Character.Ref -> Type +add_target ct target_ref = + {ct | + state = ChoseTarget, + targets = (List.append ct.targets [target_ref]) + } + +remove_target : Type -> Int -> Type +remove_target ct i = + let + new_targets = (List.drop i ct.list) + in + case new_targets of + [] -> + {ct | + state = MovedCharacter, + path = path, + targets = [] + } + + _ -> + {ct | + state = ChoseTarget, + targets = new_targets + } + +get_targets : Type -> (List Struct.Character.Ref) +get_targets ct = ct.targets -- cgit v1.2.3-70-g09d2