| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/battle/struct')
| -rw-r--r-- | src/battle/struct/btl_attack.erl | 23 | ||||
| -rw-r--r-- | src/battle/struct/btl_battle.erl | 33 | 
2 files changed, 55 insertions, 1 deletions
| diff --git a/src/battle/struct/btl_attack.erl b/src/battle/struct/btl_attack.erl index 189cb0e..6d7f32e 100644 --- a/src/battle/struct/btl_attack.erl +++ b/src/battle/struct/btl_attack.erl @@ -36,7 +36,7 @@        get_sequence/3,        get_description_of/5,        apply_to_healths_and_lucks/5, -      new_opportunity/2, +      attack_of_opportunity/0     ]  ). @@ -411,8 +411,26 @@ get_description_of        CanParry,        DefenderLuck,        AttackerLuck +   ); +get_description_of +( +   opportunity, +   Attacker, +   Defender, +   AttackerLuck, +   DefenderLuck +) -> +   effect_of_attack +   ( +      opportunity, +      Attacker, +      Defender, +      false, +      AttackerLuck, +      DefenderLuck     ). +  -spec apply_to_healths_and_lucks     (        maybe_type(), @@ -555,6 +573,9 @@ get_sequence (AttackRange, AttackerWeapon, DefenderWeapon) ->        _ -> [First, Second]     end. +-spec attack_of_opportunity () -> opportunity. +attack_of_opportunity () -> opportunity. +  -spec encode (type()) -> {list(any())}.  encode (Attack) ->     Order = Attack#attack.order, diff --git a/src/battle/struct/btl_battle.erl b/src/battle/struct/btl_battle.erl index aedd8da..c1f4d68 100644 --- a/src/battle/struct/btl_battle.erl +++ b/src/battle/struct/btl_battle.erl @@ -89,6 +89,13 @@     ]  ). +-export +( +   [ +     resolve_character/2 +   ] +). +  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -468,6 +475,32 @@ new (Map) ->        current_player_turn = btl_player_turn:new(0, 0)     }. +-spec resolve_character +   ( +      btl_character:unresolved(), +      type() +   ) +   -> btl_character:type(). +resolve_character (CharacterRef, Battle) -> +   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(CharacterRef), +                  Battle#battle.map +               ) +            ) +         ) +      ), +      CharacterRef +   ). +  -spec get_characters_field () -> non_neg_integer().  get_characters_field () -> #battle.characters. | 


