summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/query/character_turn.erl')
-rw-r--r-- | src/query/character_turn.erl | 37 |
1 files changed, 27 insertions, 10 deletions
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"). |