| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2019-04-25 14:19:44 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2019-04-25 14:19:44 +0200 | 
| commit | 4fb024b4ee52ccbb9f25b17eaa606ce0b5e0296a (patch) | |
| tree | cb89cdde37bd6f091ed175c076e607f4d311a01e /src/battle/mechanic/btl_turn_actions_management.erl | |
| parent | e68004ee70c9102d00df2925c05d1354a6315bc0 (diff) | |
Merging btl_character_turn_{data,update}...
Diffstat (limited to 'src/battle/mechanic/btl_turn_actions_management.erl')
| -rw-r--r-- | src/battle/mechanic/btl_turn_actions_management.erl | 80 | 
1 files changed, 80 insertions, 0 deletions
| diff --git a/src/battle/mechanic/btl_turn_actions_management.erl b/src/battle/mechanic/btl_turn_actions_management.erl new file mode 100644 index 0000000..41d9821 --- /dev/null +++ b/src/battle/mechanic/btl_turn_actions_management.erl @@ -0,0 +1,80 @@ +-module(btl_turn_actions_management). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export +( +   [ +      handle/2 +   ] +). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec deactivate_character +   ( +      btl_character_turn_update:type() +   ) +   -> btl_character_turn_update:type(). +deactivate_character (Update) -> +   Data = btl_character_turn_update:get_data(Update), +   Character = btl_character_turn_data:get_character(Data), + +   DisabledCharacter = btl_character:set_is_active(false, Character), +   UpdatedData = btl_character_turn_data:set_character(DisabledCharacter, Data), +   FinalizedData = btl_character_turn_data:clean_battle(UpdatedData), + +   DBQuery = +      ataxic:update_field +      ( +         btl_battle:get_characters_field(), +         ataxic_sugar:update_orddict_element +         ( +            btl_character_turn_data:get_character_ix(Data), +            ataxic:update_field +            ( +               btl_character:get_is_active_field(), +               ataxic:constant(false) +            ) +         ) +      ), + +   S0Update = btl_character_turn_update:set_data(FinalizedData, Update), +   S1Update = btl_character_turn_update:add_to_db(DBQuery, S0Update), + +   S1Update. + +-spec handle_action +( +   btl_battle_action:type(), +   btl_character_turn_update:type() +) +-> btl_character_turn_update:type(). +handle_action (BattleAction, Update) -> +   case btl_battle_action:get_category(BattleAction) of +      move -> btl_turn_actions_move:handle(BattleAction, Update); +      switch_weapon -> btl_turn_actions_switch_weapon:handle(Update); +      attack -> btl_turn_actions_attack:handle(BattleAction, Update) +   end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec handle +   ( +      btl_character_turn_data:type(), +      btl_character_turn_request:type() +   ) +   -> btl_character_turn_update:type(). +handle (Data, Request) -> +   Actions = btl_character_turn_request:get_actions(Request), + +   EmptyUpdate = btl_character_turn_update:new(Data), +   PostActionsUpdate = lists:foldl(fun handle_action/2, EmptyUpdate, Actions), + +   deactivate_character(PostActionsUpdate). | 


