summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-03-12 13:00:59 +0100
committernsensfel <SpamShield0@noot-noot.org>2018-03-12 13:00:59 +0100
commit11a7a03a0088b2c4b8edc394469396d54190dc53 (patch)
tree7856475136a11a60bcf4c2980adfb5624a116b33 /src/battle
parent98203d4d0034dab5db72737bcfb92017a11f3245 (diff)
Starting to work on the timeline feature.
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/battle_turn.erl25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/battle/battle_turn.erl b/src/battle/battle_turn.erl
index e295f09..6e8d226 100644
--- a/src/battle/battle_turn.erl
+++ b/src/battle/battle_turn.erl
@@ -57,13 +57,13 @@ activate_relevant_character_instances (IXs, CharacterInstances, Owner, IX) ->
-spec start_next_players_turn (battle:struct()) ->
{list(non_neg_integer()), battle:struct()}.
start_next_players_turn (Battle) ->
- PlayerIDs = battle:get_player_ids(Battle),
+ Players = battle:get_players(Battle),
PlayerTurn = battle:get_current_player_turn(Battle),
CurrentPlayerIX = player_turn:get_player_ix(PlayerTurn),
CurrentTurnNumber = player_turn:get_number(PlayerTurn),
CharacterInstances = battle:get_character_instances(Battle),
- NextPlayerIX = ((CurrentPlayerIX + 1) rem (array:size(PlayerIDs))),
+ NextPlayerIX = ((CurrentPlayerIX + 1) rem (array:size(Players))),
NextPlayerTurn =
player_turn:new
(
@@ -74,24 +74,33 @@ start_next_players_turn (Battle) ->
NextPlayerIX
),
+ NextPlayer = array:get(NextPlayerIX, Players),
+ UpdatedNextPlayer = player:reset_timeline(),
+
{ActivatedCharacterInstanceIXs, UpdatedCharacterInstances} =
activate_relevant_character_instances
(
[],
CharacterInstances,
- array:get(NextPlayerIX, PlayerIDs),
+ player:get_id(NextPlayer),
(array:size(CharacterInstances) - 1)
),
UpdatedBattle =
- battle:set_character_instances
+ battle:set_player
(
- UpdatedCharacterInstances,
- battle:set_current_player_turn
+ NextPlayerIX,
+ UpdatedNextPlayer,
+ battle:set_character_instances
(
- NextPlayerTurn,
- Battle
+ UpdatedCharacterInstances,
+ battle:set_current_player_turn
+ (
+ NextPlayerTurn,
+ Battle
+ )
)
),
+ % TODO: have a diff operation for the player's timeline being reset.
{ActivatedCharacterInstanceIXs, UpdatedBattle}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%