summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/mechanic/btl_attack.erl')
-rw-r--r--src/battle/mechanic/btl_attack.erl109
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()
+
)
->
{