summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-09-26 15:41:28 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-09-26 15:41:28 +0200
commitc46bd0d9e712c48a7322164187decb8c44d2ca2c (patch)
tree55c1b17b1184b8a348411796c31b3e396b510622 /src/battle
parent23e461d6a2165167b14f73c6f09bcab6114162dd (diff)
Takes stats based damage modifier into account.
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/struct/btl_attack.erl18
1 files changed, 15 insertions, 3 deletions
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
{