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/shared | |
parent | 764a36d571bd071ee754678274be54ff5ab40b36 (diff) |
...
Diffstat (limited to 'src/shared')
10 files changed, 148 insertions, 44 deletions
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 ) ) |