| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/shared/battle/Battle')
| -rw-r--r-- | src/shared/battle/Battle/Struct/Attributes.elm.m4 (renamed from src/shared/battle/Battle/Struct/Attributes.elm) | 32 | ||||
| -rw-r--r-- | src/shared/battle/Battle/Struct/Omnimods.elm | 18 | 
2 files changed, 35 insertions, 15 deletions
| diff --git a/src/shared/battle/Battle/Struct/Attributes.elm b/src/shared/battle/Battle/Struct/Attributes.elm.m4 index bb6c06e..d008618 100644 --- a/src/shared/battle/Battle/Struct/Attributes.elm +++ b/src/shared/battle/Battle/Struct/Attributes.elm.m4 @@ -168,29 +168,31 @@ default =        damage_modifier = 0     } +m4_include(__MAKEFILE_DATA_DIR/names.m4.conf) +  decode_category : String -> Category  decode_category str =     case str of -      "mheal" -> MaxHealth -      "mpts" -> MovementPoints -      "dodg" -> Dodges -      "pary" -> Parries -      "accu" -> Accuracy -      "dhit" -> DoubleHits -      "dmgm" -> DamageModifier +      "__SN_MAX_HEALTH" -> MaxHealth +      "__SN_MOVEMENT_POINTS" -> MovementPoints +      "__SN_DODGE" -> Dodges +      "__SN_PARRY" -> Parries +      "__SN_ACCURACY" -> Accuracy +      "__SN_DOUBLE_HITS" -> DoubleHits +      "__SN_DAMAGE_MODIFIER" -> DamageModifier        _  -> 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" -      DamageModifier -> "dmgm" +      MaxHealth -> "__SN_MAX_HEALTH" +      MovementPoints -> "__SN_MOVEMENT_POINTS" +      Dodges -> "__SN_DODGE" +      Parries -> "__SN_PARRY" +      Accuracy -> "__SN_ACCURACY" +      DoubleHits -> "__SN_DOUBLE_HITS" +      CriticalHits -> "__SN_CRITICAL_HIT" +      DamageModifier -> "__SN_DAMAGE_MODIFIER"  is_percent : Category -> Bool  is_percent cat = ((cat /= MaxHealth) && (cat /= MovementPoints)) diff --git a/src/shared/battle/Battle/Struct/Omnimods.elm b/src/shared/battle/Battle/Struct/Omnimods.elm index 7a61153..2b3c011 100644 --- a/src/shared/battle/Battle/Struct/Omnimods.elm +++ b/src/shared/battle/Battle/Struct/Omnimods.elm @@ -8,9 +8,11 @@ module Battle.Struct.Omnimods exposing        get_attack_damage,        get_damage_sum,        get_attribute_mods, +      get_attribute_mod,        get_attack_mods,        get_defense_mods,        get_all_mods, +      apply_damage_modifier,        scale,        decoder     ) @@ -174,6 +176,16 @@ get_attack_damage dmg_modifier atk_omni def_omni =           atk_omni.attack        ) +apply_damage_modifier : Int -> Type -> Type +apply_damage_modifier damage_modifier omnimods = +   {omnimods | +      attack = +         (Dict.map +            (scale_dict_value ((toFloat damage_modifier) / 100.0)) +            omnimods.attack +         ) +   } +  scale : Float -> Type -> Type  scale multiplier omnimods =     {omnimods | @@ -183,6 +195,12 @@ 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 +      (Just e) -> e +      Nothing -> 0 +  get_attribute_mods : Type -> (List (String, Int))  get_attribute_mods omnimods = (Dict.toList omnimods.attributes) | 


