summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/game-logic/btl_next_turn.erl')
-rw-r--r-- | src/battle/game-logic/btl_next_turn.erl | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/src/battle/game-logic/btl_next_turn.erl b/src/battle/game-logic/btl_next_turn.erl deleted file mode 100644 index 886916d..0000000 --- a/src/battle/game-logic/btl_next_turn.erl +++ /dev/null @@ -1,184 +0,0 @@ --module(btl_next_turn). -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( - [ - update_if_needed/1 - ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec set_player_turn_to_next (btl_battle:type()) - -> {btl_battle:type(), ataxic:basic()}. -set_player_turn_to_next (Battle) -> - Players = btl_battle:get_players(Battle), - CurrentPlayerTurn = btl_battle:get_current_player_turn(Battle), - - NextPlayerTurn = btl_player_turn:next(Players, CurrentPlayerTurn), - - UpdatedBattle = btl_battle:set_current_player_turn(NextPlayerTurn, Battle), - - DBQuery = - ataxic:update_field - ( - btl_battle:get_current_player_turn_field(), - ataxic:constant(NextPlayerTurn) - ), - - {UpdatedBattle, DBQuery}. - --spec reset_next_player_timeline (btl_battle:type()) - -> {btl_battle:type(), btl_player:type(), ataxic:basic()}. -reset_next_player_timeline (Battle) -> - NextPlayerTurn = btl_battle:get_current_player_turn(Battle), - NextPlayerIX = btl_player_turn:get_player_ix(NextPlayerTurn), - NextPlayer = btl_battle:get_player(NextPlayerIX, Battle), - - UpdatedNextPlayer = btl_player:reset_timeline(NextPlayer), - UpdatedBattle = - btl_battle:set_player(NextPlayerIX, UpdatedNextPlayer, Battle), - - DBQuery = - ataxic:update_field - ( - btl_battle:get_players_field(), - ataxic_sugar:update_orddict_element - ( - NextPlayerIX, - ataxic:update_field - ( - btl_player:get_timeline_field(), - ataxic:constant([]) - ) - ) - ), - - {UpdatedBattle, UpdatedNextPlayer, DBQuery}. - - --spec activate_next_players_characters (btl_battle:type(), btl_player:type()) - -> {btl_battle:type(), ataxic:basic()}. -activate_next_players_characters (Battle, NextPlayer) -> - NextPlayerIX = btl_player:get_index(NextPlayer), - Characters = btl_battle:get_characters(Battle), - - {UpdatedCharacters, AtaxicUpdates} = - orddict:fold - ( - fun (IX, Character, {Prev, Updates}) -> - case (btl_character:get_player_index(Character) == NextPlayerIX) of - true -> - { - orddict:store - ( - IX, - btl_character:set_is_active(true, Character), - Prev - ), - [ - ataxic_sugar:update_orddict_element - ( - IX, - ataxic:update_field - ( - btl_character:get_is_active_field(), - ataxic:constant(true) - ) - )|Updates - ] - }; - - false -> {Prev, Updates} - end - end, - {Characters, []}, - Characters - ), - - DBQuery = - ataxic:update_field - ( - btl_battle:get_characters_field(), - ataxic:sequence(AtaxicUpdates) - ), - - UpdatedBattle = btl_battle:set_characters(UpdatedCharacters, Battle), - - {UpdatedBattle, DBQuery}. - --spec update - ( - btl_character_turn_update:type() - ) - -> btl_character_turn_update:type(). -update (Update) -> - Data = btl_character_turn_update:get_data(Update), - Battle = btl_character_turn_data:get_battle(Data), - - {S0Battle, DBQuery0} = set_player_turn_to_next(Battle), - {S1Battle, NextPlayer, DBQuery1} = reset_next_player_timeline(S0Battle), - {S2Battle, DBQuery2} = - activate_next_players_characters(S1Battle, NextPlayer), - - S0Data = btl_character_turn_data:set_battle(S2Battle, Data), - S0Update = - btl_character_turn_update:add_to_timeline - ( - btl_turn_result:new_player_turn_started - ( - btl_player:get_index(NextPlayer) - ), - DBQuery0, - Update - ), - - S1Update = btl_character_turn_update:set_data(S0Data, S0Update), - - S2Update = - lists:foldl - ( - fun btl_character_turn_update:add_to_db/2, - S1Update, - [DBQuery1,DBQuery2] - ), - - S2Update. - --spec requires_update (btl_character_turn_update:type()) -> boolean(). -requires_update (Update) -> - Data = btl_character_turn_update:get_data(Update), - Battle = btl_character_turn_data:get_battle(Data), - Characters = btl_battle:get_characters(Battle), - - (not - (lists:any - ( - fun ({_IX, Char}) -> - btl_character:get_is_active(Char) - end, - orddict:to_list(Characters) - ) - ) - ). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec update_if_needed - ( - btl_character_turn_update:type() - ) - -> btl_character_turn_update:type(). -update_if_needed (Update) -> - case requires_update(Update) of - true -> update(Update); - _ -> Update - end. |