diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 4a15c82b74d..c5c1ad66a02 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -540,7 +540,7 @@
/mob/living/carbon/human/proc/canUseHUD()
return !(src.stat || src.weakened || src.stunned || src.restrained())
-/mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone)
+/mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone, var/penetrate_thick = 0)
. = 1 // Default to returning true.
if(user && !target_zone)
target_zone = user.zone_sel.selecting
@@ -549,10 +549,10 @@
// If targeting the head, see if the head item is thin enough.
// If targeting anything else, see if the wear suit is thin enough.
if(above_neck(target_zone))
- if(head && head.flags & THICKMATERIAL)
+ if(head && head.flags & THICKMATERIAL && !penetrate_thick)
. = 0
else
- if(wear_suit && wear_suit.flags & THICKMATERIAL)
+ if(wear_suit && wear_suit.flags & THICKMATERIAL && !penetrate_thick)
. = 0
if(!. && error_msg && user)
// Might need re-wording.
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 171aa224a3c..ebd75a0fb4d 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -21,6 +21,7 @@ Borg Hypospray
var/charge_cost = 50
var/charge_tick = 0
var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
+ var/bypass_protection = 0 //If the hypospray can go through armor or thick material
var/list/datum/reagents/reagent_list = list()
var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin")
@@ -89,7 +90,7 @@ Borg Hypospray
return
if (!( istype(M) ))
return
- if (R.total_volume && M.can_inject(user, 1))
+ if (R.total_volume && M.can_inject(user, 1, penetrate_thick = bypass_protection))
M << "You feel a tiny prick!"
user << "You inject [M] with the injector."
var/fraction = min(amount_per_transfer_from_this/R.total_volume, 1)
@@ -133,6 +134,7 @@ Borg Hypospray
charge_cost = 20
recharge_time = 2
reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine")
+ bypass_protection = 1
/*
Borg Shaker