summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/mechanic/action/btl_action_attack.erl | 2 | ||||
-rw-r--r-- | src/shared/struct/shr_omnimods.erl | 29 |
2 files changed, 15 insertions, 16 deletions
diff --git a/src/battle/mechanic/action/btl_action_attack.erl b/src/battle/mechanic/action/btl_action_attack.erl index 62c58f8..ef4d9d3 100644 --- a/src/battle/mechanic/action/btl_action_attack.erl +++ b/src/battle/mechanic/action/btl_action_attack.erl @@ -303,7 +303,7 @@ effect_of_attack ( PrecisionModifier * CriticalModifier - * shr_attributes:get_damage_modifier(AttackerAttributes) + * shr_attributes:get_damage_multiplier(AttackerAttributes) ), shr_character:get_omnimods(AttackerBaseCharacter), shr_character:get_omnimods(DefenderBaseCharacter) diff --git a/src/shared/struct/shr_omnimods.erl b/src/shared/struct/shr_omnimods.erl index f452e34..c31e372 100644 --- a/src/shared/struct/shr_omnimods.erl +++ b/src/shared/struct/shr_omnimods.erl @@ -1,5 +1,7 @@ -module(shr_omnimods). +-include("tacticians/attributes.hrl"). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -268,31 +270,27 @@ apply_to_attributes (Omnimods, Attributes) -> Omnimods#omnimods.attmods ). -% FIXME: 'base' is no longer used. -spec get_attack_damage (float(), type(), type()) -> non_neg_integer(). -get_attack_damage (AttackModifier, AttackerOmnimods, DefenderOmnimods) -> - AttackerOmnimodsAttmods = AttackerOmnimods#omnimods.atkmods, +get_attack_damage (AttackMultiplier, AttackerOmnimods, DefenderOmnimods) -> + AttackerOmnimodsAtkmods = 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]), + ModifiedDmg = (shr_math_util:ceil(NormDmg * AttackMultiplier)), + + io:format + ( + "Actual attack damage from ~p: ~p~n", + [Name, ModifiedDmg] + ), + case dict:find(Name, DefenderOmnimodsDefmods) of {ok, Def} when (Def >= ModifiedDmg) -> io:format @@ -310,6 +308,7 @@ get_attack_damage (AttackModifier, AttackerOmnimods, DefenderOmnimods) -> [Def, Name, DamageTaken] ), (CurrentResult + DamageTaken); + _ -> io:format ( @@ -320,7 +319,7 @@ get_attack_damage (AttackModifier, AttackerOmnimods, DefenderOmnimods) -> end end, 0, - AttackerOmnimodsAttmods + AttackerOmnimodsAtkmods ), io:format("Defender took a total of ~p damage.~n", [Result]), |