summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-11-25 14:32:39 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-11-25 14:32:39 +0100
commita2bac44a4c8abc064de55d0779edcb07aaa86e62 (patch)
treec11d550f6b7703dcf9708b6ac484cc40b3c9768b /src/shared/battle-characters/BattleCharacters
parent764a36d571bd071ee754678274be54ff5ab40b36 (diff)
...
Diffstat (limited to 'src/shared/battle-characters/BattleCharacters')
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddArmor.elm6
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddDataSetItem.elm48
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddGlyph.elm7
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddGlyphBoard.elm6
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddPortrait.elm6
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddSkill.elm6
-rw-r--r--src/shared/battle-characters/BattleCharacters/Comm/AddWeapon.elm6
-rw-r--r--src/shared/battle-characters/BattleCharacters/Struct/DataSetItem.elm44
-rw-r--r--src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm62
9 files changed, 147 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