summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-08-30 17:59:48 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-08-30 17:59:48 +0200 |
commit | f2b31148888f8d29e4d9a71cacc19fbb97e52d5c (patch) | |
tree | f6fdb8326ecde6a5c5aac18a2d0f330a88d310e4 /src/shared/struct/shr_omnimods.erl | |
parent | 03cbc5e41dc2a0c88dfe53e7143048eba8f774de (diff) |
Changes the damage multiplier formula.
Diffstat (limited to 'src/shared/struct/shr_omnimods.erl')
-rw-r--r-- | src/shared/struct/shr_omnimods.erl | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/shared/struct/shr_omnimods.erl b/src/shared/struct/shr_omnimods.erl index 7e279e8..bfd9d25 100644 --- a/src/shared/struct/shr_omnimods.erl +++ b/src/shared/struct/shr_omnimods.erl @@ -187,29 +187,57 @@ get_attack_damage (AttackModifier, AttackerOmnimods, DefenderOmnimods) -> AttackerOmnimodsAttmods = AttackerOmnimods#omnimods.atkmods, DefenderOmnimodsDefmods = DefenderOmnimods#omnimods.defmods, + io:format("Attack!~n"), + BaseDefense = case dict:find(base, DefenderOmnimodsDefmods) of {ok, BaseDefValue} -> BaseDefValue; _ -> 0 end, + io:format("Defender base defense: ~p~n", [BaseDefense]), + Result = dict:fold ( fun (Name, BaseDmg, CurrentResult) -> + io:format("Precalc damage from ~p: ~p~n", [Name, BaseDmg]), NormDmg = max(0, BaseDmg), ModifiedDmg = (shr_math_util:ceil(NormDmg * AttackModifier) - BaseDefense), + io:format("Actual attack damage from ~p: ~p~n", [Name, ModifiedDmg]), case dict:find(Name, DefenderOmnimodsDefmods) of - {ok, Def} when (Def >= ModifiedDmg) -> CurrentResult; - {ok, Def} -> (CurrentResult + (ModifiedDmg - Def)); - _ -> (CurrentResult + ModifiedDmg) + {ok, Def} when (Def >= ModifiedDmg) -> + io:format + ( + "Defender had ~p ~p armor, ignoring damage.~n", + [Def, Name] + ), + CurrentResult; + + {ok, Def} -> + DamageTaken = (ModifiedDmg - Def), + io:format + ( + "Defender had ~p ~p armor, taking ~p damage.~n", + [Def, Name, DamageTaken] + ), + (CurrentResult + DamageTaken); + _ -> + io:format + ( + "Defender had no ~p armor, taking full damage.~n", + [Name] + ), + (CurrentResult + ModifiedDmg) end end, 0, AttackerOmnimodsAttmods ), + io:format("Defender took a total of ~p damage.~n", [Result]), + Result. %%% Export |