summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-08-29 16:24:10 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-08-29 16:24:10 +0200 |
commit | 9ffa08c3aad8e4f40b7f7d1e7845e5153f9c34ab (patch) | |
tree | 363619618b680e59ab76efa8e7db92bc57ca784a /src/battle/game-logic/btl_turn_actions_switch_weapon.erl | |
parent | 79b2d1dd4f114bc31105df0e554f9c1f18c87e5d (diff) |
Still working on it...
Diffstat (limited to 'src/battle/game-logic/btl_turn_actions_switch_weapon.erl')
-rw-r--r-- | src/battle/game-logic/btl_turn_actions_switch_weapon.erl | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/battle/game-logic/btl_turn_actions_switch_weapon.erl b/src/battle/game-logic/btl_turn_actions_switch_weapon.erl new file mode 100644 index 0000000..6872ff4 --- /dev/null +++ b/src/battle/game-logic/btl_turn_actions_switch_weapon.erl @@ -0,0 +1,67 @@ +-module(btl_turn_actions_switch_weapon). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export +( + [ + handle/1 + ] +). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec handle + ( + btl_character_turn_update:type() + ) + -> btl_character_turn_update:type(). +handle (Update) -> + Data = btl_character_turn_update:get_data(Update), + Character = btl_character_turn_data:get_character(Data), + CharacterCurrentData = + btl_character_turn_data:get_character_current_data(Data), + CharacterIX = btl_character_turn_data:get_character_ix(Data), + + {PrimaryWeaponID, SecondaryWeaponID} = btl_character:get_weapon_ids(Character), + + UpdatedWeaponIDs = {SecondaryWeaponID, PrimaryWeaponID}, + UpdatedCharacter = btl_character:set_weapon_ids(UpdatedWeaponIDs, Character), + + S0Data = btl_character_turn_data:set_character(UpdatedCharacter, Data), + S1Data = btl_character_turn_data:refresh_character_current_data(S0Data), + + S0Update = btl_character_turn_update:set_data(S1Data, Update), + S1Update = + btl_turn_actions:handle_max_health_changes + ( + CharacterCurrentData, + S0Update + ), + + TimelineItem = btl_turn_result:new_character_switched_weapons(CharacterIX), + + DBQuery = + shr_db_query:update_indexed + ( + btl_battle:get_characters_field(), + CharacterIX, + [ + shr_db_query:set_field + ( + btl_character:get_weapons_field(), + UpdatedWeaponIDs + ) + ] + ), + + btl_character_turn_update:add_to_timeline(TimelineItem, DBQuery, S1Update). |