From 456410239ec5bf8eae758bbe99e2f5f0b33ceb10 Mon Sep 17 00:00:00 2001 From: osjarw <62134478+osjarw@users.noreply.github.com> Date: Sun, 11 Aug 2024 12:22:46 +0300 Subject: [PATCH] Reorder priorities in `MeleeCombatCompound` (#30066) Reordered MeleeCombatCompound to improve unpulling --- Resources/Prototypes/NPCs/Combat/melee.yml | 63 ++++++++++++---------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/Resources/Prototypes/NPCs/Combat/melee.yml b/Resources/Prototypes/NPCs/Combat/melee.yml index b0746e5679..9cbfbe7ca0 100644 --- a/Resources/Prototypes/NPCs/Combat/melee.yml +++ b/Resources/Prototypes/NPCs/Combat/melee.yml @@ -3,48 +3,55 @@ - type: htnCompound id: MeleeCombatCompound branches: - # Pickup weapon if we don't have one. + - tasks: + - !type:HTNPrimitiveTask + operator: !type:UtilityOperator + proto: NearbyMeleeTargets + - !type:HTNCompoundTask + task: BeforeMeleeAttackTargetCompound + +- type: htnCompound + id: BeforeMeleeAttackTargetCompound + branches: - preconditions: - - !type:ActiveHandComponentPrecondition - components: - # Just serializer things - - type: MeleeWeapon - damage: - types: - Blunt: 0 - invert: true + - !type:BuckledPrecondition + isBuckled: true tasks: - - !type:HTNCompoundTask - task: PickupMeleeCompound + - !type:HTNPrimitiveTask + operator: !type:UnbuckleOperator + shutdownState: TaskFinished - preconditions: - - !type:BuckledPrecondition - isBuckled: true + - !type:PulledPrecondition + isPulled: true tasks: - - !type:HTNPrimitiveTask - operator: !type:UnbuckleOperator - shutdownState: TaskFinished + - !type:HTNPrimitiveTask + operator: !type:UnPullOperator + shutdownState: TaskFinished - preconditions: - - !type:InContainerPrecondition - isInContainer: true + - !type:InContainerPrecondition + isInContainer: true tasks: - - !type:HTNCompoundTask - task: EscapeCompound + - !type:HTNCompoundTask + task: EscapeCompound + # Pickup weapon if we don't have one. - preconditions: - - !type:PulledPrecondition - isPulled: true + - !type:ActiveHandComponentPrecondition + components: + # Just serializer things + - type: MeleeWeapon + damage: + types: + Blunt: 0 + invert: true tasks: - - !type:HTNPrimitiveTask - operator: !type:UnPullOperator - shutdownState: TaskFinished + - !type:HTNCompoundTask + task: PickupMeleeCompound # Melee combat (unarmed or otherwise) - tasks: - - !type:HTNPrimitiveTask - operator: !type:UtilityOperator - proto: NearbyMeleeTargets - !type:HTNCompoundTask task: MeleeAttackTargetCompound -- 2.52.0