summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/struct/btl_character_turn_data.erl')
-rw-r--r-- | src/battle/struct/btl_character_turn_data.erl | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/battle/struct/btl_character_turn_data.erl b/src/battle/struct/btl_character_turn_data.erl index 64df29f..6742d1c 100644 --- a/src/battle/struct/btl_character_turn_data.erl +++ b/src/battle/struct/btl_character_turn_data.erl @@ -10,6 +10,7 @@ dirty :: boolean(), battle :: btl_battle:type(), character :: btl_character:type(), + character_current_data :: btl_character_current_data:type(), character_ix :: non_neg_integer() } ). @@ -29,10 +30,12 @@ get_battle_is_dirty/1, get_battle/1, get_character/1, + get_character_current_data/1, get_character_ix/1, set_battle/2, - set_character/2 + set_character/2, + refresh_character_current_data/1 ] ). @@ -54,12 +57,15 @@ -spec new (btl_battle:type(), non_neg_integer()) -> type(). new (Battle, CharacterIX) -> Character = btl_battle:get_character(CharacterIX, Battle), + Map = btl_battle:get_map(Battle), + CharacterCurrentData = btl_character_current_data:new(Character, Map), #type { dirty = false, battle = Battle, character = Character, + character_current_data = CharacterCurrentData, character_ix = CharacterIX }. @@ -72,6 +78,9 @@ get_battle (Data) -> Data#type.battle. -spec get_character (type()) -> btl_character:type(). get_character (Data) -> Data#type.character. +-spec get_character_current_data (type()) -> btl_character_current_data:type(). +get_character_current_data (Data) -> Data#type.character_current_data. + -spec get_character_ix (type()) -> non_neg_integer(). get_character_ix (Data) -> Data#type.character_ix. @@ -87,6 +96,19 @@ set_character (Character, Data) -> character = Character }. +-spec refresh_character_current_data (type()) -> type(). +refresh_character_current_data (Data) -> + Battle = Data#type.battle, + Character = Data#type.character, + Map = btl_battle:get_map(Battle), + CharacterCurrentData = btl_character_current_data:new(Character, Map), + + Data#type + { + character_current_data = CharacterCurrentData + }. + + -spec clean_battle (type()) -> type(). clean_battle (Data) -> Data#type |