From 2f1f0da5be3a618c7c8baea0917acc791e168682 Mon Sep 17 00:00:00 2001
From: 4dplanner <3combined@gmail.com>
Date: Tue, 11 Apr 2017 17:25:07 +0400
Subject: [PATCH] Adds another can_inject check just before injecting (#26001)
* Adds another check before injecting/applying medicals stacks
* More helpful comments
* Updates to use extra_checks
---
code/game/objects/items/stacks/medical.dm | 2 +-
code/modules/reagents/reagent_containers/syringes.dm | 5 ++---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 04f7825c999..327afcb2a2b 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -73,7 +73,7 @@
else if(user.gender == FEMALE)
t_himself = "herself"
user.visible_message("[user] starts to apply [src] on [t_himself]...", "You begin applying [src] on yourself...")
- if(!do_mob(user, M, self_delay))
+ if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject,user,1)))
return
user.visible_message("[user] applies [src] on [t_himself].", "You apply [src] on yourself.")
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 46a9d30f8fc..0cb848974af 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -80,7 +80,7 @@
target.visible_message("[user] is trying to take a blood sample from [target]!", \
"[user] is trying to take a blood sample from [target]!")
busy = 1
- if(!do_mob(user, target))
+ if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1)))
busy = 0
return
if(reagents.total_volume >= reagents.maximum_volume)
@@ -123,13 +123,12 @@
if(L != user)
L.visible_message("[user] is trying to inject [L]!", \
"[user] is trying to inject [L]!")
- if(!do_mob(user, L))
+ if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1)))
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!", \
"[user] injects [L] with the syringe!")