diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2dfd414e85..fa66daf143 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -495,11 +495,11 @@ /mob/living/carbon/human/proc/canUseHUD() return !(src.stat || IsKnockdown() || IsStun() || src.restrained()) -/mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone, var/penetrate_thick = 0) +/mob/living/carbon/human/can_inject(mob/user, error_msg, target_zone, penetrate_thick = FALSE, bypass_immunity = FALSE) . = 1 // Default to returning true. if(user && !target_zone) target_zone = user.zone_selected - if(has_trait(TRAIT_PIERCEIMMUNE)) + if(has_trait(TRAIT_PIERCEIMMUNE) && !bypass_immunity) . = 0 // If targeting the head, see if the head item is thin enough. // If targeting anything else, see if the wear suit is thin enough. diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index d4111467ba..12439c6b2f 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -14,11 +14,11 @@ /obj/item/reagent_containers/pill/patch/attack(mob/living/L, mob/user) if(ishuman(L)) var/obj/item/bodypart/affecting = L.get_bodypart(check_zone(user.zone_selected)) - if(!L.can_inject(user, 1, affecting)) //like monkey code, thickmaterial stops patches - return if(!affecting) to_chat(user, "The limb is missing!") return + if(!L.can_inject(user, TRUE, user.zone_selected, FALSE, TRUE)) //stopped by clothing, not by species immunity. + return if(affecting.status != BODYPART_ORGANIC) to_chat(user, "Medicine won't work on a robotic limb!") return