summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/battle-characters/BattleCharacters/Struct')
-rw-r--r--src/shared/battle-characters/BattleCharacters/Struct/DataSetItem.elm44
-rw-r--r--src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm62
2 files changed, 69 insertions, 37 deletions
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