| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/shared/battle-characters/BattleCharacters/Struct')
| -rw-r--r-- | src/shared/battle-characters/BattleCharacters/Struct/DataSetItem.elm | 44 | ||||
| -rw-r--r-- | src/shared/battle-characters/BattleCharacters/Struct/Equipment.elm | 62 | 
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 | 


