summaryrefslogtreecommitdiff
blob: 8d8c4ceab52d62efe89c1802e850e333affd8c1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
module Battle.View.Omnimods exposing
   (
      get_html_with_modifier,
      get_html
   )

-- Elm -------------------------------------------------------------------------
import List

import Html
import Html.Attributes
import Html.Events

-- Battle ----------------------------------------------------------------------
import Battle.Struct.DamageType
import Battle.Struct.Omnimods
import Battle.Struct.Attributes

import Battle.View.DamageType
import Battle.View.Attribute

-- Local Module ----------------------------------------------------------------
import Struct.Event

--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
get_html_with_modifier : (
      Float ->
      Battle.Struct.Omnimods.Type ->
      (Html.Html Struct.Event.Type)
   )
get_html_with_modifier attack_multiplier omnimods =
   (Html.div
      [
         (Html.Attributes.class "omnimod-listing")
      ]
      [
         (Html.div
            [
               (Html.Attributes.class "omnimod-attack-mods")
            ]
            (List.map
               (\(k, v) ->
                  (Battle.View.DamageType.get_signed_html
                     (Battle.Struct.DamageType.decode k)
                     (ceiling ((toFloat v) * attack_multiplier))
                  )
               )
               (Battle.Struct.Omnimods.get_attack_mods omnimods)
            )
         ),
         (Html.div
            [
               (Html.Attributes.class "omnimod-defense-mods")
            ]
            (List.map
               (\(k, v) ->
                  (Battle.View.DamageType.get_signed_html
                     (Battle.Struct.DamageType.decode k)
                     v
                  )
               )
               (Battle.Struct.Omnimods.get_defense_mods omnimods)
            )
         ),
         (Html.div
            [
               (Html.Attributes.class "omnimod-attribute-mods")
            ]
            (List.map
               (\(k, v) ->
                  (Battle.View.Attribute.get_signed_html
                     (Battle.Struct.Attributes.decode_category k)
                     v
                  )
               )
               (Battle.Struct.Omnimods.get_attribute_mods omnimods)
            )
         )
      ]
   )

get_html : Battle.Struct.Omnimods.Type -> (Html.Html Struct.Event.Type)
get_html omnimods =
   (Html.div
      [
         (Html.Attributes.class "omnimod-listing")
      ]
      [
         (Html.div
            [
               (Html.Attributes.class "omnimod-attack-mods")
            ]
            (List.map
               (\(k, v) ->
                  (Battle.View.DamageType.get_signed_html
                     (Battle.Struct.DamageType.decode k)
                     v
                  )
               )
               (Battle.Struct.Omnimods.get_attack_mods omnimods)
            )
         ),
         (Html.div
            [
               (Html.Attributes.class "omnimod-defense-mods")
            ]
            (List.map
               (\(k, v) ->
                  (Battle.View.DamageType.get_signed_html
                     (Battle.Struct.DamageType.decode k)
                     v
                  )
               )
               (Battle.Struct.Omnimods.get_defense_mods omnimods)
            )
         ),
         (Html.div
            [
               (Html.Attributes.class "omnimod-attributes-mods")
            ]
            (List.map
               (\(k, v) ->
                  (Battle.View.Attribute.get_signed_html
                     (Battle.Struct.Attributes.decode_category k)
                     v
                  )
               )
               (Battle.Struct.Omnimods.get_attribute_mods omnimods)
            )
         )
      ]
   )