From 1277a01baab587dcc953fac8598ac7656198bb6a Mon Sep 17 00:00:00 2001 From: warriorstar-orion Date: Mon, 6 Jan 2025 12:35:20 -0500 Subject: [PATCH] Respect return values of legacy attack in chain negotiation (#27724) --- code/_onclick/item_attack.dm | 2 +- code/tests/attack_chain/test_attack_chain_cult_dagger.dm | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index ad0951adb77..625ea59cf73 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -130,7 +130,7 @@ . = __attack_core(target, user) - if(!target.new_attack_chain) + if(!target.new_attack_chain && .) return target.attacked_by__legacy__attackchain(src, user, /* def_zone */ null) /obj/item/proc/__after_attack_core(mob/user, atom/target, params, proximity_flag = 1) diff --git a/code/tests/attack_chain/test_attack_chain_cult_dagger.dm b/code/tests/attack_chain/test_attack_chain_cult_dagger.dm index b150d67cb60..c1c2420e494 100644 --- a/code/tests/attack_chain/test_attack_chain_cult_dagger.dm +++ b/code/tests/attack_chain/test_attack_chain_cult_dagger.dm @@ -15,3 +15,10 @@ cultist.click_on(target) TEST_ASSERT_EQUAL(target.puppet.health, target.puppet.getMaxHealth(), "cultist attacking cultist with dagger caused damage") + + // Test some new -> old attack chain shenanigans + target.puppet.mind.remove_antag_datum(/datum/antagonist/cultist) + + ADD_TRAIT(cultist.puppet, TRAIT_PACIFISM, "test") + cultist.click_on(target) + TEST_ASSERT_EQUAL(target.puppet.health, target.puppet.getMaxHealth(), "non-cultist attacked by pacifist")