From 69808a5b5bd3fecf6685468f095aedeb0c576a94 Mon Sep 17 00:00:00 2001 From: Cameron Lennox Date: Tue, 28 Apr 2026 01:46:10 -0400 Subject: [PATCH] resolve_attackby bugfix (#19441) --- code/_onclick/click.dm | 7 ++++--- code/game/objects/items/stacks/medical.dm | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 264998e3846..cc105eaa8c6 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -137,7 +137,8 @@ if(!currently_restrained && ((!isturf(A) && A == loc) || (sdepth <= MAX_STORAGE_REACH))) if(W) var/resolved = W.resolve_attackby(A, src, click_parameters = params) - if(!resolved && A && W) + //If we got a 'SUCCESS' it means resolve_attackby did something. Don't do afterattack in that case. + if((resolved != ITEM_INTERACT_SUCCESS) && A && W) W.afterattack(A, src, 1, params) // 1 indicates adjacency else if(ismob(A)) // No instant mob attacking @@ -150,7 +151,7 @@ if(!currently_restrained && isbelly(loc) && (loc == A.loc)) if(W) var/resolved = W.resolve_attackby(A,src) - if(!resolved && A && W) + if((resolved != ITEM_INTERACT_SUCCESS) && A && W) W.afterattack(A, src, 1, params) // 1: clicking something Adjacent else if(ismob(A)) // No instant mob attacking @@ -176,7 +177,7 @@ if(W && !restrained()) // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) var/resolved = W.resolve_attackby(A,src, click_parameters = params) - if(!resolved && A && W) + if((resolved != ITEM_INTERACT_SUCCESS) && A && W) W.afterattack(A, src, 1, params) // 1: clicking something Adjacent else if(ismob(A)) // No instant mob attacking diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 02c60e16309..247d5858e3f 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -91,7 +91,7 @@ upgrade_to = /obj/item/stack/medical/bruise_pack /obj/item/stack/medical/crude_pack/attack(mob/living/M, mob/living/user, target_zone, attack_modifier) - if(..()) + if(..() == ITEM_INTERACT_FAILURE) return ITEM_INTERACT_FAILURE if (ishuman(M)) @@ -160,7 +160,7 @@ upgrade_to = /obj/item/stack/medical/advanced/bruise_pack /obj/item/stack/medical/bruise_pack/attack(mob/living/M, mob/living/user, target_zone, attack_modifier) - if(..()) + if(..() == ITEM_INTERACT_FAILURE) return ITEM_INTERACT_FAILURE if (ishuman(M)) @@ -234,7 +234,7 @@ pickup_sound = 'sound/items/pickup/herb.ogg' /obj/item/stack/medical/ointment/attack(mob/living/M, mob/living/user, target_zone, attack_modifier) - if(..()) + if(..() == ITEM_INTERACT_FAILURE) return ITEM_INTERACT_FAILURE if (ishuman(M))