From 27fcd61ae0da9e884190bf3573c9e0b78df1d3e2 Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Thu, 28 Nov 2024 14:45:53 -0500 Subject: [PATCH] [s] fix plasmapistol exploit (#27477) --- code/modules/projectiles/guns/energy/special_eguns.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/projectiles/guns/energy/special_eguns.dm b/code/modules/projectiles/guns/energy/special_eguns.dm index ad76cc81ac7..330dc9dfc98 100644 --- a/code/modules/projectiles/guns/energy/special_eguns.dm +++ b/code/modules/projectiles/guns/energy/special_eguns.dm @@ -523,9 +523,17 @@ to_chat(user, "You begin to overload [src].") charging = TRUE charge_failure = FALSE + holder = user + RegisterSignal(holder, COMSIG_CARBON_SWAP_HANDS, PROC_REF(fail_charge)) addtimer(CALLBACK(src, PROC_REF(overload)), 2.5 SECONDS) +/obj/item/gun/energy/plasma_pistol/proc/fail_charge() + SIGNAL_HANDLER // COMSIG_CARBON_SWAP_HANDS + charge_failure = TRUE // No charging 2 guns at once. + UnregisterSignal(holder, COMSIG_CARBON_SWAP_HANDS) + /obj/item/gun/energy/plasma_pistol/proc/overload() + UnregisterSignal(holder, COMSIG_CARBON_SWAP_HANDS) if(ishuman(loc) && !charge_failure) var/mob/living/carbon/C = loc select_fire(C)