| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | src/battlemap/src/Send/CharacterTurn.elm | 10 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/CharacterTurn.elm | 18 | ||||
| -rw-r--r-- | src/battlemap/src/Update/EndTurn.elm | 16 | ||||
| -rw-r--r-- | src/battlemap/src/Update/SelectCharacter.elm | 13 | ||||
| -rw-r--r-- | src/battlemap/src/View/Footer.elm | 36 | 
5 files changed, 47 insertions, 46 deletions
| diff --git a/src/battlemap/src/Send/CharacterTurn.elm b/src/battlemap/src/Send/CharacterTurn.elm index 79e90a3..06b7665 100644 --- a/src/battlemap/src/Send/CharacterTurn.elm +++ b/src/battlemap/src/Send/CharacterTurn.elm @@ -9,6 +9,7 @@ import Constants.IO  import Send.Send  import Struct.Battlemap +import Struct.Character  import Struct.CharacterTurn  import Struct.Direction  import Struct.Event @@ -25,9 +26,9 @@ import Struct.UI  try_encoding : Struct.Model.Type -> (Maybe Json.Encode.Value)  try_encoding model =     case -      (Struct.CharacterTurn.try_getting_controlled_character model.char_turn) +      (Struct.CharacterTurn.try_getting_active_character model.char_turn)     of -      (Just char_ref) -> +      (Just char) ->           (Just              (Json.Encode.object                 [ @@ -35,7 +36,10 @@ try_encoding model =                    ("player_id", (Json.Encode.string model.player_id)),                    ("battlemap_id", (Json.Encode.string "0")),                    ("instance_id", (Json.Encode.string "0")), -                  ("char_id", (Json.Encode.string char_ref)), +                  ( +                     "char_id", +                     (Json.Encode.string (Struct.Character.get_ref char)) +                  ),                    (                       "path",                       (Json.Encode.list diff --git a/src/battlemap/src/Struct/CharacterTurn.elm b/src/battlemap/src/Struct/CharacterTurn.elm index 48703fe..ea651c5 100644 --- a/src/battlemap/src/Struct/CharacterTurn.elm +++ b/src/battlemap/src/Struct/CharacterTurn.elm @@ -10,9 +10,9 @@ module Struct.CharacterTurn exposing        lock_path,        new,        remove_target, -      set_controlled_character, +      set_active_character,        set_navigator, -      try_getting_controlled_character, +      try_getting_active_character,        try_getting_navigator     ) @@ -38,7 +38,7 @@ type State =  type alias Type =     {        state : State, -      controlled_character : (Maybe Struct.Character.Ref), +      active_character : (Maybe Struct.Character.Type),        path : (List Struct.Direction.Type),        targets : (List Struct.Character.Ref),        navigator : (Maybe Struct.Navigator.Type) @@ -55,29 +55,29 @@ new : Type  new =     {        state = Default, -      controlled_character = Nothing, +      active_character = Nothing,        path = [],        targets = [],        navigator = Nothing     } -try_getting_controlled_character : Type -> (Maybe Struct.Character.Ref) -try_getting_controlled_character ct = ct.controlled_character +try_getting_active_character : Type -> (Maybe Struct.Character.Type) +try_getting_active_character ct = ct.active_character  can_select_targets : Type -> Bool  can_select_targets ct =     ((ct.state == MovedCharacter) || ((ct.state == ChoseTarget))) -set_controlled_character : ( +set_active_character : (        Type ->        Struct.Character.Type ->        Type     ) -set_controlled_character ct char = +set_active_character ct char =     {ct |        state = SelectedCharacter, -      controlled_character = (Just (Struct.Character.get_ref char)), +      active_character = (Just char),        path = [],        targets = [],        navigator = Nothing diff --git a/src/battlemap/src/Update/EndTurn.elm b/src/battlemap/src/Update/EndTurn.elm index f3e275c..1a909d9 100644 --- a/src/battlemap/src/Update/EndTurn.elm +++ b/src/battlemap/src/Update/EndTurn.elm @@ -19,18 +19,18 @@ import Struct.Navigator  --------------------------------------------------------------------------------  make_it_so : (        Struct.Model.Type -> -      Struct.Character.Ref -> +      Struct.Character.Type ->        Struct.Navigator.Type ->        (Struct.Model.Type, (Cmd Struct.Event.Type))     ) -make_it_so model char_id nav = +make_it_so model char nav =     case (Send.CharacterTurn.try model) of        (Just cmd) ->           (              (Struct.Model.reset                 model                 (Dict.update -                  char_id +                  (Struct.Character.get_ref char)                    (\maybe_char ->                       case maybe_char of                          (Just char) -> @@ -62,7 +62,7 @@ apply_to model =     case        (           (Struct.CharacterTurn.get_state model.char_turn), -         (Struct.CharacterTurn.try_getting_controlled_character +         (Struct.CharacterTurn.try_getting_active_character              model.char_turn           ),           (Struct.CharacterTurn.try_getting_navigator model.char_turn) @@ -70,17 +70,17 @@ apply_to model =     of        (           Struct.CharacterTurn.MovedCharacter, -         (Just char_id), +         (Just char),           (Just nav)        ) -> -         (make_it_so model char_id nav) +         (make_it_so model char nav)        (           Struct.CharacterTurn.ChoseTarget, -         (Just char_id), +         (Just char),           (Just nav)        ) -> -         (make_it_so model char_id nav) +         (make_it_so model char nav)        (_, _, _) ->           ( diff --git a/src/battlemap/src/Update/SelectCharacter.elm b/src/battlemap/src/Update/SelectCharacter.elm index a1062c0..0dbe923 100644 --- a/src/battlemap/src/Update/SelectCharacter.elm +++ b/src/battlemap/src/Update/SelectCharacter.elm @@ -7,7 +7,6 @@ import Dict  import Struct.Battlemap  import Struct.Character  import Struct.CharacterTurn -import Struct.Direction  import Struct.Error  import Struct.Event  import Struct.Location @@ -16,19 +15,16 @@ import Struct.Navigator  import Struct.Statistics  import Struct.UI -import Update.RequestDirection -  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  --------------------------------------------------------------------------------  attack_character : (        Struct.Model.Type ->        Struct.Character.Ref -> -      Struct.Character.Ref ->        Struct.Character.Type ->        Struct.Model.Type     ) -attack_character model main_char_id target_char_id target_char = +attack_character model target_char_id target_char =     {model |        char_turn =           (Struct.CharacterTurn.add_target model.char_turn target_char_id), @@ -48,7 +44,7 @@ ctrl_or_focus_character model target_char_id target_char =        {model |           char_turn =              (Struct.CharacterTurn.set_navigator -               (Struct.CharacterTurn.set_controlled_character +               (Struct.CharacterTurn.set_active_character                    model.char_turn                    target_char                 ) @@ -117,17 +113,16 @@ double_clicked_character model target_char_id =     case (Dict.get target_char_id model.characters) of        (Just target_char) ->           case -            (Struct.CharacterTurn.try_getting_controlled_character +            (Struct.CharacterTurn.try_getting_active_character                 model.char_turn              )           of -            (Just main_char_id) -> +            (Just _) ->                 if (can_target_character model target_char)                 then                    (                       (attack_character                          model -                        main_char_id                          target_char_id                          target_char                       ), diff --git a/src/battlemap/src/View/Footer.elm b/src/battlemap/src/View/Footer.elm index 8fa5bd9..47443ed 100644 --- a/src/battlemap/src/View/Footer.elm +++ b/src/battlemap/src/View/Footer.elm @@ -39,12 +39,11 @@ inventory_button =  get_navigator_info : (        Struct.Model.Type -> -      Struct.Character.Type->        String     )  get_navigator_info model char =     case -      (Struct.CharacterTurn.try_getting_navigator model.char_turn) +      (Struct.CharacterTurn.try_getting_active_character model.char_turn)     of        (Just nav) ->           ( @@ -60,21 +59,18 @@ get_navigator_info model char =           )        _ -> -         "[Error: Unknown character selected.]" +         "[Error: Character selected yet navigator undefined.]"  get_curr_char_info_htmls : (        Struct.Model.Type -> -      Struct.Character.Ref -> +      Struct.Character.Type ->        (List (Html.Html Struct.Event.Type))     ) -get_curr_char_info_htmls model char_ref = +get_curr_char_info_htmls model char =     case -      ( -         (Struct.CharacterTurn.get_state model.char_turn), -         (Dict.get char_ref model.characters) -      ) +      (Struct.CharacterTurn.get_state model.char_turn)     of -      (Struct.CharacterTurn.SelectedCharacter, (Just char)) -> +      Struct.CharacterTurn.SelectedCharacter ->           [              (Html.text                 ( @@ -88,7 +84,7 @@ get_curr_char_info_htmls model char_ref =              (inventory_button)           ] -      (Struct.CharacterTurn.MovedCharacter, (Just char)) -> +      Struct.CharacterTurn.MovedCharacter ->           [              (Html.text                 ( @@ -100,7 +96,7 @@ get_curr_char_info_htmls model char_ref =              (end_turn_button)           ] -      (Struct.CharacterTurn.ChoseTarget, (Just char)) -> +      Struct.CharacterTurn.ChoseTarget ->           [              (Html.text                 ( @@ -112,8 +108,14 @@ get_curr_char_info_htmls model char_ref =              (end_turn_button)           ] -      (_, _) -> -         [(Html.text "Error: Unknown character selected.")] +      _ -> +         [ +            (Html.text +               "Error: CharacterTurn structure in an inconsistent state:" +               ++ " Has an active character yet the 'state' is not any of those" +               ++ " expected in such cases." +            ) +         ]  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- @@ -121,12 +123,12 @@ get_curr_char_info_htmls model char_ref =  get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)  get_html model =     case -      (Struct.CharacterTurn.try_getting_controlled_character model.char_turn) +      (Struct.CharacterTurn.try_getting_active_character model.char_turn)     of -      (Just char_id) -> +      (Just char) ->           (Html.div              [(Html.Attributes.class "battlemap-footer")] -            (get_curr_char_info_htmls model char_id) +            (get_curr_char_info_htmls model char)           )        Nothing -> (Util.Html.nothing) | 


