summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/battle/src/Comm/AddPortrait.elm24
-rw-r--r--src/battle/src/Struct/Portrait.elm68
2 files changed, 92 insertions, 0 deletions
diff --git a/src/battle/src/Comm/AddPortrait.elm b/src/battle/src/Comm/AddPortrait.elm
new file mode 100644
index 0000000..1cceb5f
--- /dev/null
+++ b/src/battle/src/Comm/AddPortrait.elm
@@ -0,0 +1,24 @@
+module Comm.AddPortrait exposing (decode)
+
+-- Elm -------------------------------------------------------------------------
+import Json.Decode
+
+-- Battle ----------------------------------------------------------------------
+import Struct.Portrait
+import Struct.ServerReply
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+internal_decoder : Struct.Portrait.Type -> Struct.ServerReply.Type
+internal_decoder pt = (Struct.ServerReply.AddPortrait pt)
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+decode : (Json.Decode.Decoder Struct.ServerReply.Type)
+decode = (Json.Decode.map (internal_decoder) (Struct.Portrait.decoder))
diff --git a/src/battle/src/Struct/Portrait.elm b/src/battle/src/Struct/Portrait.elm
new file mode 100644
index 0000000..9d62d02
--- /dev/null
+++ b/src/battle/src/Struct/Portrait.elm
@@ -0,0 +1,68 @@
+module Struct.Portrait exposing
+ (
+ Type,
+ Ref,
+ none,
+ get_id,
+ get_name,
+ get_body_id,
+ get_icon_id,
+ decoder
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Json.Decode
+import Json.Decode.Pipeline
+
+-- Battle ----------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+type alias Type =
+ {
+ id : String,
+ name : String,
+ body_id : String,
+ icon_id : String
+ }
+
+type alias Ref = String
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+none : Type
+none =
+ {
+ id = "cat",
+ name = "Black Cat",
+ body_id = "mammal",
+ icon_id = "cat"
+ }
+
+get_id : Type -> String
+get_id p = p.id
+
+get_name : Type -> String
+get_name p = p.name
+
+get_body_id : Type -> String
+get_body_id p = p.body_id
+
+get_icon_id : Type -> String
+get_icon_id p = p.icon_id
+
+decoder : (Json.Decode.Decoder Type)
+decoder =
+ (Json.Decode.succeed
+ Type
+ |> (Json.Decode.Pipeline.required "id" Json.Decode.string)
+ |> (Json.Decode.Pipeline.required "nam" Json.Decode.string)
+ |> (Json.Decode.Pipeline.required "bid" Json.Decode.string)
+ |> (Json.Decode.Pipeline.required "iid" Json.Decode.string)
+ )