From c46bd0d9e712c48a7322164187decb8c44d2ca2c Mon Sep 17 00:00:00 2001 From: nsensfel Date: Wed, 26 Sep 2018 15:41:28 +0200 Subject: Takes stats based damage modifier into account. --- src/battle/struct/btl_attack.erl | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/battle/struct/btl_attack.erl') diff --git a/src/battle/struct/btl_attack.erl b/src/battle/struct/btl_attack.erl index 2411529..080dae4 100644 --- a/src/battle/struct/btl_attack.erl +++ b/src/battle/struct/btl_attack.erl @@ -75,11 +75,12 @@ roll_parry (DefenderStatistics) -> ( precision(), boolean(), + float(), shr_omnimods:type(), shr_omnimods:type() ) -> non_neg_integer(). -get_damage (Precision, IsCritical, ActualAtkOmni, ActualDefOmni) -> +get_damage (Precision, IsCritical, AtkModifier, ActualAtkOmni, ActualDefOmni) -> S0DamageMultiplier = case Precision of misses -> 0; @@ -93,10 +94,12 @@ get_damage (Precision, IsCritical, ActualAtkOmni, ActualDefOmni) -> _ -> S0DamageMultiplier end, + S2DamageMultiplier = (S1DamageMultiplier * AtkModifier), + ActualDamage = shr_omnimods:get_attack_damage ( - S1DamageMultiplier, + S2DamageMultiplier, ActualAtkOmni, ActualDefOmni ), @@ -129,7 +132,16 @@ effect_of_attack (Order, AtkCurrData, DefCurrData, CanParry) -> Precision = roll_precision(ActualAtkStats, ActualDefStats), IsCritical = roll_critical_hit(ActualAtkStats), - Damage = get_damage(Precision, IsCritical, ActualAtkOmni, ActualDefOmni), + AtkDamageModifier = shr_statistics:get_damage_modifier(ActualAtkStats), + Damage = + get_damage + ( + Precision, + IsCritical, + AtkDamageModifier, + ActualAtkOmni, + ActualDefOmni + ), #attack { -- cgit v1.2.3-70-g09d2