summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-03 17:13:18 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-03 17:13:18 +0200 |
commit | 2815ff9a8e7e4400cd07a5a33389542535a91def (patch) | |
tree | 398ae5fc6276818bd26df172ce39a275bf42343d /src/battlemap/game-logic/bm_victory.erl | |
parent | d9efd610e9d89e299792f53d46760dfbe0f0cde6 (diff) |
Avoids issues with dirty character turn data.
Diffstat (limited to 'src/battlemap/game-logic/bm_victory.erl')
-rw-r--r-- | src/battlemap/game-logic/bm_victory.erl | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/src/battlemap/game-logic/bm_victory.erl b/src/battlemap/game-logic/bm_victory.erl index 3531739..327920a 100644 --- a/src/battlemap/game-logic/bm_victory.erl +++ b/src/battlemap/game-logic/bm_victory.erl @@ -112,18 +112,13 @@ handle_player_defeat (PlayerIX, Update) -> S3Update. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec handle_character_lost_health +-spec actually_handle_character_lost_health ( non_neg_integer(), - integer(), bm_character_turn_update:type() ) -> bm_character_turn_update:type(). -handle_character_lost_health (_, Health, Update) when (Health > 0) -> Update; -handle_character_lost_health (CharIX, _Health, Update) -> +actually_handle_character_lost_health (CharIX, Update) -> Data = bm_character_turn_update:get_data(Update), Battle = bm_character_turn_data:get_battle(Data), Character = bm_battle:get_character(CharIX, Battle), @@ -143,8 +138,6 @@ handle_character_lost_health (CharIX, _Health, Update) -> and bm_character:get_is_alive(Char) ) end, - %% FIXME: Potential issue if it's the controlled player and Data - %% is dirty. Characters ), @@ -167,8 +160,6 @@ handle_character_lost_health (CharIX, _Health, Update) -> and (bm_character:get_rank(Char) == target) ) end, - %% FIXME: Potential issue if it's the controlled player and Data - %% is dirty. Characters ), @@ -177,3 +168,27 @@ handle_character_lost_health (CharIX, _Health, Update) -> _ -> handle_player_defeat(CharacterPlayerIX, Update) end end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec handle_character_lost_health + ( + non_neg_integer(), + integer(), + bm_character_turn_update:type() + ) + -> bm_character_turn_update:type(). +handle_character_lost_health (_, Health, Update) when (Health > 0) -> Update; +handle_character_lost_health (CharIX, _Health, Update) -> + Data = bm_character_turn_update:get_data(Update), + S1Data = bm_character_turn_data:clean_battle(Data), + S1Update = bm_character_turn_update:set_data(S1Data, Update), + + S2Update = actually_handle_character_lost_health(CharIX, S1Update), + + S2Data = bm_character_turn_update:get_data(S2Update), + S3Data = bm_character_turn_data:refresh_character(S2Data), + S3Update = bm_character_turn_update:set_data(S3Data, S2Update), + + S3Update. |