summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/roster-editor')
-rw-r--r--src/roster-editor/src/Struct/Inventory.elm54
-rw-r--r--src/roster-editor/src/Struct/Model.elm19
2 files changed, 44 insertions, 29 deletions
diff --git a/src/roster-editor/src/Struct/Inventory.elm b/src/roster-editor/src/Struct/Inventory.elm
index e04e828..85ae5b5 100644
--- a/src/roster-editor/src/Struct/Inventory.elm
+++ b/src/roster-editor/src/Struct/Inventory.elm
@@ -25,6 +25,7 @@ import BattleCharacters.Struct.Equipment
import BattleCharacters.Struct.Glyph
import BattleCharacters.Struct.GlyphBoard
import BattleCharacters.Struct.Portrait
+import BattleCharacters.Struct.Skill
import BattleCharacters.Struct.Weapon
--------------------------------------------------------------------------------
@@ -36,7 +37,8 @@ type alias Type =
glyphs : (Set.Set BattleCharacters.Struct.Glyph.Ref),
glyph_boards : (Set.Set BattleCharacters.Struct.GlyphBoard.Ref),
weapons : (Set.Set BattleCharacters.Struct.Weapon.Ref),
- armors : (Set.Set BattleCharacters.Struct.Armor.Ref)
+ armors : (Set.Set BattleCharacters.Struct.Armor.Ref),
+ skills : (Set.Set BattleCharacters.Struct.Skill.Ref)
}
--------------------------------------------------------------------------------
@@ -46,63 +48,73 @@ type alias Type =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-has_portrait : Type -> BattleCharacters.Struct.Portrait.Ref -> Bool
-has_portrait inv id = (Set.member id inv.portraits)
+has_portrait : BattleCharacters.Struct.Portrait.Ref -> Type -> Bool
+has_portrait id inv = (Set.member id inv.portraits)
-has_glyph : Type -> BattleCharacters.Struct.Glyph.Ref -> Bool
-has_glyph inv id = (Set.member id inv.glyphs)
+has_glyph : BattleCharacters.Struct.Glyph.Ref -> Type -> Bool
+has_glyph id inv = (Set.member id inv.glyphs)
-has_glyph_board : Type -> BattleCharacters.Struct.GlyphBoard.Ref -> Bool
-has_glyph_board inv id = (Set.member id inv.glyph_boards)
+has_glyph_board : BattleCharacters.Struct.GlyphBoard.Ref -> Type -> Bool
+has_glyph_board id inv = (Set.member id inv.glyph_boards)
-has_weapon : Type -> BattleCharacters.Struct.Weapon.Ref -> Bool
-has_weapon inv id = (Set.member id inv.weapons)
+has_weapon : BattleCharacters.Struct.Weapon.Ref -> Type -> Bool
+has_weapon id inv = (Set.member id inv.weapons)
-has_armor : Type -> BattleCharacters.Struct.Armor.Ref -> Bool
-has_armor inv id = (Set.member id inv.armors)
+has_armor : BattleCharacters.Struct.Armor.Ref -> Type -> Bool
+has_armor id inv = (Set.member id inv.armors)
-allows : Type -> BattleCharacters.Struct.Equipment.Type -> Bool
-allows inv equipment =
+has_skill : BattleCharacters.Struct.Skill.Ref -> Type -> Bool
+has_skill id inv = (Set.member id inv.skills)
+
+allows : BattleCharacters.Struct.Equipment.Type -> Type -> Bool
+allows equipment inv =
(
(has_weapon
- inv
(BattleCharacters.Struct.Weapon.get_id
(BattleCharacters.Struct.Equipment.get_primary_weapon equipment)
)
+ inv
)
&&
(has_weapon
- inv
(BattleCharacters.Struct.Weapon.get_id
(BattleCharacters.Struct.Equipment.get_secondary_weapon equipment)
)
+ inv
)
&&
(has_armor
- inv
(BattleCharacters.Struct.Armor.get_id
(BattleCharacters.Struct.Equipment.get_armor equipment)
)
+ inv
)
&&
(has_portrait
- inv
(BattleCharacters.Struct.Portrait.get_id
(BattleCharacters.Struct.Equipment.get_portrait equipment)
)
+ inv
)
&&
(has_glyph_board
- inv
(BattleCharacters.Struct.GlyphBoard.get_id
(BattleCharacters.Struct.Equipment.get_glyph_board equipment)
)
+ inv
)
&&
(List.all
- ((BattleCharacters.Struct.Glyph.get_id) >> (has_glyph inv))
+ (e -> (has_glyph e inv))
(Array.toList (BattleCharacters.Struct.Equipment.get_glyphs equipment))
)
+ &&
+ (has_skill
+ (BattleCharacters.Struct.Skill.get_id
+ (BattleCharacters.Struct.Equipment.get_skill equipment)
+ )
+ inv
+ )
)
empty : Type
@@ -112,7 +124,8 @@ empty =
glyphs = (Set.empty),
glyph_boards = (Set.empty),
weapons = (Set.empty),
- armors = (Set.empty)
+ armors = (Set.empty),
+ skills = (Set.empty)
}
decoder : (Json.Decode.Decoder Type)
@@ -125,4 +138,5 @@ decoder =
|> (Json.Decode.Pipeline.hardcoded (Set.empty))
|> (Json.Decode.Pipeline.hardcoded (Set.empty))
|> (Json.Decode.Pipeline.hardcoded (Set.empty))
+ |> (Json.Decode.Pipeline.hardcoded (Set.empty))
)
diff --git a/src/roster-editor/src/Struct/Model.elm b/src/roster-editor/src/Struct/Model.elm
index 3e573f9..d0d70b4 100644
--- a/src/roster-editor/src/Struct/Model.elm
+++ b/src/roster-editor/src/Struct/Model.elm
@@ -44,18 +44,19 @@ import Struct.UI
type alias Type =
{
flags : Struct.Flags.Type,
+ error : (Maybe Struct.Error.Type),
+ ui : Struct.UI.Type
help_request : Struct.HelpRequest.Type,
+ edited_char : (Maybe Struct.Character.Type),
+
+ roster_id : String,
+ battle_order : (Array.Array Int),
+
characters : (Array.Array Struct.Character.Type),
unresolved_characters : (List Struct.Character.Unresolved),
- inventory : BattleCharacters.Struct.Inventory.Type,
- error : (Maybe Struct.Error.Type),
- battle_order : (Array.Array Int),
- player_id : String,
- roster_id : String,
- edited_char : (Maybe Struct.Character.Type),
inventory : Struct.Inventory.Type,
- session_token : String,
- ui : Struct.UI.Type
+
+ characters_data_set : BattleCharacters.Struct.DataSet.Type,
}
--------------------------------------------------------------------------------
@@ -83,7 +84,7 @@ has_loaded_data : Type -> Bool
has_loaded_data model =
(
((Array.length model.characters) > 0)
- || (BattleCharacters.Struct.Inventory.is_ready model.inventory)
+ || (BattleCharacters.Struct.DataSet.is_ready model.characters_data_set)
)
--------------------------------------------------------------------------------