| summaryrefslogtreecommitdiff | 
diff options
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). | 


