diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 8b90339b02..de511d6b65 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -212,6 +212,17 @@
build_path = /obj/item/organ/cyberimp/mouth/breathing_tube
category = list("Misc", "Medical Designs")
+/datum/design/cyberimp_surgical
+ name = "Surgical Arm Implant"
+ desc = "A set of surgical tools hidden behind a concealed panel on the user's arm."
+ id = "ci-surgey"
+ req_tech = list("materials" = 3, "engineering" = 3, "biotech" = 3, "programming" = 2, "magnets" = 3)
+ build_type = PROTOLATHE | MECHFAB
+ materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
+ construction_time = 200
+ build_path = /obj/item/organ/cyberimp/arm/surgery
+ category = list("Misc", "Medical Designs")
+
/datum/design/cyberimp_toolset
name = "Toolset Arm Implant"
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm."
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 69cf8aa96b..dfc0c658ce 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -85,7 +85,6 @@
holder.flags |= NODROP
holder.resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
holder.slot_flags = null
- holder.w_class = WEIGHT_CLASS_HUGE
holder.materials = null
if(istype(holder, /obj/item/device/assembly/flash/armimplant))
@@ -234,5 +233,5 @@
/obj/item/organ/cyberimp/arm/surgery
name = "surgical toolset implant"
desc = "A set of surgical tools hidden behind a concealed panel on the user's arm"
- contents = newlist(/obj/item/weapon/retractor, /obj/item/weapon/hemostat, /obj/item/weapon/cautery, /obj/item/weapon/surgicaldrill, /obj/item/weapon/scalpel, /obj/item/weapon/circular_saw, /obj/item/weapon/surgical_drapes)
+ contents = newlist(/obj/item/weapon/retractor/augment, /obj/item/weapon/hemostat/augment, /obj/item/weapon/cautery/augment, /obj/item/weapon/surgicaldrill/augment, /obj/item/weapon/scalpel/augment, /obj/item/weapon/circular_saw/augment, /obj/item/weapon/surgical_drapes)
origin_tech = "materials=3;engineering=3;biotech=3;programming=2;magnets=3"
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index 3ef91fcef8..5686389dea 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -9,6 +9,18 @@
origin_tech = "materials=1;biotech=1"
+/obj/item/weapon/retractor/augment
+ name = "toolarm retractor"
+ desc = "Micro-mechanical manipulator for retracting stuff."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "retractor"
+ materials = list(MAT_METAL=6000, MAT_GLASS=3000)
+ flags = CONDUCT
+ w_class = WEIGHT_CLASS_TINY
+ origin_tech = "materials=1;biotech=1"
+ toolspeed = 0.5
+
+
/obj/item/weapon/hemostat
name = "hemostat"
desc = "You think you have seen this before."
@@ -21,6 +33,19 @@
attack_verb = list("attacked", "pinched")
+/obj/item/weapon/hemostat/augment
+ name = "toolarm hemostat"
+ desc = "Tiny servos power a pair of pincers to stop bleeding."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "hemostat"
+ materials = list(MAT_METAL=5000, MAT_GLASS=2500)
+ flags = CONDUCT
+ w_class = WEIGHT_CLASS_TINY
+ origin_tech = "materials=1;biotech=1"
+ toolspeed = 0.5
+ attack_verb = list("attacked", "pinched")
+
+
/obj/item/weapon/cautery
name = "cautery"
desc = "This stops bleeding."
@@ -33,6 +58,19 @@
attack_verb = list("burnt")
+/obj/item/weapon/cautery/augment
+ name = "toolarm cautery"
+ desc = "A heated element that cauterizes wounds."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "cautery"
+ materials = list(MAT_METAL=2500, MAT_GLASS=750)
+ flags = CONDUCT
+ w_class = WEIGHT_CLASS_TINY
+ origin_tech = "materials=1;biotech=1"
+ toolspeed = 0.5
+ attack_verb = list("burnt")
+
+
/obj/item/weapon/surgicaldrill
name = "surgical drill"
desc = "You can drill using this item. You dig?"
@@ -48,6 +86,22 @@
origin_tech = "materials=1;biotech=1"
attack_verb = list("drilled")
+
+/obj/item/weapon/surgicaldrill/augment
+ name = "toolarm surgical drill"
+ desc = "Effectively a small power drill contained within your arm, edges dulled to prevent tissue damage. May or may not pierce the heavens."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "drill"
+ hitsound = 'sound/weapons/circsawhit.ogg'
+ materials = list(MAT_METAL=10000, MAT_GLASS=6000)
+ flags = CONDUCT
+ force = 10
+ w_class = WEIGHT_CLASS_SMALL
+ origin_tech = "materials=1;biotech=1"
+ toolspeed = 0.5
+ attack_verb = list("drilled")
+
+
/obj/item/weapon/scalpel
name = "scalpel"
desc = "Cut, cut, and once more cut."
@@ -67,6 +121,24 @@
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP_ACCURATE
+/obj/item/weapon/scalpel/augment
+ name = "toolarm scalpel"
+ desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "scalpel"
+ flags = CONDUCT
+ force = 10
+ w_class = WEIGHT_CLASS_TINY
+ throwforce = 5
+ throw_speed = 3
+ throw_range = 5
+ materials = list(MAT_METAL=4000, MAT_GLASS=1000)
+ origin_tech = "materials=1;biotech=1"
+ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+ toolspeed = 0.5
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ sharpness = IS_SHARP_ACCURATE
+
/obj/item/weapon/scalpel/suicide_act(mob/user)
user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
@@ -92,6 +164,25 @@
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharpness = IS_SHARP
+/obj/item/weapon/circular_saw/augment
+ name = "toolarm circular saw"
+ desc = "A small but very fast spinning saw. Edges dulled to prevent accidental cutting inside of the surgeon."
+ icon = 'icons/obj/surgery.dmi'
+ icon_state = "saw"
+ hitsound = 'sound/weapons/circsawhit.ogg'
+ throwhitsound = 'sound/weapons/pierce.ogg'
+ flags = CONDUCT
+ force = 10
+ w_class = WEIGHT_CLASS_SMALL
+ throwforce = 9
+ throw_speed = 2
+ throw_range = 5
+ materials = list(MAT_METAL=10000, MAT_GLASS=6000)
+ origin_tech = "biotech=1;combat=1"
+ toolspeed = 0.5
+ attack_verb = list("attacked", "slashed", "sawed", "cut")
+ sharpness = IS_SHARP
+
/obj/item/weapon/surgical_drapes
name = "surgical drapes"
desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control."
@@ -104,7 +195,7 @@
/obj/item/weapon/surgical_drapes/attack(mob/living/M, mob/user)
if(!attempt_initiate_surgery(src, M, user))
..()
-
+
/obj/item/weapon/organ_storage //allows medical cyborgs to manipulate organs without hands
name = "organ storage bag"
desc = "A container for holding body parts."
@@ -120,7 +211,7 @@
if(!isorgan(I) && !isbodypart(I))
to_chat(user, "[src] can only hold body parts!")
return
-
+
user.visible_message("[user] puts [I] into [src].", "You put [I] inside [src].")
icon_state = "evidence"
var/xx = I.pixel_x