| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2019-06-05 17:52:58 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2019-06-05 17:52:58 +0200 | 
| commit | 9e7dcabc164eacb7024387e060623993b48c60b4 (patch) | |
| tree | 50df2a6143eb2eca18b2588383630c81bb11c1b6 /src/battle/mechanic/turn_action/btl_turn_actions_attack.erl | |
| parent | 1afb69a11b0e291c7bfd6c24bdd8e55742e61889 (diff) | |
[Broken] ...
Diffstat (limited to 'src/battle/mechanic/turn_action/btl_turn_actions_attack.erl')
| -rw-r--r-- | src/battle/mechanic/turn_action/btl_turn_actions_attack.erl | 339 | 
1 files changed, 0 insertions, 339 deletions
| diff --git a/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl b/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl deleted file mode 100644 index 2b032a0..0000000 --- a/src/battle/mechanic/turn_action/btl_turn_actions_attack.erl +++ /dev/null @@ -1,339 +0,0 @@ --module(btl_turn_actions_attack). -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( -   [ -      handle/2 -   ] -). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - --spec handle_attack_sequence -   ( -      btl_character:type(), -      non_neg_integer(), -      btl_character:type(), -      non_neg_integer(), -      integer(), -      integer(), -      list(btl_attack:step()), -      list(btl_attack:type()) -   ) -   -> -   { -      list(btl_attack:type()), -      non_neg_integer(), -      non_neg_integer(), -      integer(), -      integer() -   }. -handle_attack_sequence -( -   _Character, -   CharacterCurrentHealth, -   _TargetCharacter, -   TargetCurrentHealth, -   AttackerLuck, -   DefenderLuck, -   AttackSequence, -   Result -) -when -( -   (CharacterCurrentHealth == 0) -   or (TargetCurrentHealth == 0) -   or (AttackSequence == []) -) -> -   { -      lists:reverse(Result), -      CharacterCurrentHealth, -      TargetCurrentHealth, -      AttackerLuck, -      DefenderLuck -   }; -handle_attack_sequence -( -   Character, -   AttackerHealth, -   TargetCharacter, -   DefenderHealth, -   AttackerLuck, -   DefenderLuck, -   [NextAttack | AttackSequence], -   Result -) -> -   AttackEffect = -      btl_attack:get_description_of -      ( -         NextAttack, -         btl_character:get_base_character(Character), -         btl_character:get_base_character(TargetCharacter), -         AttackerLuck, -         DefenderLuck -      ), - -   { -      AttackResult, -      NewAttackerHealth, -      NewAttackerLuck, -      NewDefenderHealth, -      NewDefenderLuck -   } = -      btl_attack:apply_to_healths_and_lucks -      ( -         AttackEffect, -         AttackerHealth, -         AttackerLuck, -         DefenderHealth, -         DefenderLuck -      ), - -   NextResult = -      case AttackResult of -         {nothing, _, _} -> Result; -         _ -> [AttackResult|Result] -      end, - -   handle_attack_sequence -   ( -      Character, -      NewAttackerHealth, -      TargetCharacter, -      NewDefenderHealth, -      NewAttackerLuck, -      NewDefenderLuck, -      AttackSequence, -      NextResult -   ). - --spec get_attack_sequence -   ( -      btl_character:type(), -      btl_character:type() -   ) -   -> list(btl_attack:step()). -get_attack_sequence (Character, TargetCharacter) -> -   Range = -      shr_location:dist -      ( -         btl_character:get_location(Character), -         btl_character:get_location(TargetCharacter) -      ), - -   AttackingWeapon = -      shr_character:get_active_weapon -      ( -         btl_character:get_base_character(Character) -      ), - -   DefendingWeapon = -      shr_character:get_active_weapon -      ( -         btl_character:get_base_character(TargetCharacter) -      ), - -   btl_attack:get_sequence(Range, AttackingWeapon, DefendingWeapon). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec handle -   ( -      btl_action:type(), -      btl_character_turn_update:type() -   ) -   -> {ok, btl_character_turn_update:type()}. -handle (BattleAction, Update) -> -   {S0Update, Battle} = btl_character_turn_update:get_battle(Update), -   {S1Update, Character} = btl_character_turn_update:get_character(S0Update), - -   AttackingPlayerIX = btl_character:get_player_index(Character), -   AttackingPlayer = btl_battle:get_player(AttackingPlayerIX, Battle), -   AttackingPlayerLuck = btl_player:get_luck(AttackingPlayer), - -   TargetIX = btl_action:get_target_ix(BattleAction), -   Map = btl_battle:get_map(Battle), -   TargetCharacterRef = btl_battle:get_character(TargetIX, Battle), -   TargetCharacter = -      btl_character:resolve -      ( -         shr_tile:get_omnimods -         ( -            shr_tile:from_id -            ( -               shr_tile_instance:get_tile_id -               ( -                  shr_map:get_tile_instance -                  ( -                     btl_character:get_location(TargetCharacterRef), -                     Map -                  ) -               ) -            ) -         ), -         TargetCharacterRef -      ), - -   DefendingPlayerIX = btl_character:get_player_index(TargetCharacter), -   DefendingPlayer = btl_battle:get_player(DefendingPlayerIX, Battle), -   DefendingPlayerLuck = btl_player:get_luck(DefendingPlayer), - - -   true = btl_character:get_is_alive(TargetCharacter), - - -   AttackSequence = get_attack_sequence(Character, TargetCharacter), - -   { -      AttackEffects, -      RemainingAttackerHealth, -      RemainingDefenderHealth, -      NewAttackerLuck, -      NewDefenderLuck -   } = -      handle_attack_sequence -      ( -         Character, -         btl_character:get_current_health(Character), -         TargetCharacter, -         btl_character:get_current_health(TargetCharacter), -         AttackingPlayerLuck, -         DefendingPlayerLuck, -         AttackSequence, -         [] -      ), - -   S0NewAttackerLuck = -      case {(NewAttackerLuck =< -2), (NewAttackerLuck >= 2)}  of -         {true, _} -> (NewAttackerLuck + 2); -         {_, true} -> (NewAttackerLuck - 2); -         _ -> 0 -      end, - -   S0NewDefenderLuck = -      case {(NewDefenderLuck =< -2), (NewDefenderLuck >= 2)}  of -         {true, _} -> (NewDefenderLuck + 2); -         {_, true} -> (NewDefenderLuck - 2); -         _ -> 0 -      end, - -   {UpdatedAttackingPlayer, AttackingPlayerAtaxiaUpdate} = -      btl_player:ataxia_set_luck(S0NewAttackerLuck, AttackingPlayer), - -   {UpdatedDefendingPlayer, DefendingPlayerAtaxiaUpdate} = -      btl_player:ataxia_set_luck(S0NewDefenderLuck, DefendingPlayer), - -   {UpdatedCharacter, CharacterAtaxiaUpdate} = -      btl_character:ataxia_set_current_health -      ( -         RemainingAttackerHealth, -         Character -      ), - -   {UpdatedTargetCharacterRef, TargetCharacterRefAtaxiaUpdate} = -      btl_character:ataxia_set_current_health -      ( -         RemainingDefenderHealth, -         TargetCharacterRef -      ), - -   {S0Battle, BattleAtaxiaUpdate0} = -      btl_battle:ataxia_set_player -      ( -         AttackingPlayerIX, -         UpdatedAttackingPlayer, -         AttackingPlayerAtaxiaUpdate, -         Battle -      ), - -   {S1Battle, BattleAtaxiaUpdate1} = -      btl_battle:ataxia_set_player -      ( -         DefendingPlayerIX, -         UpdatedDefendingPlayer, -         DefendingPlayerAtaxiaUpdate, -         S0Battle -      ), - -   {S2Battle, BattleAtaxiaUpdate2} = -      btl_battle:ataxia_set_character -      ( -         TargetIX, -         UpdatedTargetCharacterRef, -         TargetCharacterRefAtaxiaUpdate, -         S1Battle -      ), - -   % Potential danger ahead: we're going to update both the 'character' and -   % 'battle' members of a btl_character_turn_update. -   % 'S1Update' is sure to have both up to date (as it's the result of 'get' -   % requests for both) and there is no risk of the 'battle' update influencing -   % 'character', making what follows safe. - -   S2Update = -      btl_character_turn_update:ataxia_set_battle -      ( -         S2Battle, -         false, -         ataxic:optimize -         ( -            ataxic:sequence -            ( -               [ -                  BattleAtaxiaUpdate0, -                  BattleAtaxiaUpdate1, -                  BattleAtaxiaUpdate2 -               ] -            ) -         ), -         S1Update -      ), - -   S3Update = -      btl_character_turn_update:ataxia_set_character -      ( -         UpdatedCharacter, -         CharacterAtaxiaUpdate, -         S2Update -      ), - -   TimelineItem = -      btl_turn_result:new_character_attacked -      ( -         btl_character_turn_update:get_character_ix(S3Update), -         TargetIX, -         AttackEffects, -         S0NewAttackerLuck, -         S0NewDefenderLuck -      ), - -   S4Update = btl_character_turn_update:add_to_timeline(TimelineItem, S3Update), - -   S5Update = -      case (RemainingAttackerHealth > 0) of -         true -> S4Update; -         false -> -            btl_victory_progression:handle_character_loss(Character, S4Update) -      end, - -   S6Update = -      case (RemainingDefenderHealth > 0) of -         true -> S5Update; -         false -> -            btl_victory_progression:handle_character_loss -            ( -               TargetCharacterRef, -               S5Update -            ) -      end, - -   {ok, S6Update}. | 


