diff --git a/code/modules/reagents/reagent_containers/medspray.dm b/code/modules/reagents/reagent_containers/medspray.dm
index 54a38eef86..df7c7af225 100644
--- a/code/modules/reagents/reagent_containers/medspray.dm
+++ b/code/modules/reagents/reagent_containers/medspray.dm
@@ -19,8 +19,8 @@
var/can_fill_from_container = TRUE
var/apply_type = PATCH
var/apply_method = "spray"
- var/self_delay = 30
- var/squirt_mode = 0
+ var/self_delay = 3 SECONDS
+ var/squirt_mode = FALSE
var/squirt_amount = 5
/obj/item/reagent_containers/medspray/attack_self(mob/user)
@@ -31,40 +31,51 @@
amount_per_transfer_from_this = initial(amount_per_transfer_from_this)
to_chat(user, "You will now apply the medspray's contents in [squirt_mode ? "short bursts":"extended sprays"]. You'll now use [amount_per_transfer_from_this] units per use.")
-/obj/item/reagent_containers/medspray/attack(mob/M, mob/user, def_zone)
+/obj/item/reagent_containers/medspray/attack(mob/living/L, mob/user, def_zone)
if(!reagents || !reagents.total_volume)
to_chat(user, "[src] is empty!")
return
- if(M == user)
- M.visible_message("[user] attempts to [apply_method] [src] on [user.p_them()]self.")
+ if(ishuman(L))
+ var/obj/item/bodypart/affecting = L.get_bodypart(check_zone(user.zone_selected))
+ if(!affecting)
+ to_chat(user, "The limb is missing!")
+ return
+ if(!L.can_inject(user, TRUE, user.zone_selected, FALSE, TRUE)) //stopped by clothing, like patches
+ return
+ if(affecting.status != BODYPART_ORGANIC)
+ to_chat(user, "Medicine won't work on a robotic limb!")
+ return
+
+ if(L == user)
+ L.visible_message("[user] attempts to [apply_method] [src] on [user.p_them()]self.")
if(self_delay)
- if(!do_mob(user, M, self_delay))
+ if(!do_mob(user, L, self_delay))
return
if(!reagents || !reagents.total_volume)
return
- to_chat(M, "You [apply_method] yourself with [src].")
+ to_chat(L, "You [apply_method] yourself with [src].")
else
- log_combat(user, M, "attempted to apply", src, reagents.log_list())
- M.visible_message("[user] attempts to [apply_method] [src] on [M].", \
- "[user] attempts to [apply_method] [src] on [M].")
- if(!do_mob(user, M))
+ log_combat(user, L, "attempted to apply", src, reagents.log_list())
+ L.visible_message("[user] attempts to [apply_method] [src] on [L].", \
+ "[user] attempts to [apply_method] [src] on [L].")
+ if(!do_mob(user, L))
return
if(!reagents || !reagents.total_volume)
return
- M.visible_message("[user] [apply_method]s [M] down with [src].", \
- "[user] [apply_method]s [M] down with [src].")
+ L.visible_message("[user] [apply_method]s [L] down with [src].", \
+ "[user] [apply_method]s [L] down with [src].")
if(!reagents || !reagents.total_volume)
return
else
- log_combat(user, M, "applied", src, reagents.log_list())
+ log_combat(user, L, "applied", src, reagents.log_list())
playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6)
var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1)
- reagents.reaction(M, apply_type, fraction)
- reagents.trans_to(M, amount_per_transfer_from_this)
+ reagents.reaction(L, apply_type, fraction)
+ reagents.trans_to(L, amount_per_transfer_from_this)
return
/obj/item/reagent_containers/medspray/styptic