summaryrefslogtreecommitdiff
path: root/src
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
parent764a36d571bd071ee754678274be54ff5ab40b36 (diff)
...
Diffstat (limited to 'src')
-rw-r--r--src/battle/src/Struct/ServerReply.elm20
-rw-r--r--src/battle/src/Update/HandleServerReply.elm109
-rw-r--r--src/roster-editor/src/Struct/Inventory.elm7
-rw-r--r--src/roster-editor/src/Struct/Model.elm26
-rw-r--r--src/roster-editor/src/Struct/ServerReply.elm14
-rw-r--r--src/roster-editor/src/Update/HandleServerReply.elm75
-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
-rw-r--r--src/shared/battle-map/BattleMap/Struct/Map.elm1
16 files changed, 196 insertions, 247 deletions
diff --git a/src/battle/src/Struct/ServerReply.elm b/src/battle/src/Struct/ServerReply.elm
index d059c17..9b0bfd3 100644
--- a/src/battle/src/Struct/ServerReply.elm
+++ b/src/battle/src/Struct/ServerReply.elm
@@ -1,16 +1,11 @@
module Struct.ServerReply exposing (Type(..))
-- Battle Characters -----------------------------------------------------------
-import BattleCharacters.Struct.Armor
-import BattleCharacters.Struct.Glyph
-import BattleCharacters.Struct.GlyphBoard
-import BattleCharacters.Struct.Portrait
-import BattleCharacters.Struct.Skill
-import BattleCharacters.Struct.Weapon
+import BattleCharacters.Struct.DataSetItem
-- Battle Map ------------------------------------------------------------------
+import BattleMap.Struct.DataSetItem
import BattleMap.Struct.Map
-import BattleMap.Struct.Tile
-- Local Module ----------------------------------------------------------------
import Struct.Player
@@ -23,19 +18,16 @@ import Struct.TurnResult
type Type =
Okay
| Disconnected
- | AddArmor BattleCharacters.Struct.Armor.Type
- | AddPortrait BattleCharacters.Struct.Portrait.Type
- | AddGlyphBoard BattleCharacters.Struct.GlyphBoard.Type
- | AddGlyph BattleCharacters.Struct.Glyph.Type
- | AddSkill BattleCharacters.Struct.Skill.Type
+
| AddPlayer Struct.Player.Type
- | AddWeapon BattleCharacters.Struct.Weapon.Type
| AddCharacter Struct.Character.Unresolved
- | AddTile BattleMap.Struct.Tile.Type
| SetMap BattleMap.Struct.Map.Type
| TurnResults (List Struct.TurnResult.Type)
| SetTimeline (List Struct.TurnResult.Type)
+ | AddMapDataSetItem BattleMap.Struct.DataSetItem.Type
+ | AddCharactersDataSetItem BattleCharacters.Struct.DataSetItem.Type
+
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
diff --git a/src/battle/src/Update/HandleServerReply.elm b/src/battle/src/Update/HandleServerReply.elm
index 1ab919e..f497fe0 100644
--- a/src/battle/src/Update/HandleServerReply.elm
+++ b/src/battle/src/Update/HandleServerReply.elm
@@ -21,14 +21,7 @@ import Struct.Flags
import Util.Http
-- Battle Characters -----------------------------------------------------------
-import BattleCharacters.Struct.Armor
-import BattleCharacters.Struct.DataSet
-import BattleCharacters.Struct.Equipment
-import BattleCharacters.Struct.Glyph
-import BattleCharacters.Struct.GlyphBoard
-import BattleCharacters.Struct.Portrait
-import BattleCharacters.Struct.Skill
-import BattleCharacters.Struct.Weapon
+import BattleCharacters.Struct.DataSetItem
-- Battle Map ------------------------------------------------------------------
import BattleMap.Struct.DataSet
@@ -81,108 +74,18 @@ disconnected current_state =
]
)
-add_armor : (
- BattleCharacters.Struct.Armor.Type ->
+add_characters_dataset_item : (
+ BattleCharacters.Struct.DataSetItem.Type ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type)))
)
-add_armor ar current_state =
+add_weapon item current_state =
let (model, cmds) = current_state in
(
{model |
characters_dataset =
- (BattleCharacters.Struct.DataSet.add_armor
- ar
- model.characters_dataset
- )
- },
- cmds
- )
-
-add_portrait : (
- BattleCharacters.Struct.Portrait.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_portrait pt current_state =
- let (model, cmds) = current_state in
- (
- {model |
- characters_dataset =
- (BattleCharacters.Struct.DataSet.add_portrait
- pt
- model.characters_dataset
- )
- },
- cmds
- )
-
-add_glyph_board : (
- BattleCharacters.Struct.GlyphBoard.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_glyph_board gb current_state =
- let (model, cmds) = current_state in
- (
- {model |
- characters_dataset =
- (BattleCharacters.Struct.DataSet.add_glyph_board
- gb
- model.characters_dataset
- )
- },
- cmds
- )
-
-add_glyph : (
- BattleCharacters.Struct.Glyph.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_glyph gl current_state =
- let (model, cmds) = current_state in
- (
- {model |
- characters_dataset =
- (BattleCharacters.Struct.DataSet.add_glyph
- gl
- model.characters_dataset
- )
- },
- cmds
- )
-
-add_weapon : (
- BattleCharacters.Struct.Weapon.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_weapon wp current_state =
- let (model, cmds) = current_state in
- (
- {model |
- characters_dataset =
- (BattleCharacters.Struct.DataSet.add_weapon
- wp
- model.characters_dataset
- )
- },
- cmds
- )
-
-add_skill : (
- BattleCharacters.Struct.Skill.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_skill sk current_state =
- let (model, cmds) = current_state in
- (
- {model |
- characters_dataset =
- (BattleCharacters.Struct.DataSet.add_skill
- sk
+ (BattleCharacters.Struct.Weapon.DataSetItem.add_to
+ item
model.characters_dataset
)
},
diff --git a/src/roster-editor/src/Struct/Inventory.elm b/src/roster-editor/src/Struct/Inventory.elm
index 8b31aec..e36d75f 100644
--- a/src/roster-editor/src/Struct/Inventory.elm
+++ b/src/roster-editor/src/Struct/Inventory.elm
@@ -105,7 +105,12 @@ allows equipment inv =
)
&&
(List.all
- (\e -> (has_glyph e inv))
+ (\gl ->
+ (has_glyph
+ (BattleCharacters.Struct.Glyph.get_id gl)
+ inv
+ )
+ )
(Array.toList (BattleCharacters.Struct.Equipment.get_glyphs equipment))
)
&&
diff --git a/src/roster-editor/src/Struct/Model.elm b/src/roster-editor/src/Struct/Model.elm
index d0d70b4..e345aaa 100644
--- a/src/roster-editor/src/Struct/Model.elm
+++ b/src/roster-editor/src/Struct/Model.elm
@@ -25,11 +25,12 @@ import Util.Array
-- Battle Characters -----------------------------------------------------------
import BattleCharacters.Struct.Armor
-import BattleCharacters.Struct.Portrait
-import BattleCharacters.Struct.Weapon
-import BattleCharacters.Struct.Glyph
+import BattleCharacters.Struct.DataSet
import BattleCharacters.Struct.Equipment
+import BattleCharacters.Struct.Glyph
import BattleCharacters.Struct.GlyphBoard
+import BattleCharacters.Struct.Portrait
+import BattleCharacters.Struct.Weapon
-- Local Module ----------------------------------------------------------------
import Struct.Character
@@ -45,7 +46,7 @@ type alias Type =
{
flags : Struct.Flags.Type,
error : (Maybe Struct.Error.Type),
- ui : Struct.UI.Type
+ ui : Struct.UI.Type,
help_request : Struct.HelpRequest.Type,
edited_char : (Maybe Struct.Character.Type),
@@ -56,7 +57,7 @@ type alias Type =
unresolved_characters : (List Struct.Character.Unresolved),
inventory : Struct.Inventory.Type,
- characters_data_set : BattleCharacters.Struct.DataSet.Type,
+ characters_dataset : BattleCharacters.Struct.DataSet.Type
}
--------------------------------------------------------------------------------
@@ -67,7 +68,7 @@ add_character_from_unresolved char_ref model =
let
char =
(Struct.Character.resolve
- (BattleCharacters.Struct.Equipment.resolve model.inventory)
+ (BattleCharacters.Struct.Equipment.resolve model.characters_dataset)
char_ref
)
in
@@ -84,7 +85,7 @@ has_loaded_data : Type -> Bool
has_loaded_data model =
(
((Array.length model.characters) > 0)
- || (BattleCharacters.Struct.DataSet.is_ready model.characters_data_set)
+ || (BattleCharacters.Struct.DataSet.is_ready model.characters_dataset)
)
--------------------------------------------------------------------------------
@@ -97,15 +98,8 @@ new flags =
help_request = Struct.HelpRequest.None,
characters = (Array.empty),
unresolved_characters = [],
- inventory = (BattleCharacters.Struct.Inventory.new),
error = Nothing,
roster_id = "",
- player_id =
- (
- if (flags.user_id == "")
- then "0"
- else flags.user_id
- ),
battle_order =
(Array.repeat
(
@@ -118,10 +112,10 @@ new flags =
)
-1
),
- session_token = flags.token,
edited_char = Nothing,
inventory = (Struct.Inventory.empty),
- ui = (Struct.UI.default)
+ ui = (Struct.UI.default),
+ characters_dataset = (BattleCharacters.Struct.DataSet.new)
}
add_unresolved_character : Struct.Character.Unresolved -> Type -> Type
diff --git a/src/roster-editor/src/Struct/ServerReply.elm b/src/roster-editor/src/Struct/ServerReply.elm
index 8e643bf..d09aa7c 100644
--- a/src/roster-editor/src/Struct/ServerReply.elm
+++ b/src/roster-editor/src/Struct/ServerReply.elm
@@ -1,11 +1,7 @@
module Struct.ServerReply exposing (Type(..))
-- Battle Characters -----------------------------------------------------------
-import BattleCharacters.Struct.Armor
-import BattleCharacters.Struct.Portrait
-import BattleCharacters.Struct.Weapon
-import BattleCharacters.Struct.Glyph
-import BattleCharacters.Struct.GlyphBoard
+import BattleCharacters.Struct.DataSetItem
-- Local Module ----------------------------------------------------------------
import Struct.Character
@@ -19,14 +15,12 @@ type Type =
Okay
| Disconnected
| GoTo String
+
| SetInventory Struct.Inventory.Type
- | AddArmor BattleCharacters.Struct.Armor.Type
- | AddGlyph BattleCharacters.Struct.Glyph.Type
- | AddGlyphBoard BattleCharacters.Struct.GlyphBoard.Type
- | AddPortrait BattleCharacters.Struct.Portrait.Type
- | AddWeapon BattleCharacters.Struct.Weapon.Type
| AddCharacter Struct.Character.Unresolved
+ | AddCharactersDataSetItem BattleCharacters.Struct.DataSetItem.Type
+
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
diff --git a/src/roster-editor/src/Update/HandleServerReply.elm b/src/roster-editor/src/Update/HandleServerReply.elm
index 617b72a..0096753 100644
--- a/src/roster-editor/src/Update/HandleServerReply.elm
+++ b/src/roster-editor/src/Update/HandleServerReply.elm
@@ -15,11 +15,7 @@ import Struct.Flags
import Util.Http
-- Battle Characters -----------------------------------------------------------
-import BattleCharacters.Struct.Armor
-import BattleCharacters.Struct.Portrait
-import BattleCharacters.Struct.Weapon
-import BattleCharacters.Struct.Glyph
-import BattleCharacters.Struct.GlyphBoard
+import BattleCharacters.Struct.DataSetItem
-- Local Module ----------------------------------------------------------------
import Constants.IO
@@ -77,50 +73,23 @@ goto url current_state =
]
)
-add_armor : (
- BattleCharacters.Struct.Armor.Type ->
+add_characters_dataset_item : (
+ BattleCharacters.Struct.DataSetItem.Type ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type)))
)
-add_armor ar current_state =
+add_characters_dataset_item item current_state =
let (model, cmds) = current_state in
- ((Struct.Model.add_armor ar model), cmds)
-
-add_portrait : (
- BattleCharacters.Struct.Portrait.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_portrait pt current_state =
- let (model, cmds) = current_state in
- ((Struct.Model.add_portrait pt model), cmds)
-
-add_glyph : (
- BattleCharacters.Struct.Glyph.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_glyph gl current_state =
- let (model, cmds) = current_state in
- ((Struct.Model.add_glyph gl model), cmds)
-
-add_glyph_board : (
- BattleCharacters.Struct.GlyphBoard.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_glyph_board glb current_state =
- let (model, cmds) = current_state in
- ((Struct.Model.add_glyph_board glb model), cmds)
-
-add_weapon : (
- BattleCharacters.Struct.Weapon.Type ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
- (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
- )
-add_weapon wp current_state =
- let (model, cmds) = current_state in
- ((Struct.Model.add_weapon wp model), cmds)
+ (
+ {model |
+ characters_dataset =
+ (BattleCharacters.Struct.DataSetItem.add_to
+ item
+ model.characters_dataset
+ )
+ },
+ cmds
+ )
set_inventory : (
Struct.Inventory.Type ->
@@ -154,23 +123,11 @@ apply_command command current_state =
(Struct.ServerReply.GoTo url) -> (goto url current_state)
- (Struct.ServerReply.AddWeapon wp) ->
- (add_weapon wp current_state)
-
(Struct.ServerReply.SetInventory inv) ->
(set_inventory inv current_state)
- (Struct.ServerReply.AddArmor ar) ->
- (add_armor ar current_state)
-
- (Struct.ServerReply.AddPortrait pt) ->
- (add_portrait pt current_state)
-
- (Struct.ServerReply.AddGlyph gl) ->
- (add_glyph gl current_state)
-
- (Struct.ServerReply.AddGlyphBoard glb) ->
- (add_glyph_board glb current_state)
+ (Struct.ServerReply.AddCharactersDataSetItem it) ->
+ (add_characters_dataset_item it current_state)
(Struct.ServerReply.AddCharacter char) ->
(add_character char current_state)
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
diff --git a/src/shared/battle-map/BattleMap/Struct/Map.elm b/src/shared/battle-map/BattleMap/Struct/Map.elm
index 73a1cfe..35b8a1f 100644
--- a/src/shared/battle-map/BattleMap/Struct/Map.elm
+++ b/src/shared/battle-map/BattleMap/Struct/Map.elm
@@ -195,6 +195,7 @@ get_omnimods_at loc dataset map =
(BattleMap.Struct.Tile.get_omnimods
(BattleMap.Struct.DataSet.get_tile
(BattleMap.Struct.TileInstance.get_class_id tile_inst)
+ dataset
)
)