summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/game-logic/btl_turn_actions_move.erl')
-rw-r--r-- | src/battle/game-logic/btl_turn_actions_move.erl | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/src/battle/game-logic/btl_turn_actions_move.erl b/src/battle/game-logic/btl_turn_actions_move.erl deleted file mode 100644 index 80e5170..0000000 --- a/src/battle/game-logic/btl_turn_actions_move.erl +++ /dev/null @@ -1,140 +0,0 @@ --module(btl_turn_actions_move). -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( - [ - handle/2 - ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec get_path_cost_and_destination - ( - btl_character_turn_data:type(), - list(btl_direction:type()) - ) - -> {non_neg_integer(), btl_location:type()}. -get_path_cost_and_destination (Data, Path) -> - Character = btl_character_turn_data:get_character(Data), - CharacterIX = btl_character_turn_data:get_character_ix(Data), - Battle = btl_character_turn_data:get_battle(Data), - Map = btl_battle:get_map(Battle), - - ForbiddenLocations = - orddict:fold - ( - fun (IX, Char, Prev) -> - IsAlive = btl_character:get_is_alive(Char), - if - (IX == CharacterIX) -> Prev; - (not IsAlive) -> Prev; - true -> - ordsets:add_element(btl_character:get_location(Char), Prev) - end - end, - ordsets:new(), - btl_battle:get_characters(Battle) - ), - - {NewLocation, Cost} = - btl_movement:cross - ( - Map, - ForbiddenLocations, - Path, - btl_character:get_location(Character) - ), - - {Cost, NewLocation}. - --spec assert_character_can_move - ( - btl_character_turn_data:type(), - non_neg_integer() - ) - -> 'ok'. -assert_character_can_move (Data, Cost) -> - CharacterData = btl_character_turn_data:get_character_current_data(Data), - CharacterStats= btl_character_current_data:get_statistics(CharacterData), - CharacterMovementPoints = shr_statistics:get_movement_points(CharacterStats), - - true = (Cost =< CharacterMovementPoints), - - ok. - --spec commit_move - ( - btl_character_current_data:type(), - btl_character_turn_update:type(), - list(btl_direction:type()), - btl_location:type() - ) - -> btl_character_turn_update:type(). -commit_move (PreviousCurrentData, Update, Path, NewLocation) -> - Data = btl_character_turn_update:get_data(Update), - Character = btl_character_turn_data:get_character(Data), - CharacterIX = btl_character_turn_data:get_character_ix(Data), - - UpdatedCharacter = btl_character:set_location(NewLocation, Character), - S0Data = btl_character_turn_data:set_character(UpdatedCharacter, Data), - S1Data = btl_character_turn_data:refresh_character_current_data(S0Data), - - S0Update = btl_character_turn_update:set_data(S1Data, Update), - S1Update = - btl_turn_actions:handle_max_health_changes(PreviousCurrentData, S0Update), - - TimelineItem = - btl_turn_result:new_character_moved(CharacterIX, Path, NewLocation), - - DBQuery = - ataxic:update_field - ( - btl_battle:get_characters_field(), - ataxic_sugar:update_orddict_element - ( - CharacterIX, - ataxic:update_field - ( - btl_character:get_location_field(), - ataxic:constant(NewLocation) - ) - ) - ), - - S2Update = - btl_character_turn_update:add_to_timeline - ( - TimelineItem, - DBQuery, - S1Update - ), - - S2Update. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec handle - ( - btl_battle_action:type(), - btl_character_turn_update:type() - ) - -> btl_character_turn_update:type(). -handle (BattleAction, Update) -> - Data = btl_character_turn_update:get_data(Update), - CharacterCurrentData = - btl_character_turn_data:get_character_current_data(Data), - Path = btl_battle_action:get_path(BattleAction), - - {PathCost, NewLocation} = get_path_cost_and_destination(Data, Path), - assert_character_can_move(Data, PathCost), - - commit_move(CharacterCurrentData, Update, Path, NewLocation). |