| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/battle/mechanic/btl_turn_actions_management.erl')
| -rw-r--r-- | src/battle/mechanic/btl_turn_actions_management.erl | 75 | 
1 files changed, 50 insertions, 25 deletions
| diff --git a/src/battle/mechanic/btl_turn_actions_management.erl b/src/battle/mechanic/btl_turn_actions_management.erl index 41d9821..d3a84bd 100644 --- a/src/battle/mechanic/btl_turn_actions_management.erl +++ b/src/battle/mechanic/btl_turn_actions_management.erl @@ -22,31 +22,19 @@     )     -> btl_character_turn_update:type().  deactivate_character (Update) -> -   Data = btl_character_turn_update:get_data(Update), -   Character = btl_character_turn_data:get_character(Data), +   {S0Update, Character} = btl_character_turn_update:get_character(Update), -   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), +   {UpdatedCharacter, CharacterAtaxiaUpdate} = +      btl_character:ataxia_set_is_active(false, Character), -   DBQuery = -      ataxic:update_field +   S1Update = +      btl_character_turn_update:ataxia_set_character        ( -         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) -            ) -         ) +         UpdatedCharacter, +         CharacterAtaxiaUpdate, +         S0Update        ), -   S0Update = btl_character_turn_update:set_data(FinalizedData, Update), -   S1Update = btl_character_turn_update:add_to_db(DBQuery, S0Update), -     S1Update.  -spec handle_action @@ -62,19 +50,56 @@ handle_action (BattleAction, Update) ->        attack -> btl_turn_actions_attack:handle(BattleAction, Update)     end. +-spec update_timeline +   ( +      btl_character_turn_update:type() +   ) +   -> btl_character_turn_update:type(). +update_timeline (Update) -> +   NewTimelineElements = btl_character_turn_update:get_timeline(Update), +   {S0Update, Battle} = btl_character_turn_update:get_battle(Update), +   PlayerTurn = btl_battle:get_current_player_turn(Battle), +   PlayerIX = btl_player_turn:get_player_ix(PlayerTurn), +   Player = btl_battle:get_player(PlayerIX, Battle), + +   {UpdatedPlayer, PlayerAtaxiaUpdate} = +      btl_player:ataxia_add_to_timeline(NewTimelineElements, Player), + +   {UpdatedBattle, BattleAtaxiaUpdate} = +      btl_battle:ataxia_set_player +      ( +         PlayerIX, +         UpdatedPlayer, +         PlayerAtaxiaUpdate, +         Battle +      ), + +   S1Update = +      btl_character_turn_update:ataxia_set_battle +      ( +         UpdatedBattle, +         BattleAtaxiaUpdate, +         S0Update +      ), + +   S1Update. + +  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec handle     ( -      btl_character_turn_data:type(), +      btl_character_turn_update:type(),        btl_character_turn_request:type()     )     -> btl_character_turn_update:type(). -handle (Data, Request) -> +handle (Update, 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), +   S0Update = lists:foldl(fun handle_action/2, Update, Actions), +   S1Update = deactivate_character(S0Update), +   S2Update = update_timeline(S1Update), +   S3Update = btl_turn_progression:handle(S2Update), -   deactivate_character(PostActionsUpdate). +   S3Update. | 


