diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index 71b84648d5..f36e2067ee 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -180,7 +180,8 @@
desc = "A specialized grasping tool used to preserve and manipulate organic material."
can_hold = list(
- /obj/item/organ
+ /obj/item/organ,
+ /obj/item/device/nif //NIFs can be slapped in during surgery
)
/obj/item/weapon/gripper/no_use/organ/Entered(var/atom/movable/AM)
@@ -208,7 +209,8 @@
/obj/item/organ/external,
/obj/item/organ/internal/brain, //to insert into MMIs,
/obj/item/organ/internal/cell,
- /obj/item/organ/internal/eyes/robot
+ /obj/item/organ/internal/eyes/robot,
+ /obj/item/device/nif //NIFs can be slapped in during surgery
)
/obj/item/weapon/gripper/no_use/mech
diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm
index f1c0af37f4..402cd0a262 100644
--- a/code/modules/surgery/implant.dm
+++ b/code/modules/surgery/implant.dm
@@ -124,7 +124,14 @@
if(..())
var/obj/item/organ/external/affected = target.get_organ(target_zone)
if(istype(user,/mob/living/silicon/robot))
- return
+ if(istype(tool, /obj/item/weapon/gripper))
+ var/obj/item/weapon/gripper/Gripper = tool
+ if(Gripper.wrapped)
+ tool = Gripper.wrapped
+ else
+ return
+ else
+ return
if(affected && affected.cavity)
var/total_volume = tool.w_class
for(var/obj/item/I in affected.implants)
@@ -135,6 +142,9 @@
/datum/surgery_step/cavity/place_item/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
+ if(isrobot(user) && istype(tool, /obj/item/weapon/gripper))
+ var/obj/item/weapon/gripper/G = tool
+ tool = G.wrapped
user.visible_message("[user] starts putting \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
"You start putting \the [tool] inside [target]'s [get_cavity(affected)] cavity." ) //Nobody will probably ever see this, but I made these two blue. ~CK
target.custom_pain("The pain in your chest is living hell!",1)
@@ -142,7 +152,12 @@
/datum/surgery_step/cavity/place_item/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
-
+ if(isrobot(user) && istype(tool, /obj/item/weapon/gripper))
+ var/obj/item/weapon/gripper/G = tool
+ tool = G.wrapped
+ G.drop_item()
+ else
+ user.drop_item()
user.visible_message("[user] puts \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
"You put \the [tool] inside [target]'s [get_cavity(affected)] cavity." )
if (tool.w_class > get_max_wclass(affected)/2 && prob(50) && (affected.robotic < ORGAN_ROBOT))
@@ -150,7 +165,6 @@
var/datum/wound/internal_bleeding/I = new (10)
affected.wounds += I
affected.owner.custom_pain("You feel something rip in your [affected.name]!", 1)
- user.drop_item()
affected.implants += tool
tool.loc = affected
if(istype(tool,/obj/item/device/nif)){var/obj/item/device/nif/N = tool;N.implant(target)} //VOREStation Add - NIF support