From 96c35eb8c79826fa07d2b00bbac039d9ec95eb3c Mon Sep 17 00:00:00 2001 From: nsensfel Date: Fri, 23 Feb 2018 22:47:43 +0100 Subject: ... --- src/query/character_turn.erl | 37 ++++++++++++++++------ .../handle_character_instance_attacking_2.erl | 7 ++-- 2 files changed, 31 insertions(+), 13 deletions(-) (limited to 'src/query') diff --git a/src/query/character_turn.erl b/src/query/character_turn.erl index 19b6cff..39154eb 100644 --- a/src/query/character_turn.erl +++ b/src/query/character_turn.erl @@ -142,20 +142,37 @@ handle_character_instance_switching_weapons (QueryState) -> ControlledCharacterInstance = QueryState#query_state.character_instance, ControlledCharacter = character_instance:get_character(ControlledCharacterInstance), + ControlledCharacterAttributes = + character:get_attributes(ControlledCharacter), {PrimaryWeapon, SecondaryWeapon} = character:get_weapons(ControlledCharacter), - QueryState#query_state - { - character_instance = - character_instance:set_character + + UpdatedWeapons = {SecondaryWeapon, PrimaryWeapon}, + UpdatedControlledCharacterStatistics = + statistics:new + ( + ControlledCharacterAttributes, + UpdatedWeapons + ), + UpdatedControlledCharacter = + character:set_statistics + ( + UpdatedControlledCharacterStatistics, + character:set_weapons ( - character:set_weapons - ( - {SecondaryWeapon, PrimaryWeapon}, - ControlledCharacter - ), - ControlledCharacterInstance + ControlledCharacter ) + ), + UpdatedControlledCharacterInstance = + character_instance:set_character + ( + UpdatedControlledCharacter, + ControlledCharacterInstance + ), + + QueryState#query_state + { + character_instance = UpdatedControlledCharacterInstance }. -include("character_turn/handle_character_instance_attacking_2.erl"). diff --git a/src/query/character_turn/handle_character_instance_attacking_2.erl b/src/query/character_turn/handle_character_instance_attacking_2.erl index be2ac99..ecb2a95 100644 --- a/src/query/character_turn/handle_character_instance_attacking_2.erl +++ b/src/query/character_turn/handle_character_instance_attacking_2.erl @@ -58,6 +58,7 @@ handle_parry (AttackerStatistics, DefenderStatistics) -> [] end. +%% FIXME: parry not working as intended handle_attacks ([], _AttackerStatistics, _DefenderStatistics, Results) -> Results; handle_attacks @@ -323,11 +324,11 @@ handle_character_instance_attacking (QueryState, Input) -> Actions = case {CanDefend, CanParry} of {true, true} -> - [second, counter, parry, first]; + [{second, parry}, counter, {first, parry}]; {true, false} -> - [second, counter, first]; + [{second, no_parry}, counter, {fist, no_parry}]; {false, _} -> - [second, first] + [{second, no_parry}, {first, no_parry}] end, Effects = handle_attacks -- cgit v1.2.3-70-g09d2