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/struct/battle.erl
parent98203d4d0034dab5db72737bcfb92017a11f3245 (diff)
Starting to work on the timeline feature.
Diffstat (limited to 'src/struct/battle.erl')
-rw-r--r--src/struct/battle.erl74
1 files changed, 40 insertions, 34 deletions
diff --git a/src/struct/battle.erl b/src/struct/battle.erl
index 4ee3b51..d668bbb 100644
--- a/src/struct/battle.erl
+++ b/src/struct/battle.erl
@@ -12,9 +12,8 @@
id :: id(),
battlemap :: battlemap:struct(),
character_instances :: array:array(character_instance:struct()),
- player_ids :: array:array(player:id()),
- current_player_turn :: player_turn:struct(),
- last_turns_effects :: list(any())
+ players :: array:array(player:struct()),
+ current_player_turn :: player_turn:struct()
}
).
@@ -33,17 +32,17 @@
get_battlemap/1,
get_character_instances/1,
get_character_instance/2,
- get_player_ids/1,
- get_player_id/2,
+ get_players/1,
+ get_player/2,
get_current_player_turn/1,
- get_last_turns_effects/1,
+ get_encoded_last_turns_effects/1,
set_battlemap/2,
set_character_instances/2,
set_character_instance/3,
- set_player_ids/2,
- set_current_player_turn/2,
- set_last_turns_effects/2
+ set_players/2,
+ set_player/3,
+ set_current_player_turn/2
]
).
@@ -79,21 +78,22 @@ get_character_instances (Battle) ->
get_character_instance (IX, Battle) ->
array:get(IX, Battle#battle.character_instances).
--spec get_player_ids (struct()) -> array:array(player:id()).
-get_player_ids (Battle) ->
- Battle#battle.player_ids.
+-spec get_players (struct()) -> array:array(player:struct()).
+get_players (Battle) ->
+ Battle#battle.players.
--spec get_player_id (non_neg_integer(), struct()) -> player:id().
-get_player_id (IX, Battle) ->
- array:get(IX, Battle#battle.player_ids).
+-spec get_player (non_neg_integer(), struct()) -> player:struct().
+get_player (IX, Battle) ->
+ array:get(IX, Battle#battle.players).
-spec get_current_player_turn (struct()) -> player_turn:struct().
get_current_player_turn (Battle) ->
Battle#battle.current_player_turn.
--spec get_last_turns_effects (struct()) -> list(any()).
-get_last_turns_effects (Battle) ->
- Battle#battle.last_turns_effects.
+-spec get_encoded_last_turns_effects (struct()) -> list(any()).
+get_encoded_last_turns_effects (_Battle) ->
+ % TODO
+ [].
-spec set_battlemap (battlemap:struct(), struct()) -> struct().
set_battlemap (Battlemap, Battle) ->
@@ -133,46 +133,53 @@ set_character_instance (IX, CharacterInstance, Battle) ->
)
}.
--spec set_player_ids
+-spec set_players
(
- array:array(player:id()),
+ array:array(player:struct()),
struct()
)
-> struct().
-set_player_ids (Players, Battle) ->
+set_players (Players, Battle) ->
Battle#battle
{
- player_ids = Players
+ players = Players
}.
--spec set_current_player_turn
+-spec set_player
(
- player_turn:struct(),
+ non_neg_integer(),
+ player:struct(),
struct()
)
-> struct().
-set_current_player_turn (PlayerTurn, Battle) ->
+set_player (IX, Player, Battle) ->
Battle#battle
{
- current_player_turn = PlayerTurn
+ players =
+ array:set
+ (
+ IX,
+ Player,
+ Battle#battle.players
+ )
}.
--spec set_last_turns_effects
+-spec set_current_player_turn
(
- list(any()),
+ player_turn:struct(),
struct()
)
-> struct().
-set_last_turns_effects (Effects, Battle) ->
+set_current_player_turn (PlayerTurn, Battle) ->
Battle#battle
{
- last_turns_effects = Effects
+ current_player_turn = PlayerTurn
}.
-spec random
(
id(),
- list(player:id()),
+ list(player:struct()),
battlemap:struct(),
list(character:struct())
)
@@ -221,7 +228,6 @@ random (ID, PlayersAsList, Battlemap, Characters) ->
id = ID,
battlemap = Battlemap,
character_instances = array:from_list(CharacterInstancesAsList),
- player_ids = array:from_list(PlayersAsList),
- current_player_turn = player_turn:new(0, 0),
- last_turns_effects = []
+ players = array:from_list(PlayersAsList),
+ current_player_turn = player_turn:new(0, 0)
}.