From bd1ff7e209fd94d374f8d23cddd2cf79b9547702 Mon Sep 17 00:00:00 2001
From: Migratingcocofruit
<69551563+Migratingcocofruit@users.noreply.github.com>
Date: Mon, 28 Apr 2025 19:14:29 +0300
Subject: [PATCH] fixes syringe runtimes (#29142)
---
code/modules/reagents/reagent_containers.dm | 4 +--
.../reagents/reagent_containers/syringes.dm | 27 ++++++++++++-------
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index fd7526af744..75ba6ad1f63 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -19,8 +19,8 @@
/obj/item/reagent_containers/interact_with_atom(atom/target, mob/living/user, list/modifiers)
if(isliving(target))
user.changeNext_move(CLICK_CD_MELEE)
- if(mob_act(target, user))
- return ITEM_INTERACT_COMPLETE
+ mob_act(target, user)
+ return ITEM_INTERACT_COMPLETE
if(normal_act(target, user))
return ITEM_INTERACT_COMPLETE
return ..()
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 18716b4b127..f5c738f1c1c 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -51,7 +51,7 @@
update_icon()
/obj/item/reagent_containers/syringe/proc/mob_inject(mob/living/L, mob/living/user)
- . = TRUE
+ . = FALSE
if(!reagents.total_volume)
to_chat(user, "[src] is empty.")
@@ -73,8 +73,6 @@
"[user] is trying to inject you!")
if(!do_mob(user, L))
return
- if(!reagents.total_volume)
- return
if(L.reagents.total_volume >= L.reagents.maximum_volume)
return
L.visible_message("[user] injects [L] with the syringe!", \
@@ -87,9 +85,10 @@
add_attack_logs(user, L, "Injected with [name] containing [contained], transfered [amount_per_transfer_from_this] units", reagents.harmless_helper() ? ATKLOG_ALMOSTALL : null)
-/obj/item/reagent_containers/syringe/proc/mob_draw(mob/living/L, mob/living/user)
- . = TRUE
+ return TRUE
+/obj/item/reagent_containers/syringe/proc/mob_draw(mob/living/L, mob/living/user)
+ . = FALSE
var/drawn_amount = reagents.maximum_volume - reagents.total_volume
if(L != user)
L.visible_message("[user] is trying to take a blood sample from [L]!", \
@@ -110,8 +109,10 @@
mode = !mode
update_icon()
+ return TRUE
+
/obj/item/reagent_containers/syringe/proc/normal_draw(atom/target, mob/living/user)
- . = TRUE
+ . = FALSE
if(!target.reagents.total_volume)
to_chat(user, "[target] is empty!")
return
@@ -127,8 +128,14 @@
mode = !mode
update_icon()
+ return TRUE
+
/obj/item/reagent_containers/syringe/proc/normal_inject(atom/target, mob/living/user)
- . = TRUE
+ . = FALSE
+
+ if(!reagents.total_volume)
+ to_chat(user, "[src] is empty.")
+ return
if(isfood(target))
var/list/chemicals = list()
@@ -137,9 +144,11 @@
var/contained_chemicals = english_list(chemicals)
add_attack_logs(user, target, "Injected [amount_per_transfer_from_this]u [contained_chemicals] into food item")
finish_injection(target, user)
+ return
+
+ return TRUE
/obj/item/reagent_containers/syringe/normal_act(atom/target, mob/living/user)
- . = TRUE
if(!target.reagents)
return FALSE
@@ -152,7 +161,7 @@
finish_injection(target, user)
/obj/item/reagent_containers/syringe/mob_act(mob/target, mob/living/user)
- . = TRUE
+ . = FALSE
if(!target.reagents)
return