From fd59456a73ff10875f449414f06cd304e96e6ca1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 5 Aug 2017 12:27:12 -0500 Subject: [PATCH] [MIRROR] Adds Surgical toolarms to R&D, makes them less robust (#2197) * Adds Surgical toolarms to R&D, makes them less robust * Delete medical_designs.dm * Delete augments_arms.dm * Delete tools.dm --- .../research/designs/medical_designs.dm | 11 +++ code/modules/surgery/organs/augments_arms.dm | 3 +- code/modules/surgery/tools.dm | 95 ++++++++++++++++++- 3 files changed, 105 insertions(+), 4 deletions(-) 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