| summaryrefslogtreecommitdiff | 
diff options
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 | 


