| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2019-04-25 17:26:34 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2019-04-25 17:26:34 +0200 | 
| commit | fa540d6d07e430789809435741e6cd1d98111c50 (patch) | |
| tree | 890c376b5684593f972ec81cf8c4fbf9455b8342 /src/battle/mechanic | |
| parent | 4fb024b4ee52ccbb9f25b17eaa606ce0b5e0296a (diff) | |
...
Diffstat (limited to 'src/battle/mechanic')
| -rw-r--r-- | src/battle/mechanic/btl_turn_actions_management.erl | 75 | ||||
| -rw-r--r-- | src/battle/mechanic/turn_action/btl_turn_actions_switch_weapon.erl | 47 | 
2 files changed, 67 insertions, 55 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. diff --git a/src/battle/mechanic/turn_action/btl_turn_actions_switch_weapon.erl b/src/battle/mechanic/turn_action/btl_turn_actions_switch_weapon.erl index 119dbe7..24b361a 100644 --- a/src/battle/mechanic/turn_action/btl_turn_actions_switch_weapon.erl +++ b/src/battle/mechanic/turn_action/btl_turn_actions_switch_weapon.erl @@ -26,43 +26,30 @@     )     -> 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), +   {S0Update, Character} = btl_character_turn_update:get_character(Update), +   CharacterIX = btl_character_turn_update:get_character_ix(S0Update), +   BaseCharacter = btl_character:get_base_character(Character), -   {PrimaryWeaponID, SecondaryWeaponID} = btl_character:get_weapon_ids(Character), +   {UpdatedBaseCharacter, BaseCharacterAtaxiaUpdate} = +      shr_character:ataxia_switch_weapons(BaseCharacter), -   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_stats_change:handle_max_health_changes +   {UpdatedCharacter, CharacterAtaxiaUpdate} = +      btl_character:ataxia_set_base_character        ( -         CharacterCurrentData, -         S0Update +         UpdatedBaseCharacter, +         BaseCharacterAtaxiaUpdate, +         Character        ),     TimelineItem = btl_turn_result:new_character_switched_weapons(CharacterIX), -   DBQuery = -      ataxic:update_field +   S1Update = btl_character_turn_update:add_to_timeline(TimelineItem, S0Update), +   S2Update = +      btl_character_turn_update:ataxia_set_character        ( -         btl_battle:get_characters_field(), -         ataxic_sugar:update_orddict_element -         ( -            CharacterIX, -            ataxic:update_field -            ( -               btl_character:get_weapons_field(), -               ataxic:constant(UpdatedWeaponIDs) -            ) -         ) +         UpdatedCharacter, +         CharacterAtaxiaUpdate, +         S1Update        ), -   btl_character_turn_update:add_to_timeline(TimelineItem, DBQuery, S1Update). +   S2Update. | 


