diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 0cd18e12..3e731854 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -574,9 +574,39 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + ///////////////////// //Adv Surgery Tools// ///////////////////// +/datum/design/laserscalpel + name = "Laser Scalpel" + desc = "A laser scalpel used for precise cutting." + id = "laserscalpel" + build_path = /obj/item/scalpel/advanced + build_type = PROTOLATHE + materials = list(MAT_METAL = 6000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 1500, MAT_DIAMOND = 200, MAT_TITANIUM = 4000) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/mechanicalpinches + name = "Mechanical Pinches" + desc = "These pinches can be either used as retractor or hemostat." + id = "mechanicalpinches" + build_path = /obj/item/retractor/advanced + build_type = PROTOLATHE + materials = list(MAT_METAL = 12000, MAT_GLASS = 4000, MAT_SILVER = 4000, MAT_TITANIUM = 5000) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/searingtool + name = "Searing Tool" + desc = "Used to mend tissue togheter." + id = "searingtool" + build_path = /obj/item/cautery/advanced + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_PLASMA = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 3000) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE /datum/design/drapes name = "Plastic Drapes" @@ -588,65 +618,6 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE -/datum/design/retractor_adv - name = "Advanced Retractor" - desc = "A high-class, premium retractor, featuring precision crafted, silver-plated hook-ends and an electrum handle." - id = "retractor_adv" - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_GOLD = 1000) - build_path = /obj/item/retractor/adv - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/hemostat_adv - name = "Advanced Hemostat" - desc = "An exceptionally fine pair of arterial forceps. These appear to be plated in electrum and feel soft to the touch." - id = "hemostat_adv" - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1000, MAT_GOLD = 1500) - build_path = /obj/item/hemostat/adv - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/cautery_adv - name = "Electrocautery" //This is based on real-life science. - desc = "A high-tech unipolar Electrocauter. This tiny device contains an extremely powerful microbattery that uses arcs of electricity to painlessly sear wounds shut. It seems to recharge with the user's body-heat. Wow!" - id = "cautery_adv" - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1000, MAT_GOLD = 1500) - build_path = /obj/item/cautery/adv - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/surgicaldrill_adv - name = "Surgical Autodrill" - desc = "With a diamond tip and built-in depth and safety sensors, this drill alerts the user before overpenetrating a patient's skull or tooth. There also appears to be a disable switch." - id = "surgicaldrill_adv" - build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 2500, MAT_SILVER = 6000, MAT_GOLD = 5500, MAT_DIAMOND = 3500) - build_path = /obj/item/surgicaldrill/adv - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/scalpel_adv - name = "Precision Scalpel" - desc = "A perfectly balanced electrum scalpel with a silicon-coated edge to eliminate wear and tear." - id = "scalpel_adv" - build_type = PROTOLATHE - materials = list(MAT_METAL = 1500, MAT_GLASS = 1500, MAT_SILVER = 4000, MAT_GOLD = 2500) - build_path = /obj/item/scalpel/adv - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/circular_saw_adv - name = "Diamond-Grit Circular Saw" - desc = "For those Assistants with REALLY thick skulls." - id = "circular_saw_adv" - build_type = PROTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 6000, MAT_SILVER = 6500, MAT_GOLD = 7500, MAT_DIAMOND = 4500) - build_path = /obj/item/circular_saw/adv - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE ///////////////////////////////////////// //////////Alien Surgery Tools//////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 389a5650..62209105 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -96,7 +96,7 @@ display_name = "Advanced Surgery Tools" description = "Refined and improved redesigns for the run-of-the-mill medical utensils." prereq_ids = list("adv_biotech", "adv_surgery") - design_ids = list("drapes", "retractor_adv", "hemostat_adv", "cautery_adv", "surgicaldrill_adv", "scalpel_adv", "circular_saw_adv") + design_ids = list("drapes", "laserscalpel", "mechanicalpinches", "searingtool" ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index e48e7f88..0d0b361c 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -332,7 +332,7 @@ icon_state = "spectrometer" item_flags = NOBLUDGEON var/list/advanced_surgeries = list() - + /obj/item/surgical_processor/afterattack(obj/item/O, mob/user, proximity) . = ..() if(!proximity) @@ -350,3 +350,115 @@ advanced_surgeries |= OC.advanced_surgeries return TRUE return + +/obj/item/scalpel/advanced + name = "laser scalpel" + desc = "An advanced scalpel which uses laser technology to cut. It's set to scalpel mode." + icon = 'icons/obj/surgery.dmi' + icon_state = "scalpel_a" + hitsound = 'sound/weapons/blade1.ogg' + force = 16 + toolspeed = 0.7 + light_color = LIGHT_COLOR_GREEN + +/obj/item/scalpel/advanced/Initialize() + . = ..() + set_light(1) + +/obj/item/scalpel/advanced/attack_self(mob/user) + playsound(get_turf(user),'sound/machines/click.ogg',50,TRUE) + var/obj/item/circular_saw/advanced/saw = new /obj/item/circular_saw/advanced(drop_location()) + to_chat(user, "You incease the power, now it can cut bones.") + qdel(src) + user.put_in_active_hand(saw) + +/obj/item/circular_saw/advanced + name = "laser scalpel" + desc = "An advanced scalpel which uses laser technology to cut. It's set to saw mode." + icon = 'icons/obj/surgery.dmi' + icon_state = "saw_a" + hitsound = 'sound/weapons/blade1.ogg' + force = 17 + toolspeed = 0.7 + sharpness = IS_SHARP_ACCURATE + light_color = LIGHT_COLOR_GREEN + +/obj/item/circular_saw/advanced/Initialize() + . = ..() + set_light(2) + +/obj/item/circular_saw/advanced/attack_self(mob/user) + playsound(get_turf(user),'sound/machines/click.ogg',50,TRUE) + var/obj/item/scalpel/advanced/scalpel = new /obj/item/scalpel/advanced(drop_location()) + to_chat(user, "You lower the power.") + qdel(src) + user.put_in_active_hand(scalpel) + +/obj/item/retractor/advanced + name = "mechanical pinches" + desc = "An agglomerate of rods and gears. It resembles a retractor." + icon = 'icons/obj/surgery.dmi' + icon_state = "retractor_a" + toolspeed = 0.7 + +/obj/item/retractor/advanced/attack_self(mob/user) + playsound(get_turf(user),'sound/items/change_drill.ogg',50,TRUE) + var/obj/item/hemostat/advanced/hemostat = new /obj/item/hemostat/advanced(drop_location()) + to_chat(user, "You set the [src] to hemostat mode.") + qdel(src) + user.put_in_active_hand(hemostat) + +/obj/item/hemostat/advanced + name = "mechanical pinches" + desc = "An agglomerate of rods and gears. It resembles an hemostat." + icon = 'icons/obj/surgery.dmi' + icon_state = "hemostat_a" + toolspeed = 0.7 + +/obj/item/hemostat/advanced/attack_self(mob/user) + playsound(get_turf(user),'sound/items/change_drill.ogg',50,TRUE) + var/obj/item/retractor/advanced/retractor = new /obj/item/retractor/advanced(drop_location()) + to_chat(user, "You set the [src] to retractor mode.") + qdel(src) + user.put_in_active_hand(retractor) + +/obj/item/surgicaldrill/advanced + name = "searing tool" + desc = "It projects a high power laser used for medical application. It's set to drilling mode." + icon = 'icons/obj/surgery.dmi' + icon_state = "surgicaldrill_a" + hitsound = 'sound/items/welder.ogg' + toolspeed = 0.7 + light_color = LIGHT_COLOR_RED + +/obj/item/surgicaldrill/advanced/Initialize() + . = ..() + set_light(1) + +/obj/item/surgicaldrill/advanced/attack_self(mob/user) + playsound(get_turf(user),'sound/weapons/tap.ogg',50,TRUE) + var/obj/item/cautery/advanced/cautery = new /obj/item/cautery/advanced(drop_location()) + to_chat(user, "You dilate the lenses, setting it to mending mode.") + qdel(src) + user.put_in_active_hand(cautery) + +/obj/item/cautery/advanced + name = "searing tool" + desc = "It projects a high power laser used for medical application. It's set to mending mode." + icon = 'icons/obj/surgery.dmi' + icon_state = "cautery_a" + hitsound = 'sound/items/welder2.ogg' + force = 15 + toolspeed = 0.7 + light_color = LIGHT_COLOR_RED + +/obj/item/cautery/advanced/Initialize() + . = ..() + set_light(1) + +/obj/item/cautery/advanced/attack_self(mob/user) + playsound(get_turf(user),'sound/items/welderdeactivate.ogg',50,TRUE) + var/obj/item/surgicaldrill/advanced/surgicaldrill = new /obj/item/surgicaldrill/advanced(drop_location()) + to_chat(user, "You focus the lensess, it is now set to drilling mode.") + qdel(src) + user.put_in_active_hand(surgicaldrill) diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index eed8ee64..4944a2e5 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ