| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-05-24 00:01:27 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-05-24 00:01:27 +0200 | 
| commit | b61d70864de7e4a39196e06aaa7630c445e322c0 (patch) | |
| tree | 7946c4a845161cac248a560f7a60c945d5fd2407 /src | |
| parent | fc09d979e4c753377131684b1100c250e89765ea (diff) | |
...
Diffstat (limited to 'src')
43 files changed, 519 insertions, 549 deletions
| diff --git a/src/battle/src/Comm/CharacterTurn.elm b/src/battle/src/Comm/CharacterTurn.elm index 61b9f99..297180b 100644 --- a/src/battle/src/Comm/CharacterTurn.elm +++ b/src/battle/src/Comm/CharacterTurn.elm @@ -4,7 +4,7 @@ module Comm.CharacterTurn exposing (try)  import Json.Encode  -- Shared ---------------------------------------------------------------------- -import Struct.Flags +import Shared.Struct.Flags  -- Local Module ----------------------------------------------------------------  import Constants.IO @@ -34,13 +34,13 @@ maybe_encode model =                    (                       "stk",                       (Json.Encode.string -                        (Struct.Flags.get_session_token model.flags) +                        (Shared.Struct.Flags.get_session_token model.flags)                       )                    ),                    (                       "pid",                       (Json.Encode.string -                        (Struct.Flags.get_user_id model.flags) +                        (Shared.Struct.Flags.get_user_id model.flags)                       )                    ),                    ( diff --git a/src/battle/src/Comm/LoadBattle.elm b/src/battle/src/Comm/LoadBattle.elm index b7c6759..57a7e03 100644 --- a/src/battle/src/Comm/LoadBattle.elm +++ b/src/battle/src/Comm/LoadBattle.elm @@ -4,7 +4,7 @@ module Comm.LoadBattle exposing (try)  import Json.Encode  -- Shared ---------------------------------------------------------------------- -import Struct.Flags +import Shared.Struct.Flags  -- Local Module ----------------------------------------------------------------  import Comm.Send @@ -30,13 +30,13 @@ maybe_encode model =              (                 "stk",                 (Json.Encode.string -                  (Struct.Flags.get_session_token model.flags) +                  (Shared.Struct.Flags.get_session_token model.flags)                 )              ),              (                 "pid",                 (Json.Encode.string -                  (Struct.Flags.get_user_id model.flags) +                  (Shared.Struct.Flags.get_user_id model.flags)                 )              ),              ( diff --git a/src/battle/src/Comm/Send.elm b/src/battle/src/Comm/Send.elm index d7d05fc..f7e737a 100644 --- a/src/battle/src/Comm/Send.elm +++ b/src/battle/src/Comm/Send.elm @@ -1,4 +1,4 @@ -module Comm.Send exposing (maybe_send) +module Comm.Send exposing (maybe_send, send)  -- Elm -------------------------------------------------------------------------  import Http @@ -98,3 +98,22 @@ maybe_send model recipient maybe_encode_fun =           )        Nothing -> Nothing + +send : ( +      Struct.Model.Type -> +      String -> +      (Struct.Model.Type -> Json.Encode.Value) -> +      (Cmd Struct.Event.Type) +   ) +send model recipient encode_fun = +   (Http.post +      { +         url = recipient, +         body = (Http.jsonBody (encode_fun model)), +         expect = +            (Http.expectJson +               Struct.Event.ServerReplied +               (Json.Decode.list (decode)) +            ) +      } +   ) diff --git a/src/battle/src/ElmModule/Init.elm b/src/battle/src/ElmModule/Init.elm index bc90dad..f946d76 100644 --- a/src/battle/src/ElmModule/Init.elm +++ b/src/battle/src/ElmModule/Init.elm @@ -1,7 +1,7 @@  module ElmModule.Init exposing (init)  -- Shared ---------------------------------------------------------------------- -import Struct.Flags +import Shared.Struct.Flags  -- Local Module ----------------------------------------------------------------  import Comm.LoadBattle @@ -16,7 +16,7 @@ import Struct.Model  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- -init : Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) +init : Shared.Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))  init flags =     let model = (Struct.Model.new flags) in        ( diff --git a/src/battle/src/ElmModule/Update.elm b/src/battle/src/ElmModule/Update.elm index 77cdd89..c6c7ae3 100644 --- a/src/battle/src/ElmModule/Update.elm +++ b/src/battle/src/ElmModule/Update.elm @@ -4,23 +4,26 @@ module ElmModule.Update exposing (update)  import Struct.Event  import Struct.Model -import Update.AbortTurn -import Update.AttackWithoutMoving -import Update.ChangeScale -import Update.DisplayCharacterInfo -import Update.EndTurn -import Update.GoToMainMenu  import Update.HandleServerReply -import Update.LookForCharacter  import Update.Puppeteer -import Update.RequestDirection  import Update.SelectCharacter  import Update.SelectCharacterOrTile -import Update.SelectTab  import Update.SelectTile  import Update.SetRequestedHelp -import Update.SwitchWeapon -import Update.UndoAction + +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 ----------------------------------------------------------------------- @@ -44,53 +47,53 @@ update event model =              Cmd.none           ) -      Struct.Event.AttackWithoutMovingRequest -> -         (Update.AttackWithoutMoving.apply_to model) +      Struct.Event.AttackRequest -> +         (Update.CharacterTurn.Attack.apply_to model)        Struct.Event.AnimationEnded ->           (Update.Puppeteer.apply_to model)        (Struct.Event.DirectionRequested d) -> -         (Update.RequestDirection.apply_to model d) +         (Update.CharacterTurn.RequestDirection.apply_to d model)        (Struct.Event.TileSelected loc) -> -         (Update.SelectTile.apply_to model loc) +         (Update.SelectTile.apply_to loc model)        (Struct.Event.CharacterOrTileSelected loc) -> -         (Update.SelectCharacterOrTile.apply_to model loc) +         (Update.SelectCharacterOrTile.apply_to loc model)        (Struct.Event.CharacterSelected char_id) -> -         (Update.SelectCharacter.apply_to model char_id) +         (Update.SelectCharacter.apply_to char_id model)        (Struct.Event.CharacterInfoRequested char_id) -> -         (Update.DisplayCharacterInfo.apply_to model char_id) +         (Update.Character.DisplayCharacterInfo.apply_to char_id model)        (Struct.Event.LookingForCharacter char_id) -> -         (Update.LookForCharacter.apply_to model char_id) +         (Update.Character.LookForCharacter.apply_to char_id model)        Struct.Event.TurnEnded -> -         (Update.EndTurn.apply_to model) +         (Update.CharacterTurn.EndTurn.apply_to model)        (Struct.Event.ScaleChangeRequested mod) -> -         (Update.ChangeScale.apply_to model mod) +         (Update.UI.ChangeScale.apply_to mod model)        (Struct.Event.TabSelected tab) -> -         (Update.SelectTab.apply_to model tab) +         (Update.UI.SelectTab.apply_to tab model)        (Struct.Event.ServerReplied result) -> -         (Update.HandleServerReply.apply_to model result) +         (Update.HandleServerReply.apply_to result model)        Struct.Event.WeaponSwitchRequest -> -         (Update.SwitchWeapon.apply_to model) +         (Update.CharacterTurn.SwitchWeapon.apply_to model)        Struct.Event.AbortTurnRequest -> -         (Update.AbortTurn.apply_to model) +         (Update.CharacterTurn.AbortTurn.apply_to model)        Struct.Event.UndoActionRequest -> -         (Update.UndoAction.apply_to model) +         (Update.CharacterTurn.UndoAction.apply_to model)        (Struct.Event.RequestedHelp help_request) -> -         (Update.SetRequestedHelp.apply_to model help_request) +         (Update.SetRequestedHelp.apply_to help_request model)        Struct.Event.GoToMainMenu -> -         (Update.GoToMainMenu.apply_to model) +         (Update.UI.GoToMainMenu.apply_to model) diff --git a/src/battle/src/Main.elm b/src/battle/src/Main.elm index 761cf4a..4c1615b 100644 --- a/src/battle/src/Main.elm +++ b/src/battle/src/Main.elm @@ -4,7 +4,7 @@ module Main exposing (main)  import Browser  -- Shared ---------------------------------------------------------------------- -import Struct.Flags +import Shared.Struct.Flags  -- Local Module ----------------------------------------------------------------  import Struct.Model @@ -15,7 +15,7 @@ import ElmModule.Subscriptions  import ElmModule.View  import ElmModule.Update -main : (Program Struct.Flags.Type Struct.Model.Type Struct.Event.Type) +main : (Program Shared.Struct.Flags.Type Struct.Model.Type Struct.Event.Type)  main =     (Browser.element        { diff --git a/src/battle/src/Struct/Battle.elm b/src/battle/src/Struct/Battle.elm index a689f7a..5c27e27 100644 --- a/src/battle/src/Struct/Battle.elm +++ b/src/battle/src/Struct/Battle.elm @@ -43,7 +43,9 @@ import Battle.Struct.Omnimods  import Array  -- Shared ---------------------------------------------------------------------- -import Struct.Flags +import Shared.Util.Array + +import Shared.Struct.Flags  -- Battle Map ------------------------------------------------------------------  import BattleMap.Struct.Location @@ -56,7 +58,6 @@ import Struct.Character  import Struct.TurnResult  import Struct.Player -import Util.Array  --------------------------------------------------------------------------------  -- TYPES ----------------------------------------------------------------------- @@ -152,7 +153,7 @@ get_character ix battle = (Array.get ix battle.characters)  set_character : Int -> Struct.Character.Type -> Type -> Type  set_character ix char battle = -   {battle | characters = (Array.set ix char battle.characters) } +   {battle | characters = (Array.set ix char battle.characters)}  update_character : (        Int -> @@ -161,7 +162,9 @@ update_character : (        Type     )  update_character ix fun battle = -   {battle | characters = (Util.Array.update ix (fun) battle.characters) } +   {battle | +      characters = (Shared.Util.Array.update ix (fun) battle.characters) +   }  get_characters : Type -> (Array.Array Struct.Character.Type)  get_characters battle = battle.characters @@ -196,12 +199,15 @@ refresh_character map_dataset ix battle =  -----------------  ---- Players ----  ----------------- -add_player : Struct.Flags.Type -> Struct.Player.Type -> Type -> Type +add_player : Shared.Struct.Flags.Type -> Struct.Player.Type -> Type -> Type  add_player flags pl battle =     {battle |        players = (Array.push pl battle.players),        own_player_ix = -         if ((Struct.Player.get_id pl) == (Struct.Flags.get_user_id flags)) +         if +         ( +            (Struct.Player.get_id pl) == (Shared.Struct.Flags.get_user_id flags) +         )           then (Array.length battle.players)           else battle.own_player_ix     } @@ -211,7 +217,7 @@ get_player ix battle = (Array.get ix battle.players)  set_player : Int -> Struct.Player.Type -> Type -> Type  set_player ix pl battle = -   {battle | players = (Array.set ix pl battle.players) } +   {battle | players = (Array.set ix pl battle.players)}  update_player : (        Int -> @@ -220,7 +226,7 @@ update_player : (        Type     )  update_player ix fun battle = -   {battle | players = (Util.Array.update ix (fun) battle.players) } +   {battle | players = (Shared.Util.Array.update ix (fun) battle.players)}  get_players : Type -> (Array.Array Struct.Player.Type)  get_players battle = battle.players diff --git a/src/battle/src/Struct/CharacterTurn.elm b/src/battle/src/Struct/CharacterTurn.elm index c869feb..422c33c 100644 --- a/src/battle/src/Struct/CharacterTurn.elm +++ b/src/battle/src/Struct/CharacterTurn.elm @@ -1,7 +1,7 @@  module Struct.CharacterTurn exposing     (        Type, -      Action(..) +      Action(..),        -- Active Character        maybe_get_active_character, @@ -21,6 +21,7 @@ module Struct.CharacterTurn exposing        toggle_target_index,        get_target_indices,        set_target_indices, +      clear_target_indices,        -- Locations        add_location, @@ -28,7 +29,7 @@ module Struct.CharacterTurn exposing        toggle_location,        get_locations,        set_locations, -      toggle_location, +      clear_locations,        -- Navigator        maybe_get_navigator, @@ -70,7 +71,6 @@ type Action =     | Attacking     | SwitchingWeapons     | UsingSkill -   | AwaitingConfirmation  type alias Type =     { @@ -91,7 +91,7 @@ encode_path : Type -> (Json.Encode.Value)  encode_path ct =     (Json.Encode.object        [ -         ("cat", "mov"), +         ("cat", (Json.Encode.string "mov")),           (              "pat",              (Json.Encode.list @@ -110,24 +110,25 @@ encode_action : Type -> (Json.Encode.Value)  encode_action ct =     case ct.action of        None -> (Json.Encode.null) +        Attacking ->           case (List.head (Set.toList ct.targets)) of              Nothing -> (Json.Encode.null)              (Just target) ->                 (Json.Encode.object                    [ -                     ("cat", "atk"), +                     ("cat", (Json.Encode.string "atk")),                       ("tar", (Json.Encode.int target))                    ]                 )        SwitchingWeapons -> -         (Json.Encode.object [("cat", "swp")]) +         (Json.Encode.object [("cat", (Json.Encode.string "swp"))])        UsingSkill ->           (Json.Encode.object              [ -               ("cat", "skl"), +               ("cat", (Json.Encode.string "skl")),                 (                    "tar",                    (Json.Encode.list @@ -138,7 +139,11 @@ encode_action ct =                 (                    "loc",                    (Json.Encode.list -                     (BattleMap.Struct.Location.encode) +                     ( +                        (BattleMap.Struct.Location.from_ref) +                        >> +                        (BattleMap.Struct.Location.encode) +                     )                       (Set.toList ct.locations)                    )                 ) @@ -185,7 +190,7 @@ set_action : Action -> Type -> Type  set_action act ct = {ct | action = act}  get_action : Type -> Action -get_action act ct = ct.action +get_action ct = ct.action  clear_action : Type -> Type  clear_action ct = {ct | action = None} @@ -209,6 +214,9 @@ get_target_indices ct = ct.targets  set_target_indices : (Set.Set Int) -> Type -> Type  set_target_indices targets ct = {ct | targets = targets} +clear_target_indices : Type -> Type +clear_target_indices ct = {ct | targets = (Set.empty)} +  ---- Locations -----------------------------------------------------------------  add_location : BattleMap.Struct.Location.Ref -> Type -> Type  add_location ix ct = {ct | locations = (Set.insert ix ct.locations)} @@ -228,11 +236,14 @@ get_locations ct = ct.locations  set_locations : (Set.Set BattleMap.Struct.Location.Ref) -> Type -> Type  set_locations locations ct = {ct | locations = locations} +clear_locations : Type -> Type +clear_locations ct = {ct | locations = (Set.empty)} +  ---- Navigator -----------------------------------------------------------------  maybe_get_navigator : Type -> (Maybe Struct.Navigator.Type)  maybe_get_navigator ct = ct.navigator -set_navigator : Type -> (Maybe Struct.Navigator.Type) +set_navigator : Struct.Navigator.Type -> Type -> Type  set_navigator navigator ct = {ct | navigator = (Just navigator)}  clear_navigator : Type -> Type @@ -243,7 +254,13 @@ get_path : Type -> (List BattleMap.Struct.Direction.Type)  get_path ct = ct.path  store_path : Type -> Type -store_path ct = {ct | path = (Struct.Navigator.get_path old_nav)} +store_path ct = +   {ct | +      path = +         case ct.navigator of +            (Just navigator) -> (Struct.Navigator.get_path navigator) +            Nothing -> [] +   }  override_path : (List BattleMap.Struct.Direction.Type) -> Type -> Type  override_path path ct = {ct | path = path} @@ -255,31 +272,34 @@ clear_path ct = {ct | path = []}  encode : Type -> (Json.Encode.Value)  encode ct =     case ct.active_character of -      None -> +      Nothing ->           (Json.Encode.object              [ -               ("cix", 0), -               ("act", []) +               ("cix", (Json.Encode.int 0)), +               ("act", (Json.Encode.list (\a -> a) []))              ]           )        (Just actor) ->           (Json.Encode.object              [ -               ("cix", (Struct.Character.get_index actor)), +               ("cix", (Json.Encode.int (Struct.Character.get_index actor))),                 (                    "act", -                  ( -                     ( -                        if (List.isEmpty (get_path ct)) -                        then [(encode_path ct)] -                        else [] -                     ) -                     ++ +                  (Json.Encode.list +                     (\a -> a)                       ( -                        if (ct.action == None) -                        then [] -                        else [(encode_action ct)] +                        ( +                           if (List.isEmpty (get_path ct)) +                           then [(encode_path ct)] +                           else [] +                        ) +                        ++ +                        ( +                           if (ct.action == None) +                           then [] +                           else [(encode_action ct)] +                        )                       )                    )                 ) diff --git a/src/battle/src/Struct/Event.elm b/src/battle/src/Struct/Event.elm index e0fa827..1f5c89f 100644 --- a/src/battle/src/Struct/Event.elm +++ b/src/battle/src/Struct/Event.elm @@ -19,7 +19,7 @@ import Struct.UI  type Type =     AbortTurnRequest     | AnimationEnded -   | AttackWithoutMovingRequest +   | AttackRequest     | CharacterInfoRequested Int     | CharacterOrTileSelected BattleMap.Struct.Location.Ref     | CharacterSelected Int diff --git a/src/battle/src/Struct/Model.elm b/src/battle/src/Struct/Model.elm index f12918e..2ddeecd 100644 --- a/src/battle/src/Struct/Model.elm +++ b/src/battle/src/Struct/Model.elm @@ -7,7 +7,7 @@ module Struct.Model exposing     )  -- Shared ---------------------------------------------------------------------- -import Struct.Flags +import Shared.Struct.Flags  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.DataSet @@ -29,7 +29,7 @@ import Struct.UI  --------------------------------------------------------------------------------  type alias Type =     { -      flags : Struct.Flags.Type, +      flags : Shared.Struct.Flags.Type,        puppeteer : Struct.Puppeteer.Type,        ui : Struct.UI.Type,        char_turn : Struct.CharacterTurn.Type, @@ -49,7 +49,7 @@ type alias Type =  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- -new : Struct.Flags.Type -> Type +new : Shared.Struct.Flags.Type -> Type  new flags =     let        model = @@ -66,7 +66,7 @@ new flags =              battle = (Struct.Battle.new)           }     in -      case (Struct.Flags.maybe_get_parameter "id" flags) of +      case (Shared.Struct.Flags.maybe_get_parameter "id" flags) of           Nothing ->              (invalidate                 (Struct.Error.new diff --git a/src/battle/src/Struct/Navigator.elm b/src/battle/src/Struct/Navigator.elm index 072f682..01ee47a 100644 --- a/src/battle/src/Struct/Navigator.elm +++ b/src/battle/src/Struct/Navigator.elm @@ -45,7 +45,7 @@ type alias Type =              BattleMap.Struct.Location.Ref              Struct.RangeIndicator.Type           ), -      tile_data_fun : (BattleMap.Struct.Location.Type -> (Int, Int)) +      cost_and_danger_fun : (BattleMap.Struct.Location.Type -> (Int, Int))     }  type alias Summary = @@ -71,7 +71,7 @@ new : (        (BattleMap.Struct.Location.Type -> (Int, Int)) ->        Type     ) -new start_loc mov_dist def_dist atk_dist tile_data_fun = +new start_loc mov_dist def_dist atk_dist cost_and_danger_fun =     {        starting_location = start_loc,        movement_dist = mov_dist, @@ -85,9 +85,9 @@ new start_loc mov_dist def_dist atk_dist tile_data_fun =              mov_dist              def_dist              atk_dist -            (tile_data_fun) +            (cost_and_danger_fun)           ), -      tile_data_fun = tile_data_fun +      cost_and_danger_fun = cost_and_danger_fun     }  get_current_location : Type -> BattleMap.Struct.Location.Type @@ -157,7 +157,7 @@ lock_path navigator =              0              navigator.defense_dist              navigator.attack_dist -            (navigator.tile_data_fun) +            (navigator.cost_and_danger_fun)           ),        locked_path = True     } @@ -171,7 +171,7 @@ unlock_path navigator =              navigator.movement_dist              navigator.defense_dist              navigator.attack_dist -            (navigator.tile_data_fun) +            (navigator.cost_and_danger_fun)           ),        locked_path = True     } @@ -185,7 +185,7 @@ lock_path_with_new_attack_ranges range_min range_max navigator =              0              range_min              range_max -            (navigator.tile_data_fun) +            (navigator.cost_and_danger_fun)           ),        locked_path = True     } @@ -201,14 +201,13 @@ maybe_add_step dir navigator =        Nothing     else        case -         (Struct.Path.maybe_follow_direction -            (navigator.tile_data_fun) -            (Just navigator.path) +         (Struct.Path.maybe_add_step              dir +            (navigator.cost_and_danger_fun) +            navigator.path           )        of -         (Just path) -> -            (Just {navigator | path = path}) +         (Just path) -> (Just {navigator | path = path})           Nothing -> Nothing  maybe_get_path_to : ( diff --git a/src/battle/src/Struct/Path.elm b/src/battle/src/Struct/Path.elm index aae8c41..76a2d64 100644 --- a/src/battle/src/Struct/Path.elm +++ b/src/battle/src/Struct/Path.elm @@ -15,7 +15,7 @@ module Struct.Path exposing  import Set  -- Shared ---------------------------------------------------------------------- -import Util.List +import Shared.Util.List  -- Battle Map ------------------------------------------------------------------  import BattleMap.Struct.Direction @@ -83,16 +83,16 @@ maybe_move_to dir next_loc cost path =           Nothing  maybe_backtrack_to : ( -      Type ->        BattleMap.Struct.Direction.Type ->        BattleMap.Struct.Location.Type -> +      Type ->        (Maybe Type)     ) -maybe_backtrack_to path dir location = +maybe_backtrack_to dir location path =     case        ( -         (Util.List.pop path.previous_directions), -         (Util.List.pop path.previous_points) +         (Shared.Util.List.pop path.previous_directions), +         (Shared.Util.List.pop path.previous_points)        )     of        ( @@ -144,12 +144,24 @@ get_remaining_points path = path.remaining_points  get_summary : Type -> (List BattleMap.Struct.Direction.Type)  get_summary path = path.previous_directions -maybe_add_step : BattleMap.Struct.Direction.Type -> Int -> Type -> (Maybe Type) -maybe_add_step direction cost path = +maybe_add_step : ( +      BattleMap.Struct.Direction.Type -> +      (BattleMap.Struct.Location.Type -> (Int, Int)) -> +      Type -> +      (Maybe Type) +   ) +maybe_add_step direction tile_cost_and_danger_fun path =     let        next_location =           (BattleMap.Struct.Location.neighbor direction path.current_location)     in        if (has_been_to next_location path)        then (maybe_backtrack_to direction next_location path) -      else (maybe_move_to direction next_location cost path) +      else +         let (cost, dangers) = (tile_cost_and_danger_fun next_location) in +            (maybe_move_to +               direction +               next_location +               cost +               path +            ) diff --git a/src/battle/src/Struct/Puppeteer.elm b/src/battle/src/Struct/Puppeteer.elm index df0221d..60e554c 100644 --- a/src/battle/src/Struct/Puppeteer.elm +++ b/src/battle/src/Struct/Puppeteer.elm @@ -16,7 +16,7 @@ module Struct.Puppeteer exposing  import List  -- Shared ---------------------------------------------------------------------- -import Util.List +import Shared.Util.List  -- Local Module ----------------------------------------------------------------  import Struct.TurnResult @@ -61,7 +61,7 @@ append_backward actions puppeteer =  forward : Type -> Type  forward puppeteer = -   case (Util.List.pop puppeteer.forward_actions) of +   case (Shared.Util.List.pop puppeteer.forward_actions) of        Nothing -> puppeteer        (Just (action, forward_actions)) ->           {puppeteer | @@ -72,7 +72,7 @@ forward puppeteer =  backward : Type -> Type  backward puppeteer = -   case (Util.List.pop puppeteer.backward_actions) of +   case (Shared.Util.List.pop puppeteer.backward_actions) of        Nothing -> puppeteer        (Just (action, backward_actions)) ->           {puppeteer | diff --git a/src/battle/src/Struct/TurnResult.elm b/src/battle/src/Struct/TurnResult.elm index fe49c2a..d5d43ad 100644 --- a/src/battle/src/Struct/TurnResult.elm +++ b/src/battle/src/Struct/TurnResult.elm @@ -25,7 +25,7 @@ import Array  import Json.Decode  -- Shared ---------------------------------------------------------------------- -import Util.Array +import Shared.Util.Array  -- Battle ----------------------------------------------------------------------  import Battle.Struct.Omnimods diff --git a/src/battle/src/Update/Character/DisplayCharacterInfo.elm b/src/battle/src/Update/Character/DisplayCharacterInfo.elm index bcf972d..aa2e29a 100644 --- a/src/battle/src/Update/Character/DisplayCharacterInfo.elm +++ b/src/battle/src/Update/Character/DisplayCharacterInfo.elm @@ -1,4 +1,4 @@ -module Update.Character.DisplayInfo exposing (apply_to) +module Update.Character.DisplayCharacterInfo exposing (apply_to)  -- Elm ------------------------------------------------------------------------- diff --git a/src/battle/src/Update/Character/DisplayInfo.elm b/src/battle/src/Update/Character/DisplayInfo.elm index c43e0bd..f00ee20 100644 --- a/src/battle/src/Update/Character/DisplayInfo.elm +++ b/src/battle/src/Update/Character/DisplayInfo.elm @@ -20,13 +20,16 @@ apply_to_ref : (        (Struct.Model.Type, (Cmd Struct.Event.Type))     )  apply_to_ref target_ref model = -   {model | -      ui = -         (Struct.UI.set_displayed_tab -            Struct.UI.StatusTab -            (Struct.UI.set_previous_action -               (Just (Struct.UI.SelectedCharacter target_ref)) -               model.ui +   ( +      {model | +         ui = +            (Struct.UI.set_displayed_tab +               Struct.UI.StatusTab +               (Struct.UI.set_previous_action +                  (Just (Struct.UI.SelectedCharacter target_ref)) +                  model.ui +               )              ) -         ) -   } +      }, +      Cmd.none +   ) diff --git a/src/battle/src/Update/Character/DisplayNavigator.elm b/src/battle/src/Update/Character/DisplayNavigator.elm index 9c935ee..1ac6618 100644 --- a/src/battle/src/Update/Character/DisplayNavigator.elm +++ b/src/battle/src/Update/Character/DisplayNavigator.elm @@ -1,4 +1,8 @@ -module Update.Character.ScrollTo exposing (apply_to_ref, apply_to_character) +module Update.Character.DisplayNavigator exposing +   ( +      apply_to_ref, +      apply_to_character +   )  -- Elm -------------------------------------------------------------------------  import Task @@ -35,7 +39,11 @@ apply_to_character char model =        )     ) -apply_to_ref : Int -> Struct.Model.Type -> (Cmd Struct.Event.Type) +apply_to_ref : ( +      Int -> +      Struct.Model.Type -> +      (Struct.Model.Type, (Cmd Struct.Event.Type)) +   )  apply_to_ref char_ix model =     case (Struct.Battle.get_character char_ix model.battle) of        (Just char) -> (apply_to_character char model) diff --git a/src/battle/src/Update/Character/LookForCharacter.elm b/src/battle/src/Update/Character/LookForCharacter.elm index 1c2af0a..49f788d 100644 --- a/src/battle/src/Update/Character/LookForCharacter.elm +++ b/src/battle/src/Update/Character/LookForCharacter.elm @@ -1,4 +1,4 @@ -module Update.LookForCharacter exposing (apply_to) +module Update.Character.LookForCharacter exposing (apply_to)  -- Elm -------------------------------------------------------------------------  import Array diff --git a/src/battle/src/Update/CharacterTurn.elm b/src/battle/src/Update/CharacterTurn.elm index 19c75b6..f375f73 100644 --- a/src/battle/src/Update/CharacterTurn.elm +++ b/src/battle/src/Update/CharacterTurn.elm @@ -2,6 +2,15 @@ module Update.CharacterTurn exposing (apply_to)  -- Elm ------------------------------------------------------------------------- +-- Local Module ---------------------------------------------------------------- +import Struct.CharacterTurn +import Struct.Character +import Struct.Event +import Struct.Model +import Struct.UI + +import Util.Navigator +  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- @@ -10,9 +19,38 @@ module Update.CharacterTurn exposing (apply_to)  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  apply_to : ( +      Struct.Character.Type ->        Struct.Model.Type -> -      Int ->        (Struct.Model.Type, (Cmd Struct.Event.Type))     ) -apply_to model target_char_id = - +apply_to target_char model = +   let +      nav = +         (case (Struct.UI.maybe_get_displayed_nav model.ui) of +            (Just dnav) -> dnav +            Nothing -> +               (Util.Navigator.get_character_navigator +                  model.battle +                  target_char +               ) +         ) +   in +      ( +         {model | +            char_turn = +               (Struct.CharacterTurn.set_navigator +                  nav +                  (Struct.CharacterTurn.set_active_character +                     target_char +                     (Struct.CharacterTurn.new) +                  ) +               ), +            ui = +               (Struct.UI.reset_displayed_nav +                  (Struct.UI.reset_displayed_tab +                     (Struct.UI.set_previous_action Nothing model.ui) +                  ) +               ) +         }, +         Cmd.none +      ) diff --git a/src/battle/src/Update/CharacterTurn/AttackWithoutMoving.elm b/src/battle/src/Update/CharacterTurn/Attack.elm index 7946b8f..73f3698 100644 --- a/src/battle/src/Update/CharacterTurn/AttackWithoutMoving.elm +++ b/src/battle/src/Update/CharacterTurn/Attack.elm @@ -1,40 +1,34 @@ -module Update.CharacterTurn.AttackWithoutMoving exposing (apply_to) +module Update.CharacterTurn.Attack exposing (apply_to)  -- Local Module ----------------------------------------------------------------  import Struct.CharacterTurn  import Struct.Error  import Struct.Event  import Struct.Model +import Struct.Navigator  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- -make_it_so : Struct.Model.Type -> Struct.Model.Type -make_it_so model = -   {model | -      char_turn = (Struct.CharacterTurn.lock_path model.char_turn) -   }  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))  apply_to model = -   case (Struct.CharacterTurn.get_state model.char_turn) of -      Struct.CharacterTurn.SelectedCharacter -> -         ((make_it_so model), Cmd.none) - -      _ -> +   case (Struct.CharacterTurn.maybe_get_navigator model.char_turn) of +      Nothing -> (model, Cmd.none) +      (Just nav) ->           ( -            (Struct.Model.invalidate -               (Struct.Error.new -                  Struct.Error.Programming -                  ( -                     "Attempt to do an attack without moving, despite no" -                     ++ "character being selected." +            {model | +               char_turn = +                  (Struct.CharacterTurn.set_action +                     Struct.CharacterTurn.Attacking +                     (Struct.CharacterTurn.set_navigator +                        (Struct.Navigator.lock_path nav) +                        (Struct.CharacterTurn.store_path model.char_turn) +                     )                    ) -               ) -               model -            ), +            },              Cmd.none           ) diff --git a/src/battle/src/Update/CharacterTurn/EndTurn.elm b/src/battle/src/Update/CharacterTurn/EndTurn.elm index b3b6cb0..4a5221b 100644 --- a/src/battle/src/Update/CharacterTurn/EndTurn.elm +++ b/src/battle/src/Update/CharacterTurn/EndTurn.elm @@ -23,31 +23,6 @@ maybe_disable_char maybe_char =        (Just char) -> (Just (Struct.Character.set_enabled False char))        Nothing -> Nothing -make_it_so : ( -      Struct.Model.Type -> -      Struct.Character.Type -> -      Struct.Navigator.Type -> -      (Struct.Model.Type, (Cmd Struct.Event.Type)) -   ) -make_it_so model char nav = -   case (Comm.CharacterTurn.try model) of -      (Just cmd) -> -         ( -            {model | -               char_turn = (Struct.CharacterTurn.new), -               battle = -                  (Struct.Battle.update_character -                     (Struct.Character.get_index char) -                     (maybe_disable_char) -                     model.battle -                  ) -            }, -            cmd -         ) - -      Nothing -> -         (model, Cmd.none) -  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- @@ -55,42 +30,22 @@ apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))  apply_to model =     case        ( -         (Struct.CharacterTurn.get_state model.char_turn), -         (Struct.CharacterTurn.maybe_get_active_character -            model.char_turn -         ), -         (Struct.CharacterTurn.maybe_get_navigator model.char_turn) +         (Struct.CharacterTurn.maybe_get_active_character model.char_turn), +         (Comm.CharacterTurn.try model)        )     of -      ( -         Struct.CharacterTurn.MovedCharacter, -         (Just char), -         (Just nav)) -> -            (make_it_so model char nav) - -      ( -         Struct.CharacterTurn.ChoseTarget, -         (Just char), -         (Just nav)) -> -         (make_it_so model char nav) - -      ( -         Struct.CharacterTurn.SwitchedWeapons, -         (Just char), -         (Just nav)) -> -         (make_it_so model char nav) - -      (Struct.CharacterTurn.SelectedCharacter, (Just char), (Just nav)) -> -         (make_it_so model char nav) - -      (_, _, _) -> +      (Nothing, _) -> (model, Cmd.none) +      (_, Nothing) -> (model, Cmd.none) +      ((Just char), (Just cmd)) ->           ( -            (Struct.Model.invalidate -               (Struct.Error.new -                  Struct.Error.Programming -                  "Character turn appears to be in an illegal state." -               ) -               model -            ), -            Cmd.none +            {model | +               battle = +                  (Struct.Battle.update_character +                     (Struct.Character.get_index char) +                     (maybe_disable_char) +                     model.battle +                  ), +               char_turn = (Struct.CharacterTurn.new) +            }, +            cmd           ) diff --git a/src/battle/src/Update/CharacterTurn/RequestDirection.elm b/src/battle/src/Update/CharacterTurn/RequestDirection.elm index 9b3ef0e..bbfbe4d 100644 --- a/src/battle/src/Update/CharacterTurn/RequestDirection.elm +++ b/src/battle/src/Update/CharacterTurn/RequestDirection.elm @@ -34,7 +34,7 @@ make_it_so model char navigator dir =              char_turn =                 (Struct.CharacterTurn.set_navigator                    new_navigator -                  (Struct.CharacterTurn.set_active_character_no_reset +                  (Struct.CharacterTurn.set_active_character                       (Struct.Character.set_base_character                          (BattleCharacters.Struct.Character.set_extra_omnimods                             (BattleMap.Struct.Map.get_omnimods_at @@ -71,11 +71,11 @@ make_it_so model char navigator dir =  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  apply_to : ( -      Struct.Model.Type ->        BattleMap.Struct.Direction.Type -> +      Struct.Model.Type ->        (Struct.Model.Type, (Cmd Struct.Event.Type))     ) -apply_to model dir = +apply_to dir model =     case        (           (Struct.CharacterTurn.maybe_get_navigator model.char_turn), diff --git a/src/battle/src/Update/CharacterTurn/SwitchWeapon.elm b/src/battle/src/Update/CharacterTurn/SwitchWeapon.elm index 122f2a4..632e10c 100644 --- a/src/battle/src/Update/CharacterTurn/SwitchWeapon.elm +++ b/src/battle/src/Update/CharacterTurn/SwitchWeapon.elm @@ -11,18 +11,22 @@ import Struct.Error  import Struct.Event  import Struct.Model +import Util.Navigator +  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- -make_it_so : Struct.Model.Type -> Struct.Model.Type -make_it_so model = -   case -      ( -         (Struct.CharacterTurn.maybe_get_active_character model.char_turn), -         (Struct.CharacterTurn.maybe_get_navigator model.char_turn) -      ) -   of -      ((Just char), (Just nav)) -> + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_to : ( +      Struct.Model.Type -> +      (Struct.Model.Type, (Cmd Struct.Event.Type)) +   ) +apply_to model = +   case (Struct.CharacterTurn.maybe_get_active_character model.char_turn) of +      (Just char) ->           let              new_base_character =                 (BattleCharacters.Struct.Character.switch_weapons @@ -32,66 +36,30 @@ make_it_so model =                 (BattleCharacters.Struct.Character.get_active_weapon                    new_base_character                 ) +            new_character = +               (Struct.Character.set_base_character +                  new_base_character +                  char +               )           in -            {model | -               char_turn = -                  (Struct.CharacterTurn.show_attack_range_navigator -                     (BattleCharacters.Struct.Weapon.get_defense_range -                        active_weapon -                     ) -                     (BattleCharacters.Struct.Weapon.get_attack_range -                        active_weapon -                     ) -                     (Struct.CharacterTurn.set_has_switched_weapons -                        True -                        (Struct.CharacterTurn.set_active_character_no_reset -                           (Struct.Character.set_base_character -                              new_base_character -                              char +            ( +               {model | +                  char_turn = +                     (Struct.CharacterTurn.set_action +                        Struct.CharacterTurn.SwitchingWeapons +                        (Struct.CharacterTurn.set_navigator +                           (Util.Navigator.get_character_attack_navigator +                              model.battle +                              new_character +                           ) +                           (Struct.CharacterTurn.set_active_character +                              new_character +                              (Struct.CharacterTurn.store_path model.char_turn)                             ) -                           model.char_turn                          )                       ) -                  ) -            } - -      (_, _) -> -         (Struct.Model.invalidate -            (Struct.Error.new -               Struct.Error.Programming -               """ -               CharacterTurn structure in the 'SelectedCharacter' or -               'MovedCharacter' state without any character being selected. -               """) -            model -         ) +               }, +               Cmd.none +            ) --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -apply_to : ( -      Struct.Model.Type -> -      (Struct.Model.Type, (Cmd Struct.Event.Type)) -   ) -apply_to model = -   case (Struct.CharacterTurn.get_state model.char_turn) of -      Struct.CharacterTurn.SelectedCharacter -> -         ((make_it_so model), Cmd.none) - -      Struct.CharacterTurn.MovedCharacter -> -         ((make_it_so model), Cmd.none) - -      _ -> -         ( -            (Struct.Model.invalidate -               (Struct.Error.new -                  Struct.Error.Programming -                  ( -                     "Attempt to switch weapons as a secondary action or" -                     ++ " without character being selected." -                  ) -               ) -               model -            ), -            Cmd.none -         ) +      Nothing -> (model, Cmd.none) diff --git a/src/battle/src/Update/CharacterTurn/ToggleTarget.elm b/src/battle/src/Update/CharacterTurn/ToggleTarget.elm index 272163e..7b5a9a9 100644 --- a/src/battle/src/Update/CharacterTurn/ToggleTarget.elm +++ b/src/battle/src/Update/CharacterTurn/ToggleTarget.elm @@ -1,9 +1,16 @@ -module Update.CharacterTurn.ToggleTarget exposing (apply_to_ref) +module Update.CharacterTurn.ToggleTarget exposing (apply_to, apply_to_ref) + +-- Battle Map ------------------------------------------------------------------ +import BattleMap.Struct.Location  -- Local Module ---------------------------------------------------------------- +import Struct.Battle +import Struct.Character  import Struct.CharacterTurn  import Struct.Event  import Struct.Model +import Struct.Navigator +import Struct.UI  --------------------------------------------------------------------------------  -- LOCAL ----------------------------------------------------------------------- @@ -40,17 +47,36 @@ can_target_character model target =        )     ) -attack_character : ( +toggle_attack_character : ( +      Struct.Model.Type -> +      Int -> +      Struct.Model.Type +   ) +toggle_attack_character model target_char_id = +   {model | +      char_turn = +         (Struct.CharacterTurn.toggle_target_index +            target_char_id +            model.char_turn +         ), +      ui = +         (Struct.UI.reset_displayed_nav +            (Struct.UI.reset_displayed_tab +               (Struct.UI.set_previous_action Nothing model.ui) +            ) +         ) +   } + +undo_attack_character : (        Struct.Model.Type ->        Int -> -      Struct.Character.Type ->        Struct.Model.Type     ) -attack_character model target_char_id target_char = +undo_attack_character model target_char_id =     {model |        char_turn = -         (Struct.CharacterTurn.set_target -            (Just target_char_id) +         (Struct.CharacterTurn.remove_target_index +            target_char_id              model.char_turn           ),        ui = @@ -64,11 +90,28 @@ attack_character model target_char_id target_char =  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- -apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)) -apply_to model = +apply_to : ( +      Struct.Character.Type -> +      Struct.Model.Type -> +      (Struct.Model.Type, (Cmd Struct.Event.Type)) +   ) +apply_to target model =     ( -      {model | -         char_turn = (Struct.CharacterTurn.new) -      }, +      ( +         let target_ix = (Struct.Character.get_index target) in +            if (can_target_character model target) +            then (toggle_attack_character model target_ix) +            else (undo_attack_character model target_ix) +      ),        Cmd.none     ) + +apply_to_ref : ( +      Int -> +      Struct.Model.Type -> +      (Struct.Model.Type, (Cmd Struct.Event.Type)) +   ) +apply_to_ref target_ix model = +   case (Struct.Battle.get_character target_ix model.battle) of +      Nothing -> (model, Cmd.none) +      (Just char) -> (apply_to char model) diff --git a/src/battle/src/Update/CharacterTurn/UndoAction.elm b/src/battle/src/Update/CharacterTurn/UndoAction.elm index 284b37d..6a9d7f8 100644 --- a/src/battle/src/Update/CharacterTurn/UndoAction.elm +++ b/src/battle/src/Update/CharacterTurn/UndoAction.elm @@ -21,91 +21,41 @@ import Struct.Event  import Struct.Model  import Struct.Navigator +import Util.Navigator +  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- -get_character_navigator : ( -      Struct.Battle.Type -> -      Struct.Character.Type -> -      Struct.Navigator.Type +handle_undo_switching_weapons : ( +      Struct.CharacterTurn.Type -> +      Struct.CharacterTurn.Type     ) -get_character_navigator battle char = -   let -      base_char = (Struct.Character.get_base_character char) -      weapon = (BattleCharacters.Struct.Character.get_active_weapon base_char) -   in -      (Struct.Navigator.new -         (Struct.Character.get_location char) -         (Battle.Struct.Attributes.get_movement_points -            (BattleCharacters.Struct.Character.get_attributes base_char) -         ) -         (BattleCharacters.Struct.Weapon.get_defense_range weapon) -         (BattleCharacters.Struct.Weapon.get_attack_range weapon) -         (BattleMap.Struct.Map.get_tile_data_function -            (Struct.Battle.get_map battle) -            (List.map -               (Struct.Character.get_location) -               (Array.toList (Struct.Battle.get_characters battle)) -            ) -            (Struct.Character.get_location char) -         ) -      ) - -handle_reset_character_turn : Struct.Model.Type -> Struct.CharacterTurn.Type -handle_reset_character_turn model = -   case (Struct.CharacterTurn.maybe_get_active_character model.char_turn) of -      Nothing -> model.char_turn - -      (Just current_char) -> -         case -            (Struct.Battle.get_character -               (Struct.Character.get_index current_char) -               model.battle -            ) -         of -            Nothing -> model.char_turn - -            (Just reset_char) -> -               (Struct.CharacterTurn.set_navigator -                  (get_character_navigator model.battle reset_char) -                  (Struct.CharacterTurn.set_active_character -                     reset_char -                     (Struct.CharacterTurn.new) -                  ) -               ) - -handle_undo_switched_weapons : Struct.Model.Type -> Struct.CharacterTurn.Type -handle_undo_switched_weapons model = -   case (Struct.CharacterTurn.maybe_get_active_character model.char_turn) of -      Nothing -> model.char_turn +handle_undo_switching_weapons char_turn = +   case (Struct.CharacterTurn.maybe_get_active_character char_turn) of +      Nothing -> char_turn        (Just char) -> -         (Struct.CharacterTurn.lock_path -            (Struct.CharacterTurn.unlock_path -               (Struct.CharacterTurn.set_has_switched_weapons -                  False -                  (Struct.CharacterTurn.set_active_character_no_reset -                     (Struct.Character.set_base_character -                        (BattleCharacters.Struct.Character.switch_weapons -                           (Struct.Character.get_base_character char) -                        ) -                        char -                     ) -                     model.char_turn +         (Struct.CharacterTurn.clear_action +            (Struct.CharacterTurn.set_active_character +               (Struct.Character.set_base_character +                  (BattleCharacters.Struct.Character.switch_weapons +                     (Struct.Character.get_base_character char)                    ) +                  char                 ) +               char_turn              )           ) -handle_undo_chose_target : Struct.Model.Type -> Struct.CharacterTurn.Type -handle_undo_chose_target model = -   (Struct.CharacterTurn.set_target Nothing model.char_turn) --- Was previously something like below, but that looks really wrong: ---   (Struct.CharacterTurn.lock_path ---      (Struct.CharacterTurn.unlock_path ---         model.char_turn ---      ) ---   ) +handle_undo_attacking : Struct.CharacterTurn.Type -> Struct.CharacterTurn.Type +handle_undo_attacking char_turn = +   (Struct.CharacterTurn.clear_action +      (Struct.CharacterTurn.clear_target_indices +         (Struct.CharacterTurn.clear_locations +            char_turn +         ) +      ) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- @@ -116,15 +66,15 @@ apply_to model =        {model |           char_turn =           ( -            case (Struct.CharacterTurn.get_state model.char_turn) of -               Struct.CharacterTurn.ChoseTarget -> -                  (handle_undo_chose_target model) +            case (Struct.CharacterTurn.get_action model.char_turn) of +               Struct.CharacterTurn.Attacking -> +                  (handle_undo_attacking model.char_turn) -               Struct.CharacterTurn.SwitchedWeapons -> -                  (handle_undo_switched_weapons model) +               Struct.CharacterTurn.UsingSkill -> +                  (handle_undo_attacking model.char_turn) -               Struct.CharacterTurn.MovedCharacter -> -                  (handle_reset_character_turn model) +               Struct.CharacterTurn.SwitchingWeapons -> +                  (handle_undo_switching_weapons model.char_turn)                 _ -> model.char_turn           ) diff --git a/src/battle/src/Update/HandleServerReply.elm b/src/battle/src/Update/HandleServerReply.elm index e2dad31..a5b026c 100644 --- a/src/battle/src/Update/HandleServerReply.elm +++ b/src/battle/src/Update/HandleServerReply.elm @@ -14,13 +14,13 @@ import Time  import Url  -- Shared ---------------------------------------------------------------------- -import Action.Ports +import Shared.Action.Ports -import Struct.Flags +import Shared.Struct.Flags -import Util.Http +import Shared.Util.Http -import Update.Sequence +import Shared.Update.Sequence  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.DataSetItem @@ -55,14 +55,20 @@ import Update.Puppeteer  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- +do_nothing : ( +      Struct.Model.Type -> +      (Struct.Model.Type, (Cmd Struct.Event.Type)) +   ) +do_nothing model = (model, Cmd.none) +  disconnected : (        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  disconnected model =     (        model, -      (Action.Ports.go_to +      (Shared.Action.Ports.go_to           (              Constants.IO.base_url              ++ "/login/?action=disconnect&goto=" @@ -70,7 +76,7 @@ disconnected model =              (Url.percentEncode                 (                    "/battle/?" -                  ++ (Struct.Flags.get_parameters_as_url model.flags) +                  ++ (Shared.Struct.Flags.get_parameters_as_url model.flags)                 )              )           ) @@ -80,7 +86,7 @@ disconnected model =  add_characters_data_set_item : (        BattleCharacters.Struct.DataSetItem.Type ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  add_characters_data_set_item item model =     ( @@ -97,7 +103,7 @@ add_characters_data_set_item item model =  add_map_data_set_item : (        BattleMap.Struct.DataSetItem.Type ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  add_map_data_set_item item model =     ( @@ -111,7 +117,7 @@ add_map_data_set_item item model =  add_player : (        Struct.Player.Type ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  add_player pl model =     ( @@ -124,7 +130,7 @@ add_player pl model =  add_character : (        Struct.Character.Unresolved ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  add_character unresolved_char model =     ( @@ -153,7 +159,7 @@ add_character unresolved_char model =  set_map : (        BattleMap.Struct.Map.Type ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  set_map map model =     ( @@ -173,7 +179,7 @@ set_map map model =  add_to_timeline : (        (List Struct.TurnResult.Type) ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  add_to_timeline turn_results model =     (Update.Puppeteer.apply_to @@ -207,7 +213,7 @@ add_to_timeline turn_results model =  set_timeline : (        (List Struct.TurnResult.Type) ->        Struct.Model.Type -> -      (Cmd Struct.Event.Type) +      (Struct.Model.Type, (Cmd Struct.Event.Type))     )  set_timeline turn_results model =     ( @@ -274,15 +280,15 @@ apply_to model query_result =           (              (Struct.Model.invalidate                 (Struct.Error.new Struct.Error.Networking -                  (Util.Http.error_to_string error) +                  (Shared.Util.Http.error_to_string error)                 )                 model              ),              Cmd.none           ) -      (Result.Ok server_command) -> -         (Update.Sequence.sequence -            (List.map (server_command_to_update) commands) +      (Result.Ok server_commands) -> +         (Shared.Update.Sequence.sequence +            (List.map (server_command_to_update) server_commands)              model           ) diff --git a/src/battle/src/Update/SelectCharacter.elm b/src/battle/src/Update/SelectCharacter.elm index ae2860f..5111544 100644 --- a/src/battle/src/Update/SelectCharacter.elm +++ b/src/battle/src/Update/SelectCharacter.elm @@ -5,12 +5,14 @@ import Array  import Task +-- Shared ---------------------------------------------------------------------- +import Shared.Update.Sequence +  -- Battle ----------------------------------------------------------------------  import Battle.Struct.Attributes  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.Character -import BattleCharacters.Struct.Weapon  -- Battle Map ------------------------------------------------------------------  import BattleMap.Struct.Map @@ -28,76 +30,17 @@ import Struct.Model  import Struct.Navigator  import Struct.UI --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -attack_character : ( -      Struct.Model.Type -> -      Int -> -      Struct.Character.Type -> -      Struct.Model.Type -   ) -attack_character model target_char_id target_char = -   {model | -      char_turn = -         (Struct.CharacterTurn.set_target -            (Just target_char_id) -            model.char_turn -         ), -      ui = -         (Struct.UI.reset_displayed_nav -            (Struct.UI.reset_displayed_tab -               (Struct.UI.set_previous_action Nothing model.ui) -            ) -         ) -   } +import Update.Character.DisplayInfo +import Update.Character.DisplayNavigator -ctrl_or_focus_character : ( -      Struct.Model.Type -> -      Int -> -      Struct.Character.Type -> -      Struct.Model.Type -   ) -ctrl_or_focus_character model target_char_id target_char = -   if (Struct.Character.is_enabled target_char) -   then -      let -         nav = -            (case (Struct.UI.maybe_get_displayed_nav model.ui) of -               (Just dnav) -> dnav -               Nothing -> -                  (get_character_navigator model.battle target_char) -            ) -      in -         {model | -            char_turn = -               (Struct.CharacterTurn.set_navigator -                  nav -                  (Struct.CharacterTurn.set_active_character -                     target_char -                     model.char_turn -                  ) -               ), -            ui = -               (Struct.UI.reset_displayed_nav -                  (Struct.UI.reset_displayed_tab -                     (Struct.UI.set_previous_action Nothing model.ui) -                  ) -               ) -         } -   else -      {model | -         ui = -            (Struct.UI.set_previous_action -               (Just (Struct.UI.SelectedCharacter target_char_id)) -               (Struct.UI.set_displayed_nav -                  (get_character_navigator model.battle target_char) -                  model.ui -               ) -            ) -      } +import Update.CharacterTurn.ToggleTarget +import Update.CharacterTurn +import Util.Navigator +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +--------------------------------------------------------------------------------  second_click_on : (        Int ->        Struct.Model.Type -> @@ -106,7 +49,13 @@ second_click_on : (  second_click_on target_char_id model =     if (Struct.CharacterTurn.has_active_character model.char_turn)     then (Update.CharacterTurn.ToggleTarget.apply_to_ref target_char_id model) -   else (Update.CharacterTurn.apply_to target_char_id model) +   else +      case (Struct.Battle.get_character target_char_id model.battle) of +         Nothing -> (model, Cmd.none) +         (Just character) -> +            if (Struct.Character.is_enabled character) +            then (Update.CharacterTurn.apply_to character model) +            else (model, Cmd.none)  first_click_on : (        Int -> @@ -114,15 +63,15 @@ first_click_on : (        (Struct.Model.Type, (Cmd Struct.Event.Type))     )  first_click_on target_char_id model = -   (Update.Sequence.sequence +   (Shared.Update.Sequence.sequence        [ -         (Update.Character.DisplayInfo.apply_to target_char_id), +         (Update.Character.DisplayInfo.apply_to_ref target_char_id),           (Update.Character.DisplayNavigator.apply_to_ref target_char_id)        ]        {model |           ui =              (Struct.UI.set_previous_action -               (Just (Struct.UI.SelectedCharacter target_ref)) +               (Just (Struct.UI.SelectedCharacter target_char_id))                 model.ui              )        } @@ -132,11 +81,11 @@ first_click_on target_char_id model =  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  apply_to : ( -      Struct.Model.Type ->        Int -> +      Struct.Model.Type ->        (Struct.Model.Type, (Cmd Struct.Event.Type))     ) -apply_to model target_char_id = +apply_to target_char_id model =     if     (        (Struct.UI.get_previous_action model.ui) diff --git a/src/battle/src/Update/SelectCharacterOrTile.elm b/src/battle/src/Update/SelectCharacterOrTile.elm index 2135927..2f36179 100644 --- a/src/battle/src/Update/SelectCharacterOrTile.elm +++ b/src/battle/src/Update/SelectCharacterOrTile.elm @@ -1,7 +1,7 @@  module Update.SelectCharacterOrTile exposing (apply_to)  -- Shared ---------------------------------------------------------------------- -import Util.Array +import Shared.Util.Array  -- Battle Map ------------------------------------------------------------------  import BattleMap.Struct.Location @@ -23,13 +23,13 @@ import Update.SelectTile  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  apply_to : ( -      Struct.Model.Type ->        BattleMap.Struct.Location.Ref -> +      Struct.Model.Type ->        (Struct.Model.Type, (Cmd Struct.Event.Type))     ) -apply_to model loc_ref = +apply_to loc_ref model =     case -      (Util.Array.filter_first +      (Shared.Util.Array.filter_first           (\c ->              (                 ( @@ -45,10 +45,10 @@ apply_to model loc_ref =     of        (Just char) ->           (Update.SelectCharacter.apply_to -            model              (Struct.Character.get_index char) +            model           )        Nothing -> -         (Update.SelectTile.apply_to model loc_ref) +         (Update.SelectTile.apply_to loc_ref model) diff --git a/src/battle/src/Update/SelectTile.elm b/src/battle/src/Update/SelectTile.elm index ebc7cd1..2f49f5f 100644 --- a/src/battle/src/Update/SelectTile.elm +++ b/src/battle/src/Update/SelectTile.elm @@ -49,7 +49,17 @@ go_to_current_tile model loc_ref =        -- And we just clicked on that tile.        (           {model | -            char_turn = (Struct.CharacterTurn.lock_path model.char_turn) +            char_turn = +               case +                  (Struct.CharacterTurn.maybe_get_navigator model.char_turn) +               of +                  (Just nav) -> +                     (Struct.CharacterTurn.set_navigator +                        (Struct.Navigator.lock_path nav) +                        (Struct.CharacterTurn.store_path model.char_turn) +                     ) + +                  Nothing -> model.char_turn           },           Cmd.none        ) @@ -166,11 +176,11 @@ go_to_tile model char navigator loc_ref =  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  apply_to : ( -      Struct.Model.Type ->        BattleMap.Struct.Location.Ref -> +      Struct.Model.Type ->        (Struct.Model.Type, (Cmd Struct.Event.Type))     ) -apply_to model loc_ref = +apply_to loc_ref model =     case        (           (Struct.CharacterTurn.maybe_get_navigator model.char_turn), diff --git a/src/battle/src/Update/UI/GoToMainMenu.elm b/src/battle/src/Update/UI/GoToMainMenu.elm index 7aec7b2..a522f66 100644 --- a/src/battle/src/Update/UI/GoToMainMenu.elm +++ b/src/battle/src/Update/UI/GoToMainMenu.elm @@ -1,7 +1,7 @@  module Update.UI.GoToMainMenu exposing (apply_to)  -- Shared ---------------------------------------------------------------------- -import Action.Ports +import Shared.Action.Ports  -- Local Module ----------------------------------------------------------------  import Constants.IO @@ -20,5 +20,5 @@ apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))  apply_to model =     (        model, -      (Action.Ports.go_to (Constants.IO.base_url ++"/main-menu/")) +      (Shared.Action.Ports.go_to (Constants.IO.base_url ++"/main-menu/"))     ) diff --git a/src/battle/src/View/Controlled.elm b/src/battle/src/View/Controlled.elm index fe730fb..0293770 100644 --- a/src/battle/src/View/Controlled.elm +++ b/src/battle/src/View/Controlled.elm @@ -6,7 +6,7 @@ import Html.Attributes  import Html.Events  -- Shared ---------------------------------------------------------------------- -import Util.Html +import Shared.Util.Html  -- Local Module ----------------------------------------------------------------  import Struct.CharacterTurn @@ -26,16 +26,31 @@ has_a_path char_turn =        Nothing -> False +skill_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) +skill_button char_turn = +   (Html.button +      [ (Html.Events.onClick Struct.Event.AttackRequest) ] +      [ +         (Html.text +            ( +               if (has_a_path char_turn) +               then ("Go & Select Skill Target(s)") +               else ("Select Skill Target(s)") +            ) +         ) +      ] +   ) +  attack_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type)  attack_button char_turn =     (Html.button -      [ (Html.Events.onClick Struct.Event.AttackWithoutMovingRequest) ] +      [ (Html.Events.onClick Struct.Event.AttackRequest) ]        [           (Html.text              (                 if (has_a_path char_turn) -               then ("Go & Select Target") -               else ("Select Target") +               then ("Go & Select Attack Target") +               else ("Select Attack Target")              )           )        ] @@ -55,14 +70,14 @@ undo_button =        [ (Html.text "Undo") ]     ) -end_turn_button : String -> (Html.Html Struct.Event.Type) -end_turn_button suffix = +end_turn_button : (Html.Html Struct.Event.Type) +end_turn_button =     (Html.button        [           (Html.Events.onClick Struct.Event.TurnEnded),           (Html.Attributes.class "end-turn-button")        ] -      [ (Html.text ("End Turn" ++ suffix)) ] +      [ (Html.text ("Confirm Turn")) ]     )  inventory_button : Bool -> (Html.Html Struct.Event.Type) @@ -85,41 +100,22 @@ get_available_actions : (        (List (Html.Html Struct.Event.Type))     )  get_available_actions char_turn = -   case (Struct.CharacterTurn.get_state char_turn) of -      Struct.CharacterTurn.SelectedCharacter -> +   if ((Struct.CharacterTurn.get_action char_turn) == Struct.CharacterTurn.None) +   then           [              (attack_button char_turn), +            (skill_button char_turn),              (inventory_button (has_a_path char_turn)), -            (end_turn_button " Doing Nothing"), -            (abort_button) -         ] - -      Struct.CharacterTurn.MovedCharacter -> -         [ -            (inventory_button False), -            (end_turn_button " by Moving"), -            (undo_button), -            (abort_button) -         ] - -      Struct.CharacterTurn.ChoseTarget -> -         [ -            (end_turn_button " by Attacking"), -            (undo_button), +            (end_turn_button),              (abort_button)           ] - -      Struct.CharacterTurn.SwitchedWeapons -> +   else           [ -            (end_turn_button " by Switching Weapons"), +            (end_turn_button),              (undo_button),              (abort_button)           ] -      _ -> -         [ -         ] -  --------------------------------------------------------------------------------  -- EXPORTED --------------------------------------------------------------------  -------------------------------------------------------------------------------- @@ -140,14 +136,12 @@ get_html char_turn player_ix =                 (                    if                    ( -                     (Struct.CharacterTurn.get_state char_turn) +                     (Struct.CharacterTurn.get_action char_turn)                       == -                     Struct.CharacterTurn.SelectedCharacter +                     Struct.CharacterTurn.None                    ) -                  then -                     (View.Controlled.ManualControls.get_html) -                  else -                     (Util.Html.nothing) +                  then (View.Controlled.ManualControls.get_html) +                  else (Shared.Util.Html.nothing)                 ),                 (Html.div                    [(Html.Attributes.class "controlled-actions")] @@ -156,4 +150,4 @@ get_html char_turn player_ix =              ]           ) -      Nothing -> (Util.Html.nothing) +      Nothing -> (Shared.Util.Html.nothing) diff --git a/src/battle/src/View/Controlled/CharacterCard.elm b/src/battle/src/View/Controlled/CharacterCard.elm index 45e58d9..1981779 100644 --- a/src/battle/src/View/Controlled/CharacterCard.elm +++ b/src/battle/src/View/Controlled/CharacterCard.elm @@ -12,9 +12,6 @@ import Html  import Html.Attributes  import Html.Events --- Shared ---------------------------------------------------------------------- -import Util.Html -  -- Battle ----------------------------------------------------------------------  import Battle.Struct.DamageType  import Battle.Struct.Omnimods diff --git a/src/battle/src/View/Controlled/ManualControls.elm b/src/battle/src/View/Controlled/ManualControls.elm index d65bd1a..8c8c802 100644 --- a/src/battle/src/View/Controlled/ManualControls.elm +++ b/src/battle/src/View/Controlled/ManualControls.elm @@ -36,7 +36,7 @@ go_button =     (Html.button        [           (Html.Attributes.class "manual-controls-go"), -         (Html.Events.onClick Struct.Event.AttackWithoutMovingRequest) +         (Html.Events.onClick Struct.Event.AttackRequest)        ]        [           (Html.text "Go") diff --git a/src/battle/src/View/MainMenu.elm b/src/battle/src/View/MainMenu.elm index a40b2a3..318604c 100644 --- a/src/battle/src/View/MainMenu.elm +++ b/src/battle/src/View/MainMenu.elm @@ -16,7 +16,7 @@ get_menu_button_html : Struct.UI.Tab -> (Html.Html Struct.Event.Type)  get_menu_button_html tab =     (Html.button        [ (Html.Events.onClick (Struct.Event.TabSelected tab)) ] -      [ (Html.text (Struct.UI.to_string tab)) ] +      [ (Html.text (Struct.UI.tab_to_string tab)) ]     )  get_main_menu_button_html : (Html.Html Struct.Event.Type) diff --git a/src/battle/src/View/Map.elm b/src/battle/src/View/Map.elm index babfcaf..5b0182e 100644 --- a/src/battle/src/View/Map.elm +++ b/src/battle/src/View/Map.elm @@ -10,7 +10,7 @@ import Html.Lazy  import List  -- Shared ---------------------------------------------------------------------- -import Util.Html +import Shared.Util.Html  -- Battle Map ------------------------------------------------------------------  import BattleMap.Struct.Map @@ -96,7 +96,7 @@ maybe_print_navigator interactive maybe_nav =              )           Nothing -> -            (Util.Html.nothing) +            (Shared.Util.Html.nothing)  get_characters_html : (        Struct.Battle.Type -> diff --git a/src/battle/src/View/Map/Character.elm b/src/battle/src/View/Map/Character.elm index 1afffeb..49150eb 100644 --- a/src/battle/src/View/Map/Character.elm +++ b/src/battle/src/View/Map/Character.elm @@ -6,7 +6,7 @@ import Html.Attributes  import Html.Events  -- Shared ---------------------------------------------------------------------- -import Util.Html +import Shared.Util.Html  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.Portrait @@ -80,7 +80,7 @@ get_head_html char =  get_banner_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)  get_banner_html char =     -- TODO: Banner from some status indicator -   (Util.Html.nothing) +   (Shared.Util.Html.nothing)  get_actual_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)  get_actual_html char = @@ -123,4 +123,4 @@ get_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)  get_html char =     if (Struct.Character.is_alive char)     then (get_actual_html char) -   else (Util.Html.nothing) +   else (Shared.Util.Html.nothing) diff --git a/src/battle/src/View/MessageBoard.elm b/src/battle/src/View/MessageBoard.elm index 77ceccf..7177d94 100644 --- a/src/battle/src/View/MessageBoard.elm +++ b/src/battle/src/View/MessageBoard.elm @@ -4,7 +4,7 @@ module View.MessageBoard exposing (get_html)  import Html  -- Shared ---------------------------------------------------------------------- -import Util.Html +import Shared.Util.Html  -- Local Module ----------------------------------------------------------------  import Struct.Event @@ -40,5 +40,5 @@ display model message =  get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)  get_html model =     case (Struct.MessageBoard.maybe_get_current_message model.message_board) of -      Nothing -> (Util.Html.nothing) +      Nothing -> (Shared.Util.Html.nothing)        (Just message) -> (display model message) diff --git a/src/battle/src/View/SubMenu.elm b/src/battle/src/View/SubMenu.elm index 0577cbf..1261764 100644 --- a/src/battle/src/View/SubMenu.elm +++ b/src/battle/src/View/SubMenu.elm @@ -8,11 +8,10 @@ import Html.Attributes  import Html.Lazy  -- Shared ---------------------------------------------------------------------- -import Util.Html +import Shared.Util.Html  -- Local Module ----------------------------------------------------------------  import Struct.Battle -import Struct.CharacterTurn  import Struct.Event  import Struct.Model  import Struct.UI @@ -63,25 +62,4 @@ get_html model =           )        Nothing -> -         case (Struct.CharacterTurn.maybe_get_target model.char_turn) of -            (Just char_ref) -> -               case (Struct.Battle.get_character char_ref model.battle) of -                  (Just char) -> -                     (Html.div -                        [(Html.Attributes.class "sub-menu")] -                        [ -                           (Html.text "Targeting:"), -                           (Html.Lazy.lazy3 -                              (View.Controlled.CharacterCard.get_summary_html) -                              model.char_turn -                              model.battle.own_player_ix -                              char -                           ) -                        ] -                     ) - -                  Nothing -> -                     (Util.Html.nothing) - -            Nothing -> -               (Util.Html.nothing) +         (Shared.Util.Html.nothing) diff --git a/src/shared/battle-characters/BattleCharacters/View/Portrait.elm b/src/shared/battle-characters/BattleCharacters/View/Portrait.elm index 37b6d1f..05497a9 100644 --- a/src/shared/battle-characters/BattleCharacters/View/Portrait.elm +++ b/src/shared/battle-characters/BattleCharacters/View/Portrait.elm @@ -9,7 +9,7 @@ import Html.Attributes  import Html.Events  -- Shared ---------------------------------------------------------------------- -import Util.Html +import Shared.Util.Html  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.Armor diff --git a/src/shared/battle-map/BattleMap/Struct/Map.elm b/src/shared/battle-map/BattleMap/Struct/Map.elm index cbab5b2..3504f95 100644 --- a/src/shared/battle-map/BattleMap/Struct/Map.elm +++ b/src/shared/battle-map/BattleMap/Struct/Map.elm @@ -9,6 +9,7 @@ module BattleMap.Struct.Map exposing        remove_marker,        add_marker,        get_tile_data_function, +      get_tile_cost_function,        get_omnimods_at,        get_tiles,        get_width, @@ -28,7 +29,7 @@ import Dict  import Json.Decode  -- Shared ---------------------------------------------------------------------- -import Util.Array +import Shared.Util.Array  -- Battle ----------------------------------------------------------------------  import Battle.Struct.Omnimods @@ -98,7 +99,7 @@ remove_marker marker_name map =              content =                 (Set.foldl                    (\loc array -> -                     (Util.Array.update_unsafe +                     (Shared.Util.Array.update_unsafe                          (location_to_index                             (BattleMap.Struct.Location.from_ref loc)                             map @@ -121,7 +122,7 @@ add_marker marker_name marker map =        content =           (Set.foldl              (\loc array -> -               (Util.Array.update_unsafe +               (Shared.Util.Array.update_unsafe                    (location_to_index                       (BattleMap.Struct.Location.from_ref loc)                       map @@ -263,3 +264,23 @@ get_tile_data_function bmap occupied_tiles start_loc loc =           Nothing -> (Constants.Movement.cost_when_out_of_bounds, 0)     else        (Constants.Movement.cost_when_out_of_bounds, 0) + +get_tile_cost_function : ( +      Type -> +      (List BattleMap.Struct.Location.Type) -> +      BattleMap.Struct.Location.Type -> +      BattleMap.Struct.Location.Type -> +      Int +   ) +get_tile_cost_function bmap occupied_tiles start_loc loc = +   if (has_location loc bmap) +   then +      case (Array.get (location_to_index loc bmap) bmap.content) of +         (Just tile) -> +            if ((loc /= start_loc) && (List.member loc occupied_tiles)) +            then Constants.Movement.cost_when_occupied_tile +            else (BattleMap.Struct.TileInstance.get_cost tile) + +         Nothing -> (Constants.Movement.cost_when_out_of_bounds) +   else +      (Constants.Movement.cost_when_out_of_bounds) diff --git a/src/shared/battle-map/BattleMap/View/TileInfo.elm b/src/shared/battle-map/BattleMap/View/TileInfo.elm index 8769157..8dc4788 100644 --- a/src/shared/battle-map/BattleMap/View/TileInfo.elm +++ b/src/shared/battle-map/BattleMap/View/TileInfo.elm @@ -6,9 +6,6 @@ import Dict  import Html  import Html.Attributes --- Shared ---------------------------------------------------------------------- -import Util.Html -  -- Battle ----------------------------------------------------------------------  import Battle.Struct.Omnimods diff --git a/src/shared/elm/Shared/Struct/Flags.elm b/src/shared/elm/Shared/Struct/Flags.elm index f57362e..ff4dd20 100644 --- a/src/shared/elm/Shared/Struct/Flags.elm +++ b/src/shared/elm/Shared/Struct/Flags.elm @@ -12,7 +12,7 @@ module Shared.Struct.Flags exposing  import List  -- Shared ---------------------------------------------------------------------- -import Util.List +import Shared.Util.List  --------------------------------------------------------------------------------  -- TYPES ----------------------------------------------------------------------- @@ -39,7 +39,7 @@ parameter_as_url parameter =  maybe_get_parameter : String -> Type -> (Maybe String)  maybe_get_parameter parameter flags =     case -      (Util.List.get_first +      (Shared.Util.List.get_first           (\e -> ((List.head e) == (Just parameter)))           flags.url_parameters        ) diff --git a/src/shared/elm/Shared/Update/Sequence.elm b/src/shared/elm/Shared/Update/Sequence.elm index ff33ae4..8f5b3e9 100644 --- a/src/shared/elm/Shared/Update/Sequence.elm +++ b/src/shared/elm/Shared/Update/Sequence.elm @@ -4,6 +4,7 @@ module Shared.Update.Sequence exposing (sequence)  import List  -- Local Module ---------------------------------------------------------------- +import Struct.Event  import Struct.Model  -------------------------------------------------------------------------------- @@ -16,9 +17,7 @@ sequence_step : (     )  sequence_step action (model, cmd_list) =     let (next_model, new_cmd) = (action model) in -      case new_cmd of -         Cmd.none -> (next_model, cmd_list) -         _ -> (next_model, (cmd_list ++ new_cmds)) +      (next_model, (new_cmd :: cmd_list))  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- @@ -27,6 +26,7 @@ sequence : (        (List           (Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type)))        ) +      -> Struct.Model.Type        -> (Struct.Model.Type, (Cmd Struct.Event.Type))     )  sequence actions model = | 


