mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-14 20:02:43 +00:00
* Fixing updater * Update tools.dm * Update all_nodes.dm * Update medical_designs.dm * shit.jpg * Update medical_designs.dm * Update medical_designs.dm * Apply suggestions from code review Ragolutions' Grammar rework Co-Authored-By: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> * Apply suggestions from code review Reg being the best Co-Authored-By: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> * Huh
346 lines
12 KiB
Plaintext
346 lines
12 KiB
Plaintext
/obj/item/retractor
|
|
name = "retractor"
|
|
desc = "Retracts stuff."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "retractor"
|
|
materials = list(MAT_METAL=6000, MAT_GLASS=3000)
|
|
flags_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
|
|
/obj/item/retractor/adv
|
|
name = "Advanced Retractor"
|
|
desc = "A high-class, premium retractor, featuring precision crafted, silver-plated hook-ends and an electrum handle."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "retractor"
|
|
materials = list(MAT_METAL=6000, MAT_GLASS=3000)
|
|
flags_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
toolspeed = 0.65
|
|
|
|
/obj/item/retractor/augment
|
|
name = "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_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
toolspeed = 0.5
|
|
|
|
/obj/item/hemostat
|
|
name = "hemostat"
|
|
desc = "You think you have seen this before."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "hemostat"
|
|
materials = list(MAT_METAL=5000, MAT_GLASS=2500)
|
|
flags_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
attack_verb = list("attacked", "pinched")
|
|
|
|
/obj/item/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."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "hemostat"
|
|
materials = list(MAT_METAL=5000, MAT_GLASS=2500)
|
|
flags_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
toolspeed = 0.65
|
|
attack_verb = list("attacked", "pinched")
|
|
|
|
/obj/item/hemostat/augment
|
|
name = "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_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
toolspeed = 0.5
|
|
attack_verb = list("attacked", "pinched")
|
|
|
|
|
|
/obj/item/cautery
|
|
name = "cautery"
|
|
desc = "This stops bleeding."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "cautery"
|
|
materials = list(MAT_METAL=2500, MAT_GLASS=750)
|
|
flags_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
attack_verb = list("burnt")
|
|
|
|
/obj/item/cautery/adv
|
|
name = "Electrocautery"
|
|
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!"
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "cautery"
|
|
materials = list(MAT_METAL=2500, MAT_GLASS=750)
|
|
flags_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
toolspeed = 0.5
|
|
attack_verb = list("burnt")
|
|
|
|
/obj/item/cautery/augment
|
|
name = "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_1 = CONDUCT_1
|
|
w_class = WEIGHT_CLASS_TINY
|
|
toolspeed = 0.5
|
|
attack_verb = list("burnt")
|
|
|
|
|
|
/obj/item/surgicaldrill
|
|
name = "surgical drill"
|
|
desc = "You can drill using this item. You dig?"
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "drill"
|
|
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
|
hitsound = 'sound/weapons/circsawhit.ogg'
|
|
materials = list(MAT_METAL=10000, MAT_GLASS=6000)
|
|
flags_1 = CONDUCT_1
|
|
force = 15
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
attack_verb = list("drilled")
|
|
|
|
/obj/item/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."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "drill"
|
|
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
|
hitsound = 'sound/weapons/circsawhit.ogg'
|
|
materials = list(MAT_METAL=10000, MAT_GLASS=6000)
|
|
flags_1 = CONDUCT_1
|
|
force = 13 //Damions are not ment for flesh cutting!
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
toolspeed = 0.65
|
|
attack_verb = list("drilled")
|
|
sharpness = IS_SHARP_ACCURATE // Were making them use a damion for this...
|
|
|
|
/obj/item/surgicaldrill/augment
|
|
name = "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_1 = CONDUCT_1
|
|
force = 10
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
toolspeed = 0.5
|
|
attack_verb = list("drilled")
|
|
|
|
|
|
/obj/item/scalpel
|
|
name = "scalpel"
|
|
desc = "Cut, cut, and once more cut."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "scalpel"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
flags_1 = CONDUCT_1
|
|
force = 10
|
|
w_class = WEIGHT_CLASS_TINY
|
|
throwforce = 5
|
|
throw_speed = 3
|
|
throw_range = 5
|
|
materials = list(MAT_METAL=4000, MAT_GLASS=1000)
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
sharpness = IS_SHARP_ACCURATE
|
|
|
|
/obj/item/scalpel/Initialize()
|
|
. = ..()
|
|
AddComponent(/datum/component/butchering, 80 * toolspeed, 100, 0)
|
|
|
|
/obj/item/scalpel/adv
|
|
name = "Precision Scalpel"
|
|
desc = "A perfectly balanced electrum scalpel with a silicon-coated edge to eliminate wear and tear."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "scalpel"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
flags_1 = CONDUCT_1
|
|
force = 8
|
|
w_class = WEIGHT_CLASS_TINY
|
|
throwforce = 7
|
|
throw_speed = 3
|
|
throw_range = 6
|
|
materials = list(MAT_METAL=4000, MAT_GLASS=1000)
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
toolspeed = 0.65
|
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
|
sharpness = IS_SHARP_ACCURATE
|
|
|
|
/obj/item/scalpel/augment
|
|
name = "scalpel"
|
|
desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "scalpel"
|
|
flags_1 = CONDUCT_1
|
|
force = 10
|
|
w_class = WEIGHT_CLASS_TINY
|
|
throwforce = 5
|
|
throw_speed = 3
|
|
throw_range = 5
|
|
materials = list(MAT_METAL=4000, MAT_GLASS=1000)
|
|
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/scalpel/suicide_act(mob/user)
|
|
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
|
return (BRUTELOSS)
|
|
|
|
|
|
/obj/item/circular_saw
|
|
name = "circular saw"
|
|
desc = "For heavy duty cutting."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "saw"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
hitsound = 'sound/weapons/circsawhit.ogg'
|
|
throwhitsound = 'sound/weapons/pierce.ogg'
|
|
flags_1 = CONDUCT_1
|
|
force = 15
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
throwforce = 9
|
|
throw_speed = 2
|
|
throw_range = 5
|
|
materials = list(MAT_METAL=10000, MAT_GLASS=6000)
|
|
attack_verb = list("attacked", "slashed", "sawed", "cut")
|
|
sharpness = IS_SHARP
|
|
|
|
/obj/item/circular_saw/Initialize()
|
|
. = ..()
|
|
AddComponent(/datum/component/butchering, 40 * toolspeed, 100, 5, 'sound/weapons/circsawhit.ogg') //saws are very accurate and fast at butchering
|
|
|
|
/obj/item/circular_saw/adv
|
|
name = "Diamond-Grit Circular Saw"
|
|
desc = "For those Assistants with REALLY thick skulls."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "saw"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
hitsound = 'sound/weapons/circsawhit.ogg'
|
|
throwhitsound = 'sound/weapons/pierce.ogg'
|
|
flags_1 = CONDUCT_1
|
|
force = 13
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
throwforce = 6
|
|
throw_speed = 1
|
|
throw_range = 3
|
|
materials = list(MAT_METAL=10000, MAT_GLASS=6000)
|
|
attack_verb = list("attacked", "slashed", "sawed", "cut")
|
|
toolspeed = 0.65
|
|
sharpness = IS_SHARP
|
|
|
|
/obj/item/circular_saw/augment
|
|
name = "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_1 = CONDUCT_1
|
|
force = 10
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
throwforce = 9
|
|
throw_speed = 2
|
|
throw_range = 5
|
|
materials = list(MAT_METAL=10000, MAT_GLASS=6000)
|
|
toolspeed = 0.5
|
|
attack_verb = list("attacked", "slashed", "sawed", "cut")
|
|
sharpness = IS_SHARP
|
|
|
|
/obj/item/surgical_drapes
|
|
name = "surgical drapes"
|
|
desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "surgical_drapes"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
attack_verb = list("slapped")
|
|
|
|
/obj/item/surgical_drapes/attack(mob/living/M, mob/user)
|
|
if(!attempt_initiate_surgery(src, M, user))
|
|
..()
|
|
|
|
/obj/item/organ_storage //allows medical cyborgs to manipulate organs without hands
|
|
name = "organ storage bag"
|
|
desc = "A container for holding body parts."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "evidenceobj"
|
|
|
|
/obj/item/organ_storage/afterattack(obj/item/I, mob/user, proximity)
|
|
. = ..()
|
|
if(!proximity)
|
|
return
|
|
if(contents.len)
|
|
to_chat(user, "<span class='notice'>[src] already has something inside it.</span>")
|
|
return
|
|
if(!isorgan(I) && !isbodypart(I))
|
|
to_chat(user, "<span class='notice'>[src] can only hold body parts!</span>")
|
|
return
|
|
|
|
user.visible_message("[user] puts [I] into [src].", "<span class='notice'>You put [I] inside [src].</span>")
|
|
icon_state = "evidence"
|
|
var/xx = I.pixel_x
|
|
var/yy = I.pixel_y
|
|
I.pixel_x = 0
|
|
I.pixel_y = 0
|
|
var/image/img = image("icon"=I, "layer"=FLOAT_LAYER)
|
|
img.plane = FLOAT_PLANE
|
|
I.pixel_x = xx
|
|
I.pixel_y = yy
|
|
add_overlay(img)
|
|
add_overlay("evidence")
|
|
desc = "An organ storage container holding [I]."
|
|
I.forceMove(src)
|
|
w_class = I.w_class
|
|
|
|
/obj/item/organ_storage/attack_self(mob/user)
|
|
if(contents.len)
|
|
var/obj/item/I = contents[1]
|
|
user.visible_message("[user] dumps [I] from [src].", "<span class='notice'>You dump [I] from [src].</span>")
|
|
cut_overlays()
|
|
I.forceMove(get_turf(src))
|
|
icon_state = "evidenceobj"
|
|
desc = "A container for holding body parts."
|
|
else
|
|
to_chat(user, "[src] is empty.")
|
|
return
|
|
|
|
/obj/item/surgical_processor //allows medical cyborgs to scan and initiate advanced surgeries
|
|
name = "\improper Surgical Processor"
|
|
desc = "A device for scanning and initiating surgeries from a disk or operating computer."
|
|
icon = 'icons/obj/device.dmi'
|
|
icon_state = "spectrometer"
|
|
item_flags = NOBLUDGEON
|
|
var/list/advanced_surgeries = list()
|
|
|
|
/obj/item/surgical_processor/afterattack(obj/item/O, mob/user, proximity)
|
|
. = ..()
|
|
if(!proximity)
|
|
return
|
|
if(istype(O, /obj/item/disk/surgery))
|
|
to_chat(user, "<span class='notice'>You load the surgery protocol from [O] into [src].</span>")
|
|
var/obj/item/disk/surgery/D = O
|
|
if(do_after(user, 10, target = O))
|
|
advanced_surgeries |= D.surgeries
|
|
return TRUE
|
|
if(istype(O, /obj/machinery/computer/operating))
|
|
to_chat(user, "<span class='notice'>You copy surgery protocols from [O] into [src].</span>")
|
|
var/obj/machinery/computer/operating/OC = O
|
|
if(do_after(user, 10, target = O))
|
|
advanced_surgeries |= OC.advanced_surgeries
|
|
return TRUE
|
|
return
|