summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-06-06 16:36:13 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-06-06 16:36:13 +0200 |
commit | c3afe2633025641dd02e05d6c55dd9cafc42b8a2 (patch) | |
tree | 3f3865aada81ffa88f5c559ca3da1fcf3dd7c254 /src/battle/mechanic/btl_turn_actions_management.erl | |
parent | d6d0920325e77bf39da69006f8e86c2f900ca86b (diff) |
It compiles and mostly passes Dialyzer's tests.
Diffstat (limited to 'src/battle/mechanic/btl_turn_actions_management.erl')
-rw-r--r-- | src/battle/mechanic/btl_turn_actions_management.erl | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/src/battle/mechanic/btl_turn_actions_management.erl b/src/battle/mechanic/btl_turn_actions_management.erl deleted file mode 100644 index 7ee173a..0000000 --- a/src/battle/mechanic/btl_turn_actions_management.erl +++ /dev/null @@ -1,145 +0,0 @@ --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) -> - {S0Update, Character} = btl_character_turn_update:get_character(Update), - - {UpdatedCharacter, CharacterAtaxiaUpdate} = - btl_character:ataxia_set_is_active(false, Character), - - S1Update = - btl_character_turn_update:ataxia_set_character - ( - UpdatedCharacter, - CharacterAtaxiaUpdate, - S0Update - ), - - S1Update. - --spec perform_action - ( - btl_action:type(), - btl_character:type(), - btl_character_turn_update:type() - ) - -> - ( - {ok, btl_character_turn_update:type()} - | {events, list(btl_action:type()), btl_character_turn_update:type()} - ). -perform_action (Action, Character, Update) -> - case btl_action:get_category(Action) of - move -> btl_action_move:handle(Action, Character, Update); - attack -> btl_action_attack:handle(Action, Character, Update); - switch_weapon -> - btl_action_switch_weapon:handle(Action, Character, Update) - end. - --spec handle_actions - ( - list(btl_action:type()), - btl_character_turn_update:type() - ) - -> btl_character_turn_update:type(). -handle_actions ([], Update) -> Update; -handle_actions ([BattleAction|FutureBattleActions], S0Update) -> - case btl_action:get_actor_index(BattleAction) of - -1 -> handle_actions(FutureBattleActions, S0Update); - CharacterIX -> - S0Battle = btl_character_turn_update:get_battle(S0Update), - {Character, S1Battle} = - btl_battle:get_resolved_character(CharacterIX, S0Battle), - - S1Update = btl_character_turn_update:set_battle(S1Battle, S0Update), - - case btl_character:is_alive(Character) of - false -> handle_actions(FutureBattleActions, S1Update); - true -> - case perform_action(BattleAction, Character, S1Update) of - {ok, S2Update} -> - handle_actions(FutureBattleActions, S2Update); - {events, NewEvents, S2Update} -> - handle_actions - ( - (NewEvents ++ FutureBattleActions), - S2Update - ) - end - end - 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, - false, - BattleAtaxiaUpdate, - S0Update - ), - - S1Update. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec handle - ( - btl_character_turn_update:type(), - btl_character_turn_request:type() - ) - -> btl_character_turn_update:type(). -handle (Update, Request) -> - Actions = btl_character_turn_request:get_actions(Request), - - S0Update = handle_actions(Actions, Update), - S1Update = deactivate_character(S0Update), - S2Update = update_timeline(S1Update), - S3Update = btl_turn_progression:handle(S2Update), - - S3Update. |