summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/struct/btl_character_turn_update.erl')
-rw-r--r-- | src/battle/struct/btl_character_turn_update.erl | 142 |
1 files changed, 10 insertions, 132 deletions
diff --git a/src/battle/struct/btl_character_turn_update.erl b/src/battle/struct/btl_character_turn_update.erl index f5f2d05..304f19d 100644 --- a/src/battle/struct/btl_character_turn_update.erl +++ b/src/battle/struct/btl_character_turn_update.erl @@ -32,10 +32,8 @@ get_battle_update/1, get_timeline/1, - set_battle/3, - - ataxia_set_battle/4, - ataxia_set_character/3, + set_battle/2, + ataxia_set_battle/3, add_to_timeline/2 ] @@ -44,24 +42,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec resolve_character_at - ( - non_neg_integer(), - btl_battle:type() - ) -> btl_character:type(). -resolve_character_at (CharacterIX, Battle) -> - CharacterRef = btl_battle:get_character(CharacterIX, Battle), - Location = btl_character:get_location(CharacterRef), - Map = btl_battle:get_map(Battle), - - TileInstance = shr_map:get_tile_instance(Location, Map), - TileClassID = shr_tile_instance:get_tile_id(TileInstance), - Tile = shr_tile:from_id(TileClassID), - TileOmnimods = shr_tile:get_omnimods(Tile), - - Character = btl_character:resolve(TileOmnimods, CharacterRef), - - Character. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -70,140 +50,40 @@ resolve_character_at (CharacterIX, Battle) -> new (Battle, CharacterIX) -> #type { - character_is_outdated = false, - battle_is_outdated = false, - battle = Battle, - reversed_battle_updates = [], - - character = resolve_character_at(CharacterIX, Battle), - reversed_character_updates = [], - character_ix = CharacterIX, - + reversed_battle_updates = [], timeline = [] }. --spec get_battle (type()) -> {type(), btl_battle:type()}. -get_battle (Data) -> - case Data#type.battle_is_outdated of - false -> {Data, Data#type.battle}; - true -> - {UpdatedBattle, BattleAtaxiaUpdate} = - btl_battle:ataxia_set_character - ( - Data#type.character_ix, - btl_character:to_unresolved(Data#type.character), - ataxic:sequence - ( - lists:reverse(Data#type.reversed_character_updates) - ), - Data#type.battle - ), - - { - Data#type - { - battle_is_outdated = false, - battle = UpdatedBattle, - reversed_battle_updates = - [ - BattleAtaxiaUpdate - |Data#type.reversed_battle_updates - ], - reversed_character_updates = [] - }, - UpdatedBattle - } - end. - --spec get_character (type()) -> {type(), btl_character:type()}. -get_character (Data) -> - case Data#type.character_is_outdated of - false -> {Data, Data#type.character}; - true -> - { - Data#type - { - character_is_outdated = false, - character = - resolve_character_at - ( - Data#type.character_ix, - Data#type.battle - ), - reversed_character_updates = [] - } - } - end. +-spec get_battle (type()) -> btl_battle:type(). +get_battle (Data) -> Data#type.battle. -spec get_character_ix (type()) -> non_neg_integer(). get_character_ix (Data) -> Data#type.character_ix. --spec set_battle (btl_battle:type(), boolean(), type()) -> type(). -set_battle (Battle, CouldAffectCharacter, Data) -> - false = (Data#type.battle_is_outdated and CouldAffectCharacter), - - Data#type - { - character_is_outdated = - (Data#type.character_is_outdated or CouldAffectCharacter), - battle = Battle - }. +-spec set_battle (btl_battle:type(), type()) -> type(). +set_battle (Battle, Data) -> Data#type { battle = Battle }. -spec ataxia_set_battle ( btl_battle:type(), - boolean(), ataxic:basic(), type() ) -> type(). -ataxia_set_battle (Battle, CouldAffectCharacter, BattleUpdate, Data) -> - false = (Data#type.battle_is_outdated and CouldAffectCharacter), - +ataxia_set_battle (Battle, BattleUpdate, Data) -> Data#type { - character_is_outdated = - (Data#type.character_is_outdated or CouldAffectCharacter), battle = Battle, reversed_battle_updates = [BattleUpdate|Data#type.reversed_battle_updates] }. --spec set_character (btl_character:type(), type()) -> type(). -set_character (Character, Data) -> - false = Data#type.character_is_outdated, - - Data#type - { - battle_is_outdated = true, - character = Character - }. - --spec ataxia_set_character - ( - btl_character:type(), - ataxic:basic(), - type() - ) - -> type(). -ataxia_set_character (Character, CharacterUpdate, Data) -> - false = Data#type.character_is_outdated, - - Data#type - { - battle_is_outdated = true, - character = Character, - reversed_character_updates = - [CharacterUpdate|Data#type.reversed_character_updates] - }. - -spec add_to_timeline (btl_turn_result:type(), type()) -> type(). add_to_timeline (Item, Data) -> Data#type { - timeline = - [btl_turn_result:encode(Item)|Data#type.timeline] + timeline = [btl_turn_result:encode(Item)|Data#type.timeline] }. -spec get_timeline (type()) -> list(any()). @@ -211,6 +91,4 @@ get_timeline (Data) -> Data#type.timeline. -spec get_battle_update (type()) -> ataxic:basic(). get_battle_update (Data) -> - {ActualData, _Battle} = get_battle(Data), - - ataxic:sequence(lists:reverse(ActualData#type.reversed_battle_updates)). + ataxic:sequence(lists:reverse(Data#type.reversed_battle_updates)). |