From f6f7a84e71cc0affd7bfd2ea51a7e67202586836 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Wed, 20 Nov 2019 18:35:01 +0100 Subject: ... --- .../BattleCharacters/Struct/DataSet.elm | 242 +++++++++++++++++++ .../BattleCharacters/Struct/Inventory.elm | 266 --------------------- 2 files changed, 242 insertions(+), 266 deletions(-) create mode 100644 src/shared/battle-characters/BattleCharacters/Struct/DataSet.elm delete mode 100644 src/shared/battle-characters/BattleCharacters/Struct/Inventory.elm (limited to 'src/shared/battle-characters/BattleCharacters') diff --git a/src/shared/battle-characters/BattleCharacters/Struct/DataSet.elm b/src/shared/battle-characters/BattleCharacters/Struct/DataSet.elm new file mode 100644 index 0000000..4e3050a --- /dev/null +++ b/src/shared/battle-characters/BattleCharacters/Struct/DataSet.elm @@ -0,0 +1,242 @@ +module BattleCharacters.Struct.DataSet exposing + ( + Type, + new, + is_ready, + get_weapon, + add_weapon, + get_armor, + add_armor, + get_portrait, + add_portrait, + get_glyph, + add_glyph, + get_glyph_board, + add_glyph_board, + get_skill, + add_skill + ) + +-- Elm ------------------------------------------------------------------------- +import Dict + +-- Battle ---------------------------------------------------------------------- +import BattleCharacters.Struct.Armor +import BattleCharacters.Struct.Glyph +import BattleCharacters.Struct.GlyphBoard +import BattleCharacters.Struct.Portrait +import BattleCharacters.Struct.Skill +import BattleCharacters.Struct.Weapon + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +type alias Type = + { + weapons : + (Dict.Dict + BattleCharacters.Struct.Weapon.Ref + BattleCharacters.Struct.Weapon.Type + ), + armors : + (Dict.Dict + BattleCharacters.Struct.Armor.Ref + BattleCharacters.Struct.Armor.Type + ), + glyphs : + (Dict.Dict + BattleCharacters.Struct.Glyph.Ref + BattleCharacters.Struct.Glyph.Type + ), + glyph_boards : + (Dict.Dict + BattleCharacters.Struct.GlyphBoard.Ref + BattleCharacters.Struct.GlyphBoard.Type + ), + portraits : + (Dict.Dict + BattleCharacters.Struct.Portrait.Ref + BattleCharacters.Struct.Portrait.Type + ), + skills : + (Dict.Dict + BattleCharacters.Struct.Skill.Ref + BattleCharacters.Struct.Skill.Type + ) + } + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +new : Type +new = + { + weapons = (Dict.new), + armors = (Dict.new), + glyphs = (Dict.new), + glyph_boards = (Dict.new), + portraits = (Dict.new), + skills = (Dict.new) + } + +is_ready : Type -> Bool +is_ready data_set = + ( + (data_set.portraits /= (Dict.empty)) + && (data_set.weapons /= (Dict.empty)) + && (data_set.armors /= (Dict.empty)) + && (data_set.glyph_boards /= (Dict.empty)) + && (data_set.glyphs /= (Dict.empty)) + && (data_set.skills /= (Dict.empty)) + ) + +---- Accessors ----------------------------------------------------------------- + +---------------- +---- Weapon ---- +---------------- +get_weapon : ( + BattleCharacters.Struct.Weapon.Ref -> + Type -> + BattleCharacters.Struct.Weapon.Type + ) +get_weapon wp_id data_set = + case (Dict.get wp_id data_set.weapons) of + (Just wp) -> wp + Nothing -> BattleCharacters.Struct.Weapon.none + +add_weapon : BattleCharacters.Struct.Weapon.Type -> Type -> Type +add_weapon wp data_set = + {data_set | + weapons = + (Dict.insert + (BattleCharacters.Struct.Weapon.get_id wp) + wp + data_set.weapons + ) + } + +--------------- +---- Armor ---- +--------------- +get_armor : ( + BattleCharacters.Struct.Armor.Ref -> + Type -> + BattleCharacters.Struct.Armor.Type + ) +get_armor ar_id data_set = + case (Dict.get ar_id data_set.armors) of + (Just ar) -> ar + Nothing -> BattleCharacters.Struct.Armor.none + +add_armor : BattleCharacters.Struct.Armor.Type -> Type -> Type +add_armor ar data_set = + {data_set | + armors = + (Dict.insert + (BattleCharacters.Struct.Armor.get_id ar) + ar + data_set.armors + ) + } + +------------------ +---- Portrait ---- +------------------ +get_portrait : ( + BattleCharacters.Struct.Portrait.Ref -> + Type -> + BattleCharacters.Struct.Portrait.Type + ) +get_portrait pt_id data_set = + case (Dict.get pt_id data_set.portraits) of + (Just pt) -> pt + Nothing -> BattleCharacters.Struct.Portrait.none + +add_portrait : BattleCharacters.Struct.Portrait.Type -> Type -> Type +add_portrait pt data_set = + {data_set | + portraits = + (Dict.insert + (BattleCharacters.Struct.Portrait.get_id pt) + pt + data_set.portraits + ) + } + +--------------- +---- Glyph ---- +--------------- +get_glyph : ( + BattleCharacters.Struct.Glyph.Ref -> + Type -> + BattleCharacters.Struct.Glyph.Type + ) +get_glyph gl_id data_set = + case (Dict.get gl_id data_set.glyphs) of + (Just gl) -> gl + Nothing -> BattleCharacters.Struct.Glyph.none + +add_glyph : BattleCharacters.Struct.Glyph.Type -> Type -> Type +add_glyph gl data_set = + {data_set | + glyphs = + (Dict.insert + (BattleCharacters.Struct.Glyph.get_id gl) + gl + data_set.glyphs + ) + } + +--------------------- +---- Glyph Board ---- +--------------------- +get_glyph_board : ( + BattleCharacters.Struct.GlyphBoard.Ref -> + Type -> + BattleCharacters.Struct.GlyphBoard.Type + ) +get_glyph_board gb_id data_set = + case (Dict.get gb_id data_set.glyph_boards) of + (Just gb) -> gb + Nothing -> BattleCharacters.Struct.GlyphBoard.none + +add_glyph_board : BattleCharacters.Struct.GlyphBoard.Type -> Type -> Type +add_glyph_board glb data_set = + {data_set | + glyph_boards = + (Dict.insert + (BattleCharacters.Struct.GlyphBoard.get_id glb) + glb + data_set.glyph_boards + ) + } + +--------------- +---- Skill ---- +--------------- +get_skill : ( + BattleCharacters.Struct.Skill.Ref -> + Type -> + BattleCharacters.Struct.Skill.Type + ) +get_skill sk_id data_set = + case (Dict.get sk_id data_set.skills) of + (Just sk) -> sk + Nothing -> BattleCharacters.Struct.Skill.none + +add_skill : BattleCharacters.Struct.Skill.Type -> Type -> Type +add_skill sk data_set = + {data_set | + skills = + (Dict.insert + (BattleCharacters.Struct.Skill.get_id sk) + sk + data_set.skills + ) + } + diff --git a/src/shared/battle-characters/BattleCharacters/Struct/Inventory.elm b/src/shared/battle-characters/BattleCharacters/Struct/Inventory.elm deleted file mode 100644 index 9e1347e..0000000 --- a/src/shared/battle-characters/BattleCharacters/Struct/Inventory.elm +++ /dev/null @@ -1,266 +0,0 @@ -module BattleCharacters.Struct.Inventory exposing - ( - Type, - new, - is_ready, - get_weapon, - add_weapon, - get_armor, - add_armor, - get_portrait, - add_portrait, - get_glyph, - add_glyph, - get_glyph_board, - add_glyph_board, - get_skill, - add_skill - ) - --- Elm ------------------------------------------------------------------------- -import Dict - --- Battle ---------------------------------------------------------------------- -import BattleCharacters.Struct.Armor -import BattleCharacters.Struct.Glyph -import BattleCharacters.Struct.GlyphBoard -import BattleCharacters.Struct.Portrait -import BattleCharacters.Struct.Skill -import BattleCharacters.Struct.Weapon - --------------------------------------------------------------------------------- --- TYPES ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -type alias Type = - { - weapons : - (Dict.Dict - BattleCharacters.Struct.Weapon.Ref - BattleCharacters.Struct.Weapon.Type - ), - armors : - (Dict.Dict - BattleCharacters.Struct.Armor.Ref - BattleCharacters.Struct.Armor.Type - ), - glyphs : - (Dict.Dict - BattleCharacters.Struct.Glyph.Ref - BattleCharacters.Struct.Glyph.Type - ), - glyph_boards : - (Dict.Dict - BattleCharacters.Struct.GlyphBoard.Ref - BattleCharacters.Struct.GlyphBoard.Type - ), - portraits : - (Dict.Dict - BattleCharacters.Struct.Portrait.Ref - BattleCharacters.Struct.Portrait.Type - ), - skills : - (Dict.Dict - BattleCharacters.Struct.Skill.Ref - BattleCharacters.Struct.Skill.Type - ) - } - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -new : Type -new = - { - weapons : - (Dict.Dict - BattleCharacters.Struct.Weapon.Ref - BattleCharacters.Struct.Weapon.Type - ), - armors : - (Dict.Dict - BattleCharacters.Struct.Armor.Ref - BattleCharacters.Struct.Armor.Type - ), - glyphs : - (Dict.Dict - BattleCharacters.Struct.Glyph.Ref - BattleCharacters.Struct.Glyph.Type - ), - glyph_boards : - (Dict.Dict - BattleCharacters.Struct.GlyphBoard.Ref - BattleCharacters.Struct.GlyphBoard.Type - ), - portraits : - (Dict.Dict - BattleCharacters.Struct.Portrait.Ref - BattleCharacters.Struct.Portrait.Type - ), - skills : - (Dict.Dict - BattleCharacters.Struct.Portrait.Ref - BattleCharacters.Struct.Portrait.Type - ), - } - -is_ready : Type -> Bool -is_ready inventory = - ( - (inventory.portraits /= (Dict.empty)) - && (inventory.weapons /= (Dict.empty)) - && (inventory.armors /= (Dict.empty)) - && (inventory.glyph_boards /= (Dict.empty)) - && (inventory.glyphs /= (Dict.empty)) - && (inventory.skills /= (Dict.empty)) - ) - ----- Accessors ----------------------------------------------------------------- - ----------------- ----- Weapon ---- ----------------- -get_weapon : ( - BattleCharacters.Struct.Weapon.Ref -> - Type -> - BattleCharacters.Struct.Weapon.Type - ) -get_weapon wp_id inventory = - case (Dict.get wp_id inventory.weapons) of - (Just wp) -> wp - Nothing -> BattleCharacters.Struct.Weapon.none - -add_weapon : BattleCharacters.Struct.Weapon.Type -> Type -> Type -add_weapon wp inventory = - {inventory | - weapons = - (Dict.insert - (BattleCharacters.Struct.Weapon.get_id wp) - wp - inventory.weapons - ) - } - ---------------- ----- Armor ---- ---------------- -get_armor : ( - BattleCharacters.Struct.Armor.Ref -> - Type -> - BattleCharacters.Struct.Armor.Type - ) -get_armor ar_id inventory = - case (Dict.get ar_id inventory.armors) of - (Just ar) -> ar - Nothing -> BattleCharacters.Struct.Armor.none - -add_armor : BattleCharacters.Struct.Armor.Type -> Type -> Type -add_armor ar inventory = - {inventory | - armors = - (Dict.insert - (BattleCharacters.Struct.Armor.get_id ar) - ar - inventory.armors - ) - } - ------------------- ----- Portrait ---- ------------------- -get_portrait : ( - BattleCharacters.Struct.Portrait.Ref -> - Type -> - BattleCharacters.Struct.Portrait.Type - ) -get_portrait pt_id inventory = - case (Dict.get pt_id inventory.portraits) of - (Just pt) -> pt - Nothing -> BattleCharacters.Struct.Portrait.none - -add_portrait : BattleCharacters.Struct.Portrait.Type -> Type -> Type -add_portrait pt inventory = - {inventory | - portraits = - (Dict.insert - (BattleCharacters.Struct.Portrait.get_id pt) - pt - inventory.portraits - ) - } - ---------------- ----- Glyph ---- ---------------- -get_glyph : ( - BattleCharacters.Struct.Glyph.Ref -> - Type -> - BattleCharacters.Struct.Glyph.Type - ) -get_glyph gl_id inventory = - case (Dict.get gl_id inventory.glyphs) of - (Just gl) -> gl - Nothing -> BattleCharacters.Struct.Glyph.none - -add_glyph : BattleCharacters.Struct.Glyph.Type -> Type -> Type -add_glyph gl inventory = - {inventory | - glyphs = - (Dict.insert - (BattleCharacters.Struct.Glyph.get_id gl) - gl - inventory.glyphs - ) - } - ---------------------- ----- Glyph Board ---- ---------------------- -get_glyph_board : ( - BattleCharacters.Struct.GlyphBoard.Ref -> - Type -> - BattleCharacters.Struct.GlyphBoard.Type - ) -get_glyph_board gb_id inventory = - case (Dict.get gb_id inventory.glyph_boards) of - (Just gb) -> gb - Nothing -> BattleCharacters.Struct.GlyphBoard.none - -add_glyph_board : BattleCharacters.Struct.GlyphBoard.Type -> Type -> Type -add_glyph_board glb inventory = - {inventory | - glyph_boards = - (Dict.insert - (BattleCharacters.Struct.GlyphBoard.get_id glb) - glb - inventory.glyph_boards - ) - } - ---------------- ----- Skill ---- ---------------- -get_skill : ( - BattleCharacters.Struct.Skill.Ref -> - Type -> - BattleCharacters.Struct.Skill.Type - ) -get_skill sk_id inventory = - case (Dict.get sk_id inventory.skills) of - (Just sk) -> sk - Nothing -> BattleCharacters.Struct.Skill.none - -add_skill : BattleCharacters.Struct.Skill.Type -> Type -> Type -add_skill sk inventory = - {inventory | - skills = - (Dict.insert - (BattleCharacters.Struct.Skill.get_id sk) - sk - inventory.skills - ) - } - -- cgit v1.2.3-70-g09d2