summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-01-30 09:39:47 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-01-30 09:39:47 +0100
commitb1a3afeeea68e72e88f0fd9720035ee7f1541bdb (patch)
tree9145863fa0d270f4f60b36ff21a80910bfedf6e5
parenta78b67db4dfbed793b3b62ce5c47a1afaaa6c6d1 (diff)
Moves Luck decay to the end of the turn.
-rw-r--r--src/battle/mechanic/turn_action/btl_turn_actions_attack.erl25
-rw-r--r--src/shared/shr_roll.erl8
2 files changed, 22 insertions, 11 deletions
diff --git a/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl b/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl
index d4dc818..65a8440 100644
--- a/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl
+++ b/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl
@@ -180,8 +180,25 @@ handle (BattleAction, Update) ->
[]
),
- NextAttackingPlayer = btl_player:set_luck(NewAttackerLuck, AttackingPlayer),
- NextDefendingPlayer = btl_player:set_luck(NewDefenderLuck, DefendingPlayer),
+ S0NewAttackerLuck =
+ case {(NewAttackerLuck =< -2), (NewAttackerLuck >= 2)} of
+ {true, _} -> (NewAttackerLuck + 2);
+ {_, true} -> (NewAttackerLuck - 2);
+ _ -> 0
+ end,
+
+ S0NewDefenderLuck =
+ case {(NewDefenderLuck =< -2), (NewDefenderLuck >= 2)} of
+ {true, _} -> (NewDefenderLuck + 2);
+ {_, true} -> (NewDefenderLuck - 2);
+ _ -> 0
+ end,
+
+ NextAttackingPlayer =
+ btl_player:set_luck(S0NewAttackerLuck, AttackingPlayer),
+
+ NextDefendingPlayer =
+ btl_player:set_luck(S0NewDefenderLuck, DefendingPlayer),
UpdatedCharacter =
btl_character:set_current_health(RemainingAttackerHealth, Character),
@@ -262,7 +279,7 @@ handle (BattleAction, Update) ->
ataxic:update_field
(
btl_player:get_luck_field(),
- ataxic:constant(NewDefenderLuck)
+ ataxic:constant(S0NewDefenderLuck)
)
),
ataxic_sugar:update_orddict_element
@@ -271,7 +288,7 @@ handle (BattleAction, Update) ->
ataxic:update_field
(
btl_player:get_luck_field(),
- ataxic:constant(NewAttackerLuck)
+ ataxic:constant(S0NewAttackerLuck)
)
)
]
diff --git a/src/shared/shr_roll.erl b/src/shared/shr_roll.erl
index b2aca29..eb0f21e 100644
--- a/src/shared/shr_roll.erl
+++ b/src/shared/shr_roll.erl
@@ -61,15 +61,9 @@ percentage_with_luck (Chance, Luck) ->
ModedRoll = max(0, min((Roll - Luck), 100)),
IsSuccess = (Roll =< ModedChance),
- BadLuckBonus =
- case (Luck < 0) of
- true -> 1;
- false -> 0
- end,
-
{
ModedRoll,
IsSuccess,
- (BadLuckBonus + calculate_costs(IsSuccess, Roll, Chance)),
+ calculate_costs(IsSuccess, Roll, Chance),
calculate_costs((not IsSuccess), (100 - Roll), (100 - ModedChance))
}.