| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/battle/src/View/Controlled/CharacterCard.elm | 103 | ||||
| -rw-r--r-- | src/shared/battle/Battle/Struct/Omnimods.elm | 11 | ||||
| -rw-r--r-- | src/shared/battle/Battle/View/Omnimods.elm | 69 | 
3 files changed, 100 insertions, 83 deletions
| diff --git a/src/battle/src/View/Controlled/CharacterCard.elm b/src/battle/src/View/Controlled/CharacterCard.elm index 6024438..291263c 100644 --- a/src/battle/src/View/Controlled/CharacterCard.elm +++ b/src/battle/src/View/Controlled/CharacterCard.elm @@ -281,73 +281,44 @@ get_weapon_field_header is_active weapon =        ]     ) -get_weapon_details : ( +get_inactive_weapon_details : (        Battle.Struct.Omnimods.Type ->        Battle.Struct.Omnimods.Type ->        BattleCharacters.Struct.Weapon.Type ->        (Html.Html Struct.Event.Type)     ) -get_weapon_details omnimods other_wp_omnimods weapon = -   let -      other_wp_omnimods_scaled = -         (Battle.Struct.Omnimods.scale -            -1 -            (Battle.Struct.Omnimods.apply_damage_modifier -               (Battle.Struct.Omnimods.get_attribute_mod -                  (Battle.Struct.Attributes.encode_category -                     Battle.Struct.Attributes.DamageModifier -                  ) +get_inactive_weapon_details omnimods other_wp_omnimods weapon = +   (Html.div +      [ +         (Html.Attributes.class "character-card-weapon") +      ] +      [ +         (get_weapon_field_header False weapon), +         (Battle.View.Omnimods.get_user_friendly_html +            (Battle.Struct.Omnimods.merge +               (Battle.Struct.Omnimods.merge +                  (Battle.Struct.Omnimods.scale -1 other_wp_omnimods)                    omnimods                 ) -               other_wp_omnimods +               (BattleCharacters.Struct.Weapon.get_omnimods weapon)              )           ) -      omnimods_without_other_wp = -         (Battle.Struct.Omnimods.merge -            (Battle.Struct.Omnimods.scale -1 other_wp_omnimods) -            omnimods -         ) -      this_wp_omnimods = (BattleCharacters.Struct.Weapon.get_omnimods weapon) -      omnimods_with_this_wp = -         (Battle.Struct.Omnimods.merge -            omnimods_without_other_wp -            this_wp_omnimods -         ) -   in -      (Html.div -         [ -            (Html.Attributes.class "character-card-weapon") -         ] -         [ -            (get_weapon_field_header False weapon), -            (Battle.View.Omnimods.get_html -               (Battle.Struct.Omnimods.merge -                  other_wp_omnimods_scaled -                  (Battle.Struct.Omnimods.apply_damage_modifier -                     (Battle.Struct.Omnimods.get_attribute_mod -                        (Battle.Struct.Attributes.encode_category -                           Battle.Struct.Attributes.DamageModifier -                        ) -                        omnimods_with_this_wp -                     ) -                     this_wp_omnimods -                  ) -               ) -            ) -         ] -      ) +      ] +   ) -get_weapon_summary : ( +get_active_weapon_details : ( +      Battle.Struct.Omnimods.Type ->        BattleCharacters.Struct.Weapon.Type ->        (Html.Html Struct.Event.Type)     ) -get_weapon_summary weapon = +get_active_weapon_details omnimods weapon =     (Html.div        [           (Html.Attributes.class "character-card-weapon-summary")        ]        [ -         (get_weapon_field_header True weapon) +         (get_weapon_field_header True weapon), +         (Battle.View.Omnimods.get_user_friendly_html omnimods)        ]     ) @@ -437,19 +408,8 @@ get_summary_html char_turn player_ix char =                    (get_statuses char)                 ]              ), -            (Battle.View.Omnimods.get_html -               (Battle.Struct.Omnimods.apply_damage_modifier -                  (Battle.Struct.Omnimods.get_attribute_mod -                     (Battle.Struct.Attributes.encode_category -                        Battle.Struct.Attributes.DamageModifier -                     ) -                     omnimods -                  ) -                  omnimods -               ) -            ), -            (get_weapon_summary active_weapon), -            (get_weapon_details +            (get_active_weapon_details omnimods active_weapon), +            (get_inactive_weapon_details                 omnimods                 (BattleCharacters.Struct.Weapon.get_omnimods active_weapon)                 (BattleCharacters.Struct.Character.get_inactive_weapon @@ -504,23 +464,8 @@ get_full_html player_ix char =                    (get_statuses char)                 ]              ), -            (Battle.View.Omnimods.get_html -               (Battle.Struct.Omnimods.apply_damage_modifier -                  (Battle.Struct.Omnimods.get_attribute_mod -                     (Battle.Struct.Attributes.encode_category -                        Battle.Struct.Attributes.DamageModifier -                     ) -                     omnimods -                  ) -                  omnimods -               ) -            ), -            (get_weapon_summary -               (BattleCharacters.Struct.Character.get_active_weapon -                  base_char -               ) -            ), -            (get_weapon_details +            (get_active_weapon_details omnimods active_weapon), +            (get_inactive_weapon_details                 omnimods                 (BattleCharacters.Struct.Weapon.get_omnimods active_weapon)                 (BattleCharacters.Struct.Character.get_inactive_weapon diff --git a/src/shared/battle/Battle/Struct/Omnimods.elm b/src/shared/battle/Battle/Struct/Omnimods.elm index 2b3c011..e9c3089 100644 --- a/src/shared/battle/Battle/Struct/Omnimods.elm +++ b/src/shared/battle/Battle/Struct/Omnimods.elm @@ -195,9 +195,14 @@ scale multiplier omnimods =           (Dict.map (scale_dict_value multiplier) omnimods.defense)     } -get_attribute_mod : String -> Type -> Int -get_attribute_mod att_name omnimods = -   case (Dict.get att_name omnimods.attributes) of +get_attribute_mod : Battle.Struct.Attributes.Category -> Type -> Int +get_attribute_mod att omnimods = +   case +      (Dict.get +         (Battle.Struct.Attributes.encode_category att) +         omnimods.attributes +      ) +   of        (Just e) -> e        Nothing -> 0 diff --git a/src/shared/battle/Battle/View/Omnimods.elm b/src/shared/battle/Battle/View/Omnimods.elm index 8d8c4ce..7af5709 100644 --- a/src/shared/battle/Battle/View/Omnimods.elm +++ b/src/shared/battle/Battle/View/Omnimods.elm @@ -1,7 +1,8 @@  module Battle.View.Omnimods exposing     (        get_html_with_modifier, -      get_html +      get_html, +      get_user_friendly_html     )  -- Elm ------------------------------------------------------------------------- @@ -136,3 +137,69 @@ get_html omnimods =           )        ]     ) + +get_user_friendly_html : ( +      Battle.Struct.Omnimods.Type -> +      (Html.Html Struct.Event.Type) +   ) +get_user_friendly_html omnimods = +   let +      -- TODO: Add minimal values to omnimods (e.g. +1 to health). +      scaled_omnimods = +         (Battle.Struct.Omnimods.apply_damage_modifier +            (Battle.Struct.Omnimods.get_attribute_mod +               Battle.Struct.Attributes.DamageModifier +               omnimods +            ) +            omnimods +         ) +   in +      (Html.div +         [ +            (Html.Attributes.class "omnimod-listing") +         ] +         [ +            (Html.div +               [ +                  (Html.Attributes.class "omnimod-attack-mods") +               ] +               (List.map +                  (\(k, v) -> +                     (Battle.View.DamageType.get_html +                        (Battle.Struct.DamageType.decode k) +                        v +                     ) +                  ) +                  (Battle.Struct.Omnimods.get_attack_mods scaled_omnimods) +               ) +            ), +            (Html.div +               [ +                  (Html.Attributes.class "omnimod-defense-mods") +               ] +               (List.map +                  (\(k, v) -> +                     (Battle.View.DamageType.get_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_html +                        (Battle.Struct.Attributes.decode_category k) +                        v +                     ) +                  ) +                  (Battle.Struct.Omnimods.get_attribute_mods omnimods) +               ) +            ) +         ] +      ) | 


