summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap/game-logic/bm_turn_actions.erl')
-rw-r--r-- | src/battlemap/game-logic/bm_turn_actions.erl | 96 |
1 files changed, 40 insertions, 56 deletions
diff --git a/src/battlemap/game-logic/bm_turn_actions.erl b/src/battlemap/game-logic/bm_turn_actions.erl index bf4075f..e94d36a 100644 --- a/src/battlemap/game-logic/bm_turn_actions.erl +++ b/src/battlemap/game-logic/bm_turn_actions.erl @@ -40,6 +40,8 @@ handle_switch_weapon (Update) -> bm_character:set_weapon_ids(UpdatedWeaponIDs, Character) ), + TimelineItem = bm_turn_result:new_character_switched_weapons(CharacterIX), + DBQuery = sh_db_query:update_indexed ( @@ -57,14 +59,8 @@ handle_switch_weapon (Update) -> UpdatedData = bm_character_turn_data:set_character(UpdatedCharacter, Data), S0Update = bm_character_turn_update:set_data(UpdatedData, Update), - S1Update = - bm_character_turn_update:add_to_timeline - ( - bm_turn_result:new_character_switched_weapons(CharacterIX), - S0Update - ), - bm_character_turn_update:add_to_db(DBQuery, S1Update). + bm_character_turn_update:add_to_timeline(TimelineItem, DBQuery, S0Update). %%%% MOVING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -spec get_path_cost_and_destination @@ -137,32 +133,32 @@ commit_move (Update, Path, NewLocation) -> UpdatedData = bm_character_turn_data:set_character(UpdatedCharacter, Data), - S0Update = - bm_character_turn_update:add_to_timeline + TimelineItem = + bm_turn_result:new_character_moved(CharacterIX, Path, NewLocation), + + DBQuery = + sh_db_query:update_indexed ( - bm_turn_result:new_character_moved(CharacterIX, Path, NewLocation), - Update + bm_battle:get_characters_field(), + CharacterIX, + [ + sh_db_query:set_field + ( + bm_character:get_location_field(), + NewLocation + ) + ] ), - S1Update = - bm_character_turn_update:add_to_db + S0Update = + bm_character_turn_update:add_to_timeline ( - sh_db_query:update_indexed - ( - bm_battle:get_characters_field(), - CharacterIX, - [ - sh_db_query:set_field - ( - bm_character:get_location_field(), - NewLocation - ) - ] - ), - S0Update + TimelineItem, + DBQuery, + Update ), - bm_character_turn_update:set_data(UpdatedData, S1Update). + bm_character_turn_update:set_data(UpdatedData, S0Update). -spec handle_move ( @@ -282,19 +278,10 @@ handle_attack (BattleAction, Update) -> AttackSequence = get_attack_sequence(Character, TargetCharacter), {AttackEffects, RemainingAttackerHealth, RemainingDefenderHealth} = - handle_attack_sequence - ( - Character, - TargetCharacter, - AttackSequence - ), + handle_attack_sequence(Character, TargetCharacter, AttackSequence), UpdatedCharacter = - bm_character:set_current_health - ( - RemainingAttackerHealth, - Character - ), + bm_character:set_current_health(RemainingAttackerHealth, Character), UpdatedBattle = bm_battle:set_character @@ -310,26 +297,15 @@ handle_attack (BattleAction, Update) -> S0Data = bm_character_turn_data:set_battle(UpdatedBattle, Data), - S1Data = - bm_character_turn_data:set_character - ( - UpdatedCharacter, - S0Data - ), - + S1Data = bm_character_turn_data:set_character(UpdatedCharacter, S0Data), - S0Update = - bm_character_turn_update:add_to_timeline + TimelineItem = + bm_turn_result:new_character_attacked ( - bm_turn_result:new_character_attacked - ( - CharacterIX, - TargetIX, - AttackEffects - ), - Update + CharacterIX, + TargetIX, + AttackEffects ), - S1Update = bm_character_turn_update:set_data(S1Data, S0Update), DBQuery = sh_db_query:update_indexed @@ -345,7 +321,15 @@ handle_attack (BattleAction, Update) -> ] ), - bm_character_turn_update:add_to_db(DBQuery, S1Update). + S0Update = + bm_character_turn_update:add_to_timeline + ( + TimelineItem, + DBQuery, + Update + ), + + bm_character_turn_update:set_data(S1Data, S0Update). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |