summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap')
-rw-r--r-- | src/battlemap/game-logic/bm_turn_actions.erl | 27 | ||||
-rw-r--r-- | src/battlemap/struct/bm_attack.erl | 45 |
2 files changed, 46 insertions, 26 deletions
diff --git a/src/battlemap/game-logic/bm_turn_actions.erl b/src/battlemap/game-logic/bm_turn_actions.erl index 7808d1f..87e14aa 100644 --- a/src/battlemap/game-logic/bm_turn_actions.erl +++ b/src/battlemap/game-logic/bm_turn_actions.erl @@ -310,7 +310,7 @@ handle_attack (BattleAction, Update) -> AttackEffects ), - DBQuery = + DBQuery0 = sh_db_query:update_indexed ( bm_battle:get_characters_field(), @@ -324,15 +324,36 @@ handle_attack (BattleAction, Update) -> ] ), + DBQuery1 = + sh_db_query:update_indexed + ( + bm_battle:get_characters_field(), + CharacterIX, + [ + sh_db_query:set_field + ( + bm_character:get_current_health_field(), + RemainingAttackerHealth + ) + ] + ), + S0Update = bm_character_turn_update:add_to_timeline ( TimelineItem, - DBQuery, + DBQuery0, Update ), - bm_character_turn_update:set_data(S1Data, S0Update). + S1Update = + bm_character_turn_update:add_to_db + ( + DBQuery1, + S0Update + ), + + bm_character_turn_update:set_data(S1Data, S1Update). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/battlemap/struct/bm_attack.erl b/src/battlemap/struct/bm_attack.erl index ce3af53..a8f97de 100644 --- a/src/battlemap/struct/bm_attack.erl +++ b/src/battlemap/struct/bm_attack.erl @@ -188,6 +188,18 @@ apply_to_healths {nothing, AttackerHealth, DefenderHealth}; apply_to_healths ( + _Attack, + AttackerHealth, + DefenderHealth +) +when +( + (AttackerHealth =< 0) + or (DefenderHealth =< 0) +) -> + {nothing, AttackerHealth, DefenderHealth}; +apply_to_healths +( Attack, AttackerHealth, DefenderHealth @@ -200,17 +212,11 @@ when ) -> Damage = Attack#attack.damage, - case AttackerHealth of - N when (N =< 0) -> - {nothing, AttackerHealth, DefenderHealth}; - - _ -> - { - Attack, - AttackerHealth, - (DefenderHealth - Damage) - } - end; + { + Attack, + AttackerHealth, + (DefenderHealth - Damage) + }; apply_to_healths ( Attack, @@ -228,18 +234,11 @@ when ) -> Damage = Attack#attack.damage, - %% This actually allows you to parry the counter of a dead character. - case DefenderHealth of - N when (N =< 0) -> - {nothing, AttackerHealth, DefenderHealth}; - - _ -> - { - Attack, - (AttackerHealth - Damage), - DefenderHealth - } - end. + { + Attack, + (AttackerHealth - Damage), + DefenderHealth + }. -spec get_sequence ( |