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. |