summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/game-logic/btl_next_turn.erl')
-rw-r--r--src/battle/game-logic/btl_next_turn.erl184
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.