summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/mechanic/btl_attack.erl')
-rw-r--r-- | src/battle/mechanic/btl_attack.erl | 109 |
1 files changed, 1 insertions, 108 deletions
diff --git a/src/battle/mechanic/btl_attack.erl b/src/battle/mechanic/btl_attack.erl index cbc1baa..8a10cc6 100644 --- a/src/battle/mechanic/btl_attack.erl +++ b/src/battle/mechanic/btl_attack.erl @@ -16,109 +16,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec roll_precision - ( - shr_statistics:type(), - shr_statistics:type(), - integer() - ) - -> {precision(), integer(), integer()}. -roll_precision -( - AttackerStatistics, - DefenderStatistics, - DefenderLuck -) -> - DefenderDodges = shr_statistics:get_dodges(DefenderStatistics), - AttackerAccuracy = shr_statistics:get_accuracy(AttackerStatistics), - MissChance = max(0, (DefenderDodges - AttackerAccuracy)), - - {Roll, _IsSuccess, PositiveModifier, NegativeModifier} = - shr_roll:percentage_with_luck(MissChance, DefenderLuck), - - { - case Roll of - X when (X =< MissChance) -> misses; - X when (X =< (MissChance * 2)) -> grazes; - _ -> hits - end, - PositiveModifier, - NegativeModifier - }. - --spec roll_critical_hit - ( - shr_statistics:type(), - integer() - ) - -> {boolean(), integer(), integer()}. -roll_critical_hit (AttackerStatistics, AttackerLuck) -> - CriticalHitChance = shr_statistics:get_critical_hits(AttackerStatistics), - {_Roll, IsSuccess, PositiveModifier, NegativeModifier} = - shr_roll:percentage_with_luck(CriticalHitChance, AttackerLuck), - - {IsSuccess, PositiveModifier, NegativeModifier}. - --spec roll_parry - ( - shr_statistics:type(), - integer() - ) - -> {boolean(), integer(), integer()}. -roll_parry (DefenderStatistics, DefenderLuck) -> - DefenderParryChance = shr_statistics:get_parries(DefenderStatistics), - {_Roll, IsSuccess, PositiveModifier, NegativeModifier} = - shr_roll:percentage_with_luck(DefenderParryChance, DefenderLuck), - - {IsSuccess, PositiveModifier, NegativeModifier}. - --spec get_damage - ( - precision(), - boolean(), - float(), - shr_omnimods:type(), - shr_omnimods:type() - ) - -> non_neg_integer(). -get_damage -( - Precision, - IsCritical, - StartingDamageMultiplier, - AttackerOmnimods, - DefenderOmnimods -) -> - ActualDamageMultiplier = - ( - StartingDamageMultiplier - * - ( - case Precision of - misses -> 0; - grazes -> 0.5; - hits -> 1 - end - ) - * - ( - case IsCritical of - true -> 2; - _ -> 1 - end - ) - ), - - ActualDamage = - shr_omnimods:get_attack_damage - ( - ActualDamageMultiplier, - AttackerOmnimods, - DefenderOmnimods - ), - - ActualDamage. - -spec effect_of_attack ( order(), @@ -512,11 +409,7 @@ get_sequence (AttackRange, AttackerWeapon, DefenderWeapon) -> -spec standard ( - non_neg_integer(), - btl_character:type(), - btl_player:type(), - btl_character:type() - btl_player:type() + ) -> { |