| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2019-11-25 14:32:39 +0100 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2019-11-25 14:32:39 +0100 | 
| commit | a2bac44a4c8abc064de55d0779edcb07aaa86e62 (patch) | |
| tree | c11d550f6b7703dcf9708b6ac484cc40b3c9768b /src | |
| parent | 764a36d571bd071ee754678274be54ff5ab40b36 (diff) | |
...
Diffstat (limited to 'src')
16 files changed, 196 insertions, 247 deletions
| diff --git a/src/battle/src/Struct/ServerReply.elm b/src/battle/src/Struct/ServerReply.elm index d059c17..9b0bfd3 100644 --- a/src/battle/src/Struct/ServerReply.elm +++ b/src/battle/src/Struct/ServerReply.elm @@ -1,16 +1,11 @@  module Struct.ServerReply exposing (Type(..))  -- Battle Characters ----------------------------------------------------------- -import BattleCharacters.Struct.Armor -import BattleCharacters.Struct.Glyph -import BattleCharacters.Struct.GlyphBoard -import BattleCharacters.Struct.Portrait -import BattleCharacters.Struct.Skill -import BattleCharacters.Struct.Weapon +import BattleCharacters.Struct.DataSetItem  -- Battle Map ------------------------------------------------------------------ +import BattleMap.Struct.DataSetItem  import BattleMap.Struct.Map -import BattleMap.Struct.Tile  -- Local Module ----------------------------------------------------------------  import Struct.Player @@ -23,19 +18,16 @@ import Struct.TurnResult  type Type =     Okay     | Disconnected -   | AddArmor BattleCharacters.Struct.Armor.Type -   | AddPortrait BattleCharacters.Struct.Portrait.Type -   | AddGlyphBoard BattleCharacters.Struct.GlyphBoard.Type -   | AddGlyph BattleCharacters.Struct.Glyph.Type -   | AddSkill BattleCharacters.Struct.Skill.Type +     | AddPlayer Struct.Player.Type -   | AddWeapon BattleCharacters.Struct.Weapon.Type     | AddCharacter Struct.Character.Unresolved -   | AddTile BattleMap.Struct.Tile.Type     | SetMap BattleMap.Struct.Map.Type     | TurnResults (List Struct.TurnResult.Type)     | SetTimeline (List Struct.TurnResult.Type) +   | AddMapDataSetItem BattleMap.Struct.DataSetItem.Type +   | AddCharactersDataSetItem BattleCharacters.Struct.DataSetItem.Type +  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- diff --git a/src/battle/src/Update/HandleServerReply.elm b/src/battle/src/Update/HandleServerReply.elm index 1ab919e..f497fe0 100644 --- a/src/battle/src/Update/HandleServerReply.elm +++ b/src/battle/src/Update/HandleServerReply.elm @@ -21,14 +21,7 @@ import Struct.Flags  import Util.Http  -- Battle Characters ----------------------------------------------------------- -import BattleCharacters.Struct.Armor -import BattleCharacters.Struct.DataSet -import BattleCharacters.Struct.Equipment -import BattleCharacters.Struct.Glyph -import BattleCharacters.Struct.GlyphBoard -import BattleCharacters.Struct.Portrait -import BattleCharacters.Struct.Skill -import BattleCharacters.Struct.Weapon +import BattleCharacters.Struct.DataSetItem  -- Battle Map ------------------------------------------------------------------  import BattleMap.Struct.DataSet @@ -81,108 +74,18 @@ disconnected current_state =           ]        ) -add_armor : ( -      BattleCharacters.Struct.Armor.Type -> +add_characters_dataset_item : ( +      BattleCharacters.Struct.DataSetItem.Type ->        (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->        (Struct.Model.Type, (List (Cmd Struct.Event.Type)))     ) -add_armor ar current_state = +add_weapon item current_state =     let (model, cmds) = current_state in        (           {model |              characters_dataset = -               (BattleCharacters.Struct.DataSet.add_armor -                  ar -                  model.characters_dataset -               ) -         }, -         cmds -      ) - -add_portrait : ( -      BattleCharacters.Struct.Portrait.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_portrait pt current_state = -   let (model, cmds) = current_state in -      ( -         {model | -            characters_dataset = -               (BattleCharacters.Struct.DataSet.add_portrait -                  pt -                  model.characters_dataset -               ) -         }, -         cmds -      ) - -add_glyph_board : ( -      BattleCharacters.Struct.GlyphBoard.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_glyph_board gb current_state = -   let (model, cmds) = current_state in -      ( -         {model | -            characters_dataset = -               (BattleCharacters.Struct.DataSet.add_glyph_board -                  gb -                  model.characters_dataset -               ) -         }, -         cmds -      ) - -add_glyph : ( -      BattleCharacters.Struct.Glyph.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_glyph gl current_state = -   let (model, cmds) = current_state in -      ( -         {model | -            characters_dataset = -               (BattleCharacters.Struct.DataSet.add_glyph -                  gl -                  model.characters_dataset -               ) -         }, -         cmds -      ) - -add_weapon : ( -      BattleCharacters.Struct.Weapon.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_weapon wp current_state = -   let (model, cmds) = current_state in -      ( -         {model | -            characters_dataset = -               (BattleCharacters.Struct.DataSet.add_weapon -                  wp -                  model.characters_dataset -               ) -         }, -         cmds -      ) - -add_skill : ( -      BattleCharacters.Struct.Skill.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_skill sk current_state = -   let (model, cmds) = current_state in -      ( -         {model | -            characters_dataset = -               (BattleCharacters.Struct.DataSet.add_skill -                  sk +               (BattleCharacters.Struct.Weapon.DataSetItem.add_to +                  item                    model.characters_dataset                 )           }, diff --git a/src/roster-editor/src/Struct/Inventory.elm b/src/roster-editor/src/Struct/Inventory.elm index 8b31aec..e36d75f 100644 --- a/src/roster-editor/src/Struct/Inventory.elm +++ b/src/roster-editor/src/Struct/Inventory.elm @@ -105,7 +105,12 @@ allows equipment inv =        )        &&        (List.all -         (\e -> (has_glyph e inv)) +         (\gl -> +            (has_glyph +               (BattleCharacters.Struct.Glyph.get_id gl) +               inv +            ) +         )           (Array.toList (BattleCharacters.Struct.Equipment.get_glyphs equipment))        )        && diff --git a/src/roster-editor/src/Struct/Model.elm b/src/roster-editor/src/Struct/Model.elm index d0d70b4..e345aaa 100644 --- a/src/roster-editor/src/Struct/Model.elm +++ b/src/roster-editor/src/Struct/Model.elm @@ -25,11 +25,12 @@ import Util.Array  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.Armor -import BattleCharacters.Struct.Portrait -import BattleCharacters.Struct.Weapon -import BattleCharacters.Struct.Glyph +import BattleCharacters.Struct.DataSet  import BattleCharacters.Struct.Equipment +import BattleCharacters.Struct.Glyph  import BattleCharacters.Struct.GlyphBoard +import BattleCharacters.Struct.Portrait +import BattleCharacters.Struct.Weapon  -- Local Module ----------------------------------------------------------------  import Struct.Character @@ -45,7 +46,7 @@ type alias Type =     {        flags : Struct.Flags.Type,        error : (Maybe Struct.Error.Type), -      ui : Struct.UI.Type +      ui : Struct.UI.Type,        help_request : Struct.HelpRequest.Type,        edited_char : (Maybe Struct.Character.Type), @@ -56,7 +57,7 @@ type alias Type =        unresolved_characters : (List Struct.Character.Unresolved),        inventory : Struct.Inventory.Type, -      characters_data_set : BattleCharacters.Struct.DataSet.Type, +      characters_dataset : BattleCharacters.Struct.DataSet.Type     }  -------------------------------------------------------------------------------- @@ -67,7 +68,7 @@ add_character_from_unresolved char_ref model =     let        char =           (Struct.Character.resolve -            (BattleCharacters.Struct.Equipment.resolve model.inventory) +            (BattleCharacters.Struct.Equipment.resolve model.characters_dataset)              char_ref           )     in @@ -84,7 +85,7 @@ has_loaded_data : Type -> Bool  has_loaded_data model =     (        ((Array.length model.characters) > 0) -      || (BattleCharacters.Struct.DataSet.is_ready model.characters_data_set) +      || (BattleCharacters.Struct.DataSet.is_ready model.characters_dataset)     )  -------------------------------------------------------------------------------- @@ -97,15 +98,8 @@ new flags =        help_request = Struct.HelpRequest.None,        characters = (Array.empty),        unresolved_characters = [], -      inventory = (BattleCharacters.Struct.Inventory.new),        error = Nothing,        roster_id = "", -      player_id = -         ( -            if (flags.user_id == "") -            then "0" -            else flags.user_id -         ),        battle_order =           (Array.repeat              ( @@ -118,10 +112,10 @@ new flags =              )              -1           ), -      session_token = flags.token,        edited_char = Nothing,        inventory = (Struct.Inventory.empty), -      ui = (Struct.UI.default) +      ui = (Struct.UI.default), +      characters_dataset = (BattleCharacters.Struct.DataSet.new)     }  add_unresolved_character : Struct.Character.Unresolved -> Type -> Type diff --git a/src/roster-editor/src/Struct/ServerReply.elm b/src/roster-editor/src/Struct/ServerReply.elm index 8e643bf..d09aa7c 100644 --- a/src/roster-editor/src/Struct/ServerReply.elm +++ b/src/roster-editor/src/Struct/ServerReply.elm @@ -1,11 +1,7 @@  module Struct.ServerReply exposing (Type(..))  -- Battle Characters ----------------------------------------------------------- -import BattleCharacters.Struct.Armor -import BattleCharacters.Struct.Portrait -import BattleCharacters.Struct.Weapon -import BattleCharacters.Struct.Glyph -import BattleCharacters.Struct.GlyphBoard +import BattleCharacters.Struct.DataSetItem  -- Local Module ----------------------------------------------------------------  import Struct.Character @@ -19,14 +15,12 @@ type Type =     Okay     | Disconnected     | GoTo String +     | SetInventory Struct.Inventory.Type -   | AddArmor BattleCharacters.Struct.Armor.Type -   | AddGlyph BattleCharacters.Struct.Glyph.Type -   | AddGlyphBoard BattleCharacters.Struct.GlyphBoard.Type -   | AddPortrait BattleCharacters.Struct.Portrait.Type -   | AddWeapon BattleCharacters.Struct.Weapon.Type     | AddCharacter Struct.Character.Unresolved +   | AddCharactersDataSetItem BattleCharacters.Struct.DataSetItem.Type +  --------------------------------------------------------------------------------  -- LOCAL -----------------------------------------------------------------------  -------------------------------------------------------------------------------- diff --git a/src/roster-editor/src/Update/HandleServerReply.elm b/src/roster-editor/src/Update/HandleServerReply.elm index 617b72a..0096753 100644 --- a/src/roster-editor/src/Update/HandleServerReply.elm +++ b/src/roster-editor/src/Update/HandleServerReply.elm @@ -15,11 +15,7 @@ import Struct.Flags  import Util.Http  -- Battle Characters ----------------------------------------------------------- -import BattleCharacters.Struct.Armor -import BattleCharacters.Struct.Portrait -import BattleCharacters.Struct.Weapon -import BattleCharacters.Struct.Glyph -import BattleCharacters.Struct.GlyphBoard +import BattleCharacters.Struct.DataSetItem  -- Local Module ----------------------------------------------------------------  import Constants.IO @@ -77,50 +73,23 @@ goto url current_state =           ]        ) -add_armor : ( -      BattleCharacters.Struct.Armor.Type -> +add_characters_dataset_item : ( +      BattleCharacters.Struct.DataSetItem.Type ->        (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->        (Struct.Model.Type, (List (Cmd Struct.Event.Type)))     ) -add_armor ar current_state = +add_characters_dataset_item item current_state =     let (model, cmds) = current_state in -      ((Struct.Model.add_armor ar model), cmds) - -add_portrait : ( -      BattleCharacters.Struct.Portrait.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_portrait pt current_state = -   let (model, cmds) = current_state in -      ((Struct.Model.add_portrait pt model), cmds) - -add_glyph : ( -      BattleCharacters.Struct.Glyph.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_glyph gl current_state = -   let (model, cmds) = current_state in -      ((Struct.Model.add_glyph gl model), cmds) - -add_glyph_board : ( -      BattleCharacters.Struct.GlyphBoard.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_glyph_board glb current_state = -   let (model, cmds) = current_state in -      ((Struct.Model.add_glyph_board glb model), cmds) - -add_weapon : ( -      BattleCharacters.Struct.Weapon.Type -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -> -      (Struct.Model.Type, (List (Cmd Struct.Event.Type))) -   ) -add_weapon wp current_state = -   let (model, cmds) = current_state in -      ((Struct.Model.add_weapon wp model), cmds) +      ( +         {model | +            characters_dataset = +               (BattleCharacters.Struct.DataSetItem.add_to +                  item +                  model.characters_dataset +               ) +         }, +         cmds +      )  set_inventory : (        Struct.Inventory.Type -> @@ -154,23 +123,11 @@ apply_command command current_state =        (Struct.ServerReply.GoTo url) -> (goto url current_state) -      (Struct.ServerReply.AddWeapon wp) -> -         (add_weapon wp current_state) -        (Struct.ServerReply.SetInventory inv) ->           (set_inventory inv current_state) -      (Struct.ServerReply.AddArmor ar) -> -         (add_armor ar current_state) - -      (Struct.ServerReply.AddPortrait pt) -> -         (add_portrait pt current_state) - -      (Struct.ServerReply.AddGlyph gl) -> -         (add_glyph gl current_state) - -      (Struct.ServerReply.AddGlyphBoard glb) -> -         (add_glyph_board glb current_state) +      (Struct.ServerReply.AddCharactersDataSetItem it) -> +         (add_characters_dataset_item it current_state)        (Struct.ServerReply.AddCharacter char) ->           (add_character char current_state) diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddArmor.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddArmor.elm index bdbb137..7fb8021 100644 --- a/src/shared/battle-characters/BattleCharacters/Comm/AddArmor.elm +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddArmor.elm @@ -5,6 +5,7 @@ import Json.Decode  -- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.Armor +import BattleCharacters.Struct.DataSetItem  -- Local Module ----------------------------------------------------------------  import Struct.ServerReply @@ -17,7 +18,10 @@ import Struct.ServerReply  -- LOCAL -----------------------------------------------------------------------  --------------------------------------------------------------------------------  internal_decoder : BattleCharacters.Struct.Armor.Type -> Struct.ServerReply.Type -internal_decoder ar = (Struct.ServerReply.AddArmor ar) +internal_decoder ar = +   (Struct.ServerReply.AddCharactersDataSetItem +      (BattleCharacters.Struct.DataSetItem.Armor ar) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddDataSetItem.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddDataSetItem.elm new file mode 100644 index 0000000..aa1ce94 --- /dev/null +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddDataSetItem.elm @@ -0,0 +1,48 @@ +module BattleCharacters.Comm.AddDataSetItem exposing (prefix, get_decoder_for) + +-- Elm ------------------------------------------------------------------------- +import Json.Decode + +-- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Comm.AddArmor +import BattleCharacters.Comm.AddGlyph +import BattleCharacters.Comm.AddGlyphBoard +import BattleCharacters.Comm.AddPortrait +import BattleCharacters.Comm.AddSkill +import BattleCharacters.Comm.AddWeapon + +-- Local Module ---------------------------------------------------------------- +import Struct.ServerReply + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +prefix : String +prefix = "acds" + +get_decoder_for : String -> (Json.Decode.Decoder Struct.ServerReply.Type) +get_decoder_for reply_type = +   case reply_type of +      "acds_armor" -> (BattleCharacters.Comm.AddArmor.decode) +      "acds_weapon" -> (BattleCharacters.Comm.AddWeapon.decode) +      "acds_portrait" -> (BattleCharacters.Comm.AddPortrait.decode) +      "acds_glyph" -> (BattleCharacters.Comm.AddGlyph.decode) +      "acds_glyph_board" -> (BattleCharacters.Comm.AddGlyphBoard.decode) +      "acds_skill" -> (BattleCharacters.Comm.AddSkill.decode) + +      other -> +         (Json.Decode.fail +            ( +               "Unknown server command \"" +               ++ other +               ++ "\"" +            ) +         ) diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddGlyph.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddGlyph.elm index 100ed54..89e1512 100644 --- a/src/shared/battle-characters/BattleCharacters/Comm/AddGlyph.elm +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddGlyph.elm @@ -4,8 +4,8 @@ module BattleCharacters.Comm.AddGlyph exposing (decode)  import Json.Decode  -- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.DataSetItem  import BattleCharacters.Struct.Glyph -import BattleCharacters.Struct.GlyphBoard  -- Local Module ----------------------------------------------------------------  import Struct.ServerReply @@ -18,7 +18,10 @@ import Struct.ServerReply  -- LOCAL -----------------------------------------------------------------------  --------------------------------------------------------------------------------  internal_decoder : BattleCharacters.Struct.Glyph.Type -> Struct.ServerReply.Type -internal_decoder gl = (Struct.ServerReply.AddGlyph gl) +internal_decoder gl = +   (Struct.ServerReply.AddCharactersDataSetItem +      (BattleCharacters.Struct.DataSetItem.Glyph gl) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddGlyphBoard.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddGlyphBoard.elm index 825e940..92ebf61 100644 --- a/src/shared/battle-characters/BattleCharacters/Comm/AddGlyphBoard.elm +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddGlyphBoard.elm @@ -4,6 +4,7 @@ module BattleCharacters.Comm.AddGlyphBoard exposing (decode)  import Json.Decode  -- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.DataSetItem  import BattleCharacters.Struct.GlyphBoard  -- Local Module----------------------------------------------------------------- @@ -20,7 +21,10 @@ internal_decoder : (        BattleCharacters.Struct.GlyphBoard.Type ->        Struct.ServerReply.Type     ) -internal_decoder glb = (Struct.ServerReply.AddGlyphBoard glb) +internal_decoder gb = +   (Struct.ServerReply.AddCharactersDataSetItem +      (BattleCharacters.Struct.DataSetItem.GlyphBoard gb) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddPortrait.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddPortrait.elm index 321684c..df16534 100644 --- a/src/shared/battle-characters/BattleCharacters/Comm/AddPortrait.elm +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddPortrait.elm @@ -4,6 +4,7 @@ module BattleCharacters.Comm.AddPortrait exposing (decode)  import Json.Decode  -- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.DataSetItem  import BattleCharacters.Struct.Portrait  -- Local Module ---------------------------------------------------------------- @@ -20,7 +21,10 @@ internal_decoder : (        BattleCharacters.Struct.Portrait.Type ->        Struct.ServerReply.Type     ) -internal_decoder pt = (Struct.ServerReply.AddPortrait pt) +internal_decoder pt = +   (Struct.ServerReply.AddCharactersDataSetItem +      (BattleCharacters.Struct.DataSetItem.Portrait pt) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddSkill.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddSkill.elm index d132050..c38a01e 100644 --- a/src/shared/battle-characters/BattleCharacters/Comm/AddSkill.elm +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddSkill.elm @@ -4,6 +4,7 @@ module BattleCharacters.Comm.AddSkill exposing (decode)  import Json.Decode  -- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.DataSetItem  import BattleCharacters.Struct.Skill  -- Local Module ---------------------------------------------------------------- @@ -17,7 +18,10 @@ import Struct.ServerReply  -- LOCAL -----------------------------------------------------------------------  --------------------------------------------------------------------------------  internal_decoder : BattleCharacters.Struct.Skill.Type -> Struct.ServerReply.Type -internal_decoder sk = (Struct.ServerReply.AddSkill sk) +internal_decoder sk = +   (Struct.ServerReply.AddCharactersDataSetItem +      (BattleCharacters.Struct.DataSetItem.Skill sk) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/shared/battle-characters/BattleCharacters/Comm/AddWeapon.elm b/src/shared/battle-characters/BattleCharacters/Comm/AddWeapon.elm index 6a05978..407195f 100644 --- a/src/shared/battle-characters/BattleCharacters/Comm/AddWeapon.elm +++ b/src/shared/battle-characters/BattleCharacters/Comm/AddWeapon.elm @@ -4,6 +4,7 @@ module BattleCharacters.Comm.AddWeapon exposing (decode)  import Json.Decode  -- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.DataSetItem  import BattleCharacters.Struct.Weapon  -- Local Module ---------------------------------------------------------------- @@ -20,7 +21,10 @@ internal_decoder : (        BattleCharacters.Struct.Weapon.Type ->        Struct.ServerReply.Type     ) -internal_decoder wp = (Struct.ServerReply.AddWeapon wp) +internal_decoder wp = +   (Struct.ServerReply.AddCharactersDataSetItem +      (BattleCharacters.Struct.DataSetItem.Weapon wp) +   )  --------------------------------------------------------------------------------  -- EXPORTED -------------------------------------------------------------------- diff --git a/src/shared/battle-characters/BattleCharacters/Struct/DataSetItem.elm b/src/shared/battle-characters/BattleCharacters/Struct/DataSetItem.elm new file mode 100644 index 0000000..09dd9e5 --- /dev/null +++ b/src/shared/battle-characters/BattleCharacters/Struct/DataSetItem.elm @@ -0,0 +1,44 @@ +module BattleCharacters.Struct.DataSetItem exposing (Type(..), add_to) + +-- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.Armor +import BattleCharacters.Struct.DataSet +import BattleCharacters.Struct.Glyph +import BattleCharacters.Struct.GlyphBoard +import BattleCharacters.Struct.Portrait +import BattleCharacters.Struct.Skill +import BattleCharacters.Struct.Weapon + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type Type = +   Armor BattleCharacters.Struct.Armor.Type +   | Glyph BattleCharacters.Struct.Glyph.Type +   | GlyphBoard BattleCharacters.Struct.GlyphBoard.Type +   | Portrait BattleCharacters.Struct.Portrait.Type +   | Skill BattleCharacters.Struct.Skill.Type +   | Weapon BattleCharacters.Struct.Weapon.Type + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +add_to : ( +      Type -> +      BattleCharacters.Struct.DataSet.Type -> +      BattleCharacters.Struct.DataSet.Type +   ) +add_to item dataset = +   case item of +      (Armor ar) -> (BattleCharacters.Struct.DataSet.add_armor ar dataset) +      (Glyph gl) -> (BattleCharacters.Struct.DataSet.add_glyph gl dataset) +      (Portrait pt) -> (BattleCharacters.Struct.DataSet.add_portrait pt dataset) +      (Skill sk) -> (BattleCharacters.Struct.DataSet.add_skill sk dataset) +      (Weapon wp) -> (BattleCharacters.Struct.DataSet.add_weapon wp dataset) +      (GlyphBoard gb) -> +         (BattleCharacters.Struct.DataSet.add_glyph_board gb dataset) + diff --git a/src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm b/src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm index 0722a96..d82f8cf 100644 --- a/src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm +++ b/src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm @@ -33,8 +33,9 @@ import Json.Decode.Pipeline  import Json.Encode --- Battle ---------------------------------------------------------------------- +-- Battle Characters -----------------------------------------------------------  import BattleCharacters.Struct.Armor +import BattleCharacters.Struct.DataSet  import BattleCharacters.Struct.Glyph  import BattleCharacters.Struct.GlyphBoard  import BattleCharacters.Struct.Portrait @@ -157,43 +158,30 @@ encode ref =        ]     ) -resolve : ( -      ( -         BattleCharacters.Struct.Weapon.Ref -> -         BattleCharacters.Struct.Weapon.Type -      ) -> -      ( -         BattleCharacters.Struct.Armor.Ref -> -         BattleCharacters.Struct.Armor.Type -      ) -> -      ( -         BattleCharacters.Struct.Portrait.Ref -> -         BattleCharacters.Struct.Portrait.Type -      ) -> -      ( -         BattleCharacters.Struct.GlyphBoard.Ref -> -         BattleCharacters.Struct.GlyphBoard.Type -      ) -> -      ( -         BattleCharacters.Struct.Glyph.Ref -> -         BattleCharacters.Struct.Glyph.Type -      ) -> -      ( -         BattleCharacters.Struct.Skill.Ref -> -         BattleCharacters.Struct.Skill.Type -      ) -> -      Unresolved -> -      Type -   ) -resolve resolve_wp resolve_ar resolve_pt resolve_gb resolve_gl resolve_sk ref = +resolve : BattleCharacters.Struct.DataSet.Type -> Unresolved -> Type +resolve dataset ref =     { -      primary = (resolve_wp ref.primary), -      secondary = (resolve_wp ref.secondary), -      armor = (resolve_ar ref.armor), -      portrait = (resolve_pt ref.portrait), -      glyph_board = (resolve_gb ref.glyph_board), -      glyphs = (Array.map (resolve_gl) ref.glyphs), -      skill = (resolve_sk ref.skill) +      primary = +         (BattleCharacters.Struct.DataSet.get_weapon ref.primary dataset), +      secondary = +         (BattleCharacters.Struct.DataSet.get_weapon ref.secondary dataset), +      armor = +         (BattleCharacters.Struct.DataSet.get_armor ref.armor dataset), +      portrait = +         (BattleCharacters.Struct.DataSet.get_portrait ref.portrait dataset), +      glyph_board = +         (BattleCharacters.Struct.DataSet.get_glyph_board +            ref.glyph_board dataset +         ), +      glyphs = +         (Array.map +            (\gl_id -> +               (BattleCharacters.Struct.DataSet.get_glyph gl_id dataset) +            ) +            ref.glyphs +         ), +      skill = +         (BattleCharacters.Struct.DataSet.get_skill ref.skill dataset)     }  to_unresolved : Type -> Unresolved diff --git a/src/shared/battle-map/BattleMap/Struct/Map.elm b/src/shared/battle-map/BattleMap/Struct/Map.elm index 73a1cfe..35b8a1f 100644 --- a/src/shared/battle-map/BattleMap/Struct/Map.elm +++ b/src/shared/battle-map/BattleMap/Struct/Map.elm @@ -195,6 +195,7 @@ get_omnimods_at loc dataset map =           (BattleMap.Struct.Tile.get_omnimods              (BattleMap.Struct.DataSet.get_tile                 (BattleMap.Struct.TileInstance.get_class_id tile_inst) +               dataset              )           ) | 


