summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-03-17 00:55:26 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-03-17 00:55:26 +0100
commitb6fa3b730fe0c4249e714545ca88d2729c815a9b (patch)
treeb14c8e4952a22f8d2943283ca9870a05ccf086e0 /src/shared
parenta3c380b2813c9928a2ee600c276295c7803e9e66 (diff)
...
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/battle/Battle/Struct/Attributes.elm11
-rw-r--r--src/shared/battle/Battle/Struct/Statistics.elm12
-rw-r--r--src/shared/battle/Battle/View/Attribute.elm181
-rw-r--r--src/shared/battle/Battle/View/DamageType.elm131
-rw-r--r--src/shared/battle/Battle/View/Gauge.elm75
-rw-r--r--src/shared/battle/Battle/View/Statistic.elm246
6 files changed, 656 insertions, 0 deletions
diff --git a/src/shared/battle/Battle/Struct/Attributes.elm b/src/shared/battle/Battle/Struct/Attributes.elm
index ee12dbd..6f6fe10 100644
--- a/src/shared/battle/Battle/Struct/Attributes.elm
+++ b/src/shared/battle/Battle/Struct/Attributes.elm
@@ -18,6 +18,7 @@ module Battle.Struct.Attributes exposing
get,
new,
decode_category,
+ encode_category,
default
)
@@ -167,3 +168,13 @@ decode_category str =
"min" -> Mind
"spe" -> Speed
_ -> Strength
+
+encode_category : Category -> string
+encode_category cat =
+ case cat of
+ Constitution -> "con"
+ Dexterity -> "dex"
+ Intelligence -> "int"
+ Mind -> "min"
+ Speed -> "spe"
+ Strength -> "str"
diff --git a/src/shared/battle/Battle/Struct/Statistics.elm b/src/shared/battle/Battle/Struct/Statistics.elm
index e21b4f6..43bd27d 100644
--- a/src/shared/battle/Battle/Struct/Statistics.elm
+++ b/src/shared/battle/Battle/Struct/Statistics.elm
@@ -11,6 +11,7 @@ module Battle.Struct.Statistics exposing
get_critical_hits,
get_damage_modifier,
decode_category,
+ encode_category,
mod,
new_raw
)
@@ -208,3 +209,14 @@ decode_category str =
"accu" -> Accuracy
"dhit" -> DoubleHits
_ -> CriticalHits
+
+encode_category : Category -> String
+encode_category cat =
+ case cat of
+ MaxHealth -> "mheal"
+ MovementPoints -> "mpts"
+ Dodges -> "dodg"
+ Parries -> "pary"
+ Accuracy -> "accu"
+ DoubleHits -> "dhit"
+ CriticalHits -> "crit"
diff --git a/src/shared/battle/Battle/View/Attribute.elm b/src/shared/battle/Battle/View/Attribute.elm
new file mode 100644
index 0000000..abf71c3
--- /dev/null
+++ b/src/shared/battle/Battle/View/Attribute.elm
@@ -0,0 +1,181 @@
+module Battle.View.Attribute exposing
+ (
+ get_html,
+ get_all_html,
+ get_signed_html,
+ get_all_signed_html
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Battle ----------------------------------------------------------------------
+import Battle.Struct.Attribute
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Event
+import Struct.HelpRequest
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : (
+ Battle.Struct.Attribute.Category ->
+ Int ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_html attribute value =
+ (Html.div
+ [
+ (Html.Events.onClick
+ (Struct.Event.RequestedHelp
+ (Struct.HelpRequest.Attribute attribute)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.Attributes.class "omnimod-icon"),
+ (Html.Attributes.class
+ (
+ "omnimod-icon-"
+ ++ (Battle.Struct.Attribute.encode_category attribute)
+ )
+ ),
+ ]
+ [
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Attributes.class "omnimod-value")
+ ]
+ [
+ (Html.text (String.FromInt value))
+ ]
+ )
+ ]
+ )
+
+get_signed_html : (
+ Battle.Struct.Attribute.Category ->
+ Int ->
+ (Html.Html Struct.Event.Type)
+ )
+get_signed_html attribute value =
+ (Html.div
+ [
+ (
+ if (value < 0)
+ then (Html.Attributes.class "omnimod-negative")
+ else (Html.Attributes.class "omnimod-positive")
+ ),
+ (Html.Events.onClick
+ (Struct.Event.RequestedHelp
+ (Struct.HelpRequest.Attribute attribute)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.Attributes.class "omnimod-icon"),
+ (Html.Attributes.class
+ (
+ "omnimod-icon-"
+ ++ (Battle.Struct.Attribute.encode_category attribute)
+ )
+ ),
+ ]
+ [
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Attributes.class "omnimod-value")
+ ]
+ [
+ (Html.text
+ (
+ (
+ if (value < 0)
+ then "-"
+ else "+"
+ )
+ ++ (String.FromInt value)
+ )
+ )
+ ]
+ )
+ ]
+ )
+
+get_all_html : (
+ Battle.Struct.Attributes.Type ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_html atts =
+ [
+ (get_html
+ Battle.Struct.Attributes.Constitution
+ (Battle.Struct.Attributes.get_constitution atts)
+ ),
+ (get_html
+ Battle.Struct.Attributes.Strength
+ (Battle.Struct.Attributes.get_strength atts)
+ ),
+ (get_html
+ Battle.Struct.Attributes.Dexterity
+ (Battle.Struct.Attributes.get_dexterity atts)
+ ),
+ (get_html
+ Battle.Struct.Attributes.Speed
+ (Battle.Struct.Attributes.get_speed atts)
+ ),
+ (get_html
+ Battle.Struct.Attributes.Intelligence
+ (Battle.Struct.Attributes.get_intelligence atts)
+ ),
+ (get_html
+ Battle.Struct.Attributes.Mind
+ (Battle.Struct.Attributes.get_mind atts)
+ )
+ ]
+
+get_all_signed_html : (
+ Battle.Struct.Attributes.Type ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_signed_html atts =
+ [
+ (get_signed_html
+ Battle.Struct.Attributes.Constitution
+ (Battle.Struct.Attributes.get_constitution atts)
+ ),
+ (get_signed_html
+ Battle.Struct.Attributes.Strength
+ (Battle.Struct.Attributes.get_strength atts)
+ ),
+ (get_signed_html
+ Battle.Struct.Attributes.Dexterity
+ (Battle.Struct.Attributes.get_dexterity atts)
+ ),
+ (get_signed_html
+ Battle.Struct.Attributes.Speed
+ (Battle.Struct.Attributes.get_speed atts)
+ ),
+ (get_signed_html
+ Battle.Struct.Attributes.Intelligence
+ (Battle.Struct.Attributes.get_intelligence atts)
+ ),
+ (get_signed_html
+ Battle.Struct.Attributes.Mind
+ (Battle.Struct.Attributes.get_mind atts)
+ )
+ ]
diff --git a/src/shared/battle/Battle/View/DamageType.elm b/src/shared/battle/Battle/View/DamageType.elm
new file mode 100644
index 0000000..0a76092
--- /dev/null
+++ b/src/shared/battle/Battle/View/DamageType.elm
@@ -0,0 +1,131 @@
+module Battle.View.DamageType exposing
+ (
+ get_html,
+ get_signed_html
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.DamageTypes
+
+import List
+
+-- Battle ----------------------------------------------------------------------
+import Battle.Struct.DamageType
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Event
+import Struct.HelpRequest
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : (
+ Battle.Struct.DamageType.Type ->
+ Int ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_html damage_type value =
+ (Html.div
+ [
+ (Html.Events.onClick
+ (Struct.Event.RequestedHelp
+ (Struct.HelpRequest.DamageType damage_type)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.DamageTypes.class "omnimod-icon"),
+ (Html.DamageTypes.class
+ (
+ "omnimod-icon-"
+ ++ (Battle.Struct.DamageType.encode damage_type)
+ )
+ ),
+ ]
+ [
+ ]
+ ),
+ (Html.div
+ [
+ (Html.DamageTypes.class "omnimod-value")
+ ]
+ [
+ (Html.text (String.FromInt value))
+ ]
+ )
+ ]
+ )
+
+get_signed_html : (
+ Battle.Struct.DamageType.Type ->
+ Int ->
+ (Html.Html Struct.Event.Type)
+ )
+get_signed_html damage_type value =
+ (Html.div
+ [
+ (
+ if (value < 0)
+ then (Html.DamageTypes.class "omnimod-negative")
+ else (Html.DamageTypes.class "omnimod-positive")
+ ),
+ (Html.Events.onClick
+ (Struct.Event.RequestedHelp
+ (Struct.HelpRequest.DamageType damage_type)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.DamageTypes.class "omnimod-icon"),
+ (Html.DamageTypes.class
+ (
+ "omnimod-icon-"
+ ++ (Battle.Struct.DamageType.encode damage_type)
+ )
+ ),
+ ]
+ [
+ ]
+ ),
+ (Html.div
+ [
+ (Html.DamageTypes.class "omnimod-value")
+ ]
+ [
+ (Html.text
+ (
+ (
+ if (value < 0)
+ then "-"
+ else "+"
+ )
+ ++ (String.FromInt value)
+ )
+ )
+ ]
+ )
+ ]
+ )
+
+get_all_html : (
+ (List Battle.Struct.DamageTypes.Type) ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_html damage_types =
+ (List.map (get_html) damage_types)
+
+get_all_signed_html : (
+ (List Battle.Struct.DamageTypes.Type) ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_signed_html damage_types =
+ (List.map (get_signed_html) damage_types)
diff --git a/src/shared/battle/Battle/View/Gauge.elm b/src/shared/battle/Battle/View/Gauge.elm
new file mode 100644
index 0000000..29a97a0
--- /dev/null
+++ b/src/shared/battle/Battle/View/Gauge.elm
@@ -0,0 +1,75 @@
+module Battle.View.Gauge exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Event
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_text_div : (
+ String ->
+ List (Html.Attribute Struct.Event.Type) ->
+ (Html.Html Struct.Event.Type)
+ )
+get_text_div text extra_txt_attr =
+ (Html.div
+ (
+ [(Html.Attributes.class "gauge-text")]
+ ++ extra_txt_attr
+ )
+ [
+ (Html.text text)
+ ]
+ )
+
+get_bar_div : (
+ Float ->
+ List (Html.Attribute Struct.Event.Type) ->
+ (Html.Html Struct.Event.Type)
+ )
+get_bar_div percent extra_bar_attr =
+ (Html.div
+ (
+ [
+ (Html.Attributes.style
+ "width"
+ ((String.fromFloat percent) ++ "%")
+ ),
+ (Html.Attributes.class
+ "gauge-bar"
+ )
+ ]
+ ++
+ extra_bar_attr
+ )
+ [
+ ]
+ )
+
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : (
+ String ->
+ Float ->
+ List (Html.Attribute Struct.Event.Type) ->
+ List (Html.Attribute Struct.Event.Type) ->
+ List (Html.Attribute Struct.Event.Type) ->
+ (Html.Html Struct.Event.Type)
+ )
+get_html text percent extra_div_attr extra_bar_attr extra_txt_attr =
+ (Html.div
+ (
+ [(Html.Attributes.class "gauge")]
+ ++ extra_div_attr
+ )
+ [
+ (get_text_div text extra_txt_attr),
+ (get_bar_div percent extra_bar_attr)
+ ]
+ )
diff --git a/src/shared/battle/Battle/View/Statistic.elm b/src/shared/battle/Battle/View/Statistic.elm
new file mode 100644
index 0000000..4e2e91a
--- /dev/null
+++ b/src/shared/battle/Battle/View/Statistic.elm
@@ -0,0 +1,246 @@
+module Battle.View.Statistic exposing
+ (
+ get_html,
+ get_all_html,
+ get_signed_html,
+ get_all_signed_html
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Statistics
+
+-- Battle ----------------------------------------------------------------------
+import Battle.Struct.Statistic
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Event
+import Struct.HelpRequest
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : (
+ Battle.Struct.Statistic.Category ->
+ Int ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_html statistic value =
+ (Html.div
+ [
+ (Html.Events.onClick
+ (Struct.Event.RequestedHelp
+ (Struct.HelpRequest.Statistic statistic)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.Statistics.class "omnimod-icon"),
+ (Html.Statistics.class
+ (
+ "omnimod-icon-"
+ ++ (Battle.Struct.Statistic.encode_category statistic)
+ )
+ ),
+ ]
+ [
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Statistics.class "omnimod-value")
+ ]
+ [
+ (Html.text ((String.FromInt value) ++ "%"))
+ ]
+ )
+ ]
+ )
+
+get_signed_html : (
+ Battle.Struct.Statistic.Category ->
+ Int ->
+ (Html.Html Struct.Event.Type)
+ )
+get_signed_html statistic value =
+ (Html.div
+ [
+ (
+ if (value < 0)
+ then (Html.Statistics.class "omnimod-negative")
+ else (Html.Statistics.class "omnimod-positive")
+ ),
+ (Html.Events.onClick
+ (Struct.Event.RequestedHelp
+ (Struct.HelpRequest.Statistic statistic)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.Statistics.class "omnimod-icon"),
+ (Html.Statistics.class
+ (
+ "omnimod-icon-"
+ ++ (Battle.Struct.Statistic.encode_category statistic)
+ )
+ ),
+ ]
+ [
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Statistics.class "omnimod-value")
+ ]
+ [
+ (Html.text
+ (
+ (
+ if (value < 0)
+ then "-"
+ else "+"
+ )
+ ++ (String.FromInt value)
+ ++ "%"
+ )
+ )
+ ]
+ )
+ ]
+ )
+
+get_all_html : (
+ Battle.Struct.Statistics.Type ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_html stats =
+ [
+ (get_html
+ Battle.Struct.Statistics.Dodges
+ (Battle.Struct.Statistics.get_dodges stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.Parries
+ (Battle.Struct.Statistics.get_parries stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.Accuracy
+ (Battle.Struct.Statistics.get_accuracy stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.DoubleHits
+ (Battle.Struct.Statistics.get_double_hits stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.CriticalHits
+ (Battle.Struct.Statistics.get_critical_hits stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.MaxHealth
+ (Battle.Struct.Statistics.get_max_health stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.MovementPoints
+ (Battle.Struct.Statistics.get_movement_points stats)
+ )
+ ]
+
+get_all_signed_html : (
+ Battle.Struct.Statistics.Type ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_signed_html stats =
+ [
+ (get_signed_html
+ Battle.Struct.Statistics.Dodges
+ (Battle.Struct.Statistics.get_dodges stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.Parries
+ (Battle.Struct.Statistics.get_parries stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.Accuracy
+ (Battle.Struct.Statistics.get_accuracy stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.DoubleHits
+ (Battle.Struct.Statistics.get_double_hits stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.CriticalHits
+ (Battle.Struct.Statistics.get_critical_hits stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.MaxHealth
+ (Battle.Struct.Statistics.get_max_health stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.MovementPoints
+ (Battle.Struct.Statistics.get_movement_points stats)
+ )
+ ]
+
+get_all_but_gauges_html : (
+ Battle.Struct.Statistics.Type ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_but_gauges_html stats =
+ [
+ (get_html
+ Battle.Struct.Statistics.Dodges
+ (Battle.Struct.Statistics.get_dodges stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.Parries
+ (Battle.Struct.Statistics.get_parries stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.Accuracy
+ (Battle.Struct.Statistics.get_accuracy stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.DoubleHits
+ (Battle.Struct.Statistics.get_double_hits stats)
+ ),
+ (get_html
+ Battle.Struct.Statistics.CriticalHits
+ (Battle.Struct.Statistics.get_critical_hits stats)
+ )
+ ]
+
+get_all_but_gauges_signed_html : (
+ Battle.Struct.Statistics.Type ->
+ (List (Html.Html Struct.Event.Type))
+ )
+get_all_but_gauges_signed_html stats =
+ [
+ (get_signed_html
+ Battle.Struct.Statistics.Dodges
+ (Battle.Struct.Statistics.get_dodges stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.Parries
+ (Battle.Struct.Statistics.get_parries stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.Accuracy
+ (Battle.Struct.Statistics.get_accuracy stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.DoubleHits
+ (Battle.Struct.Statistics.get_double_hits stats)
+ ),
+ (get_signed_html
+ Battle.Struct.Statistics.CriticalHits
+ (Battle.Struct.Statistics.get_critical_hits stats)
+ )
+ ]