mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-09 17:02:00 +00:00
rscadd: "The cookie snack now contains cookies, like the mint and gum packs. They've also been added to the rations box selection."
rscadd: "Gum packs, mint packs and the cookie snack from the vending machines visibly open when clicked on."
rscadd: "Gum packs, mint packs and the cookie snack can be crumpled up when empty. If you really wanted to, you still can crumple it with things inside, so long as you're in harm intent."
rscadd: "Odd boxes, such as candle boxes, donut boxes, crayon boxes and egg boxes can be folded and unfolded from cardboard sheets."
rscadd: "Donut boxes, egg cartons and cigarette packets visibly open when clicked on. Alt-click to close."
rscadd: "Mints actually have a proper taste description now."
291 lines
8.4 KiB
Plaintext
291 lines
8.4 KiB
Plaintext
/* Surgery Tools
|
|
* Contains:
|
|
* Retractor
|
|
* Hemostat
|
|
* Cautery
|
|
* Surgical Drill
|
|
* Scalpel
|
|
* Circular Saw
|
|
* Tray
|
|
*/
|
|
/obj/item/surgery/
|
|
name = "surgery tool"
|
|
desc = "hey, you aren't supposed to have this"
|
|
icon = 'icons/obj/surgery.dmi'
|
|
w_class = 2.0
|
|
drop_sound = 'sound/items/drop/weldingtool.ogg'
|
|
pickup_sound = 'sound/items/pickup/weldingtool.ogg'
|
|
item_icons = list(
|
|
slot_l_hand_str = 'icons/mob/items/lefthand_medical.dmi',
|
|
slot_r_hand_str = 'icons/mob/items/righthand_medical.dmi',
|
|
)
|
|
|
|
/*
|
|
* Retractor
|
|
*/
|
|
/obj/item/surgery/retractor
|
|
name = "retractor"
|
|
desc = "Retracts stuff."
|
|
icon_state = "retractor"
|
|
item_state = "retractor"
|
|
matter = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 5000)
|
|
flags = CONDUCT
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
|
|
|
/*
|
|
* Hemostat
|
|
*/
|
|
/obj/item/surgery/hemostat
|
|
name = "hemostat"
|
|
desc = "You think you have seen this before."
|
|
icon_state = "hemostat"
|
|
item_state = "hemostat"
|
|
matter = list(DEFAULT_WALL_MATERIAL = 5000, MATERIAL_GLASS = 2500)
|
|
flags = CONDUCT
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
|
attack_verb = list("attacked", "pinched")
|
|
|
|
/*
|
|
* Cautery
|
|
*/
|
|
/obj/item/surgery/cautery
|
|
name = "cautery"
|
|
desc = "This stops bleeding."
|
|
icon_state = "cautery"
|
|
item_state = "cautery"
|
|
matter = list(DEFAULT_WALL_MATERIAL = 5000, MATERIAL_GLASS = 2500)
|
|
flags = CONDUCT
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
|
attack_verb = list("burnt")
|
|
|
|
/*
|
|
* Surgical Drill
|
|
*/
|
|
/obj/item/surgery/surgicaldrill
|
|
name = "surgical drill"
|
|
desc = "You can drill using this item. You dig?"
|
|
icon_state = "drill"
|
|
item_state = "drill"
|
|
hitsound = 'sound/weapons/saw/circsawhit.ogg'
|
|
matter = list(DEFAULT_WALL_MATERIAL = 15000, MATERIAL_GLASS = 10000)
|
|
flags = CONDUCT
|
|
force = 15.0
|
|
w_class = 3
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
|
attack_verb = list("drilled")
|
|
drop_sound = 'sound/items/drop/accessory.ogg'
|
|
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
|
|
|
/*
|
|
* Scalpel
|
|
*/
|
|
/obj/item/surgery/scalpel
|
|
name = "scalpel"
|
|
desc = "Cut, cut, and once more cut."
|
|
icon_state = "scalpel"
|
|
item_state = "scalpel"
|
|
flags = CONDUCT
|
|
force = 10.0
|
|
sharp = 1
|
|
edge = 1
|
|
w_class = 1
|
|
slot_flags = SLOT_EARS
|
|
throwforce = 5.0
|
|
throw_speed = 3
|
|
throw_range = 5
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
|
matter = list(DEFAULT_WALL_MATERIAL = 10000, MATERIAL_GLASS = 5000)
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
drop_sound = 'sound/items/drop/knife.ogg'
|
|
pickup_sound = 'sound/items/pickup/knife.ogg'
|
|
|
|
/*
|
|
* Researchable Scalpels
|
|
*/
|
|
/obj/item/surgery/scalpel/laser1
|
|
name = "laser scalpel"
|
|
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks basic and could be improved."
|
|
icon_state = "scalpel_laser1"
|
|
damtype = "fire"
|
|
|
|
/obj/item/surgery/scalpel/laser2
|
|
name = "laser scalpel"
|
|
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks somewhat advanced."
|
|
icon_state = "scalpel_laser2"
|
|
damtype = "fire"
|
|
force = 12.0
|
|
|
|
/obj/item/surgery/scalpel/laser3
|
|
name = "laser scalpel"
|
|
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks to be the pinnacle of precision energy cutlery!"
|
|
icon_state = "scalpel_laser3"
|
|
damtype = "fire"
|
|
force = 15.0
|
|
|
|
/obj/item/surgery/scalpel/manager
|
|
name = "incision management system"
|
|
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision allowing for the immediate commencement of therapeutic steps."
|
|
icon_state = "scalpel_manager"
|
|
force = 7.5
|
|
|
|
/*
|
|
* Circular Saw
|
|
*/
|
|
/obj/item/surgery/circular_saw
|
|
name = "circular saw"
|
|
desc = "For heavy duty cutting."
|
|
icon_state = "saw"
|
|
item_state = "scalpel"
|
|
hitsound = 'sound/weapons/saw/circsawhit.ogg'
|
|
flags = CONDUCT
|
|
force = 15.0
|
|
w_class = 3
|
|
throwforce = 9.0
|
|
throw_speed = 3
|
|
throw_range = 5
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
|
matter = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GLASS = 10000)
|
|
attack_verb = list("attacked", "slashed", "sawed", "cut")
|
|
sharp = 1
|
|
edge = 1
|
|
drop_sound = 'sound/items/drop/accessory.ogg'
|
|
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
|
|
|
//misc, formerly from code/defines/weapons.dm
|
|
/obj/item/surgery/bonegel
|
|
name = "bone gel"
|
|
icon_state = "bone-gel"
|
|
item_state = "bone-gel"
|
|
force = 0
|
|
throwforce = 1.0
|
|
drop_sound = 'sound/items/drop/bottle.ogg'
|
|
pickup_sound = 'sound/items/pickup/bottle.ogg'
|
|
|
|
/obj/item/surgery/FixOVein
|
|
name = "FixOVein"
|
|
icon_state = "fixovein"
|
|
item_state = "fixovein"
|
|
force = 0
|
|
throwforce = 1.0
|
|
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 3)
|
|
var/usage_amount = 10
|
|
drop_sound = 'sound/items/drop/accessory.ogg'
|
|
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
|
|
|
/obj/item/surgery/bonesetter
|
|
name = "bone setter"
|
|
icon_state = "bonesetter"
|
|
item_state = "bonesetter"
|
|
force = 8.0
|
|
throwforce = 9.0
|
|
throw_speed = 3
|
|
throw_range = 5
|
|
attack_verb = list("attacked", "hit", "bludgeoned")
|
|
|
|
/obj/item/storage/box/fancy/tray
|
|
name = "surgery tray"
|
|
desc = "A tray of surgical tools."
|
|
icon = 'icons/obj/surgery.dmi'
|
|
icon_state = "surgerytray"
|
|
use_sound = null
|
|
drop_sound = 'sound/items/drop/axe.ogg'
|
|
pickup_sound = 'sound/items/pickup/axe.ogg'
|
|
force = 2
|
|
w_class = 5.0
|
|
storage_slots = 10
|
|
attack_verb = list("slammed")
|
|
icon_type = "surgery tool"
|
|
storage_type = "tray"
|
|
can_hold = list(
|
|
/obj/item/surgery/bonesetter,
|
|
/obj/item/surgery/cautery,
|
|
/obj/item/surgery/circular_saw,
|
|
/obj/item/surgery/hemostat,
|
|
/obj/item/surgery/retractor,
|
|
/obj/item/surgery/scalpel,
|
|
/obj/item/surgery/surgicaldrill,
|
|
/obj/item/surgery/bonegel,
|
|
/obj/item/surgery/FixOVein,
|
|
/obj/item/stack/medical/advanced/bruise_pack,
|
|
/obj/item/stack/nanopaste
|
|
)
|
|
|
|
starts_with = list(
|
|
/obj/item/surgery/bonesetter = 1,
|
|
/obj/item/surgery/cautery = 1,
|
|
/obj/item/surgery/circular_saw = 1,
|
|
/obj/item/surgery/hemostat = 1,
|
|
/obj/item/surgery/retractor = 1,
|
|
/obj/item/surgery/scalpel = 1,
|
|
/obj/item/surgery/surgicaldrill = 1,
|
|
/obj/item/surgery/bonegel = 1,
|
|
/obj/item/surgery/FixOVein = 1,
|
|
/obj/item/stack/medical/advanced/bruise_pack = 1,
|
|
)
|
|
|
|
/obj/item/storage/box/fancy/tray/update_icon()
|
|
cut_overlays()
|
|
|
|
var/list/types_and_overlays = list(
|
|
/obj/item/surgery/bonesetter = "tray_bonesetter",
|
|
/obj/item/surgery/cautery = "tray_cautery",
|
|
/obj/item/surgery/circular_saw = "tray_saw",
|
|
/obj/item/surgery/hemostat = "tray_hemostat",
|
|
/obj/item/surgery/retractor = "tray_retractor",
|
|
/obj/item/surgery/scalpel = "tray_scalpel",
|
|
/obj/item/surgery/scalpel/laser1 = "tray_scalpel_laser1",
|
|
/obj/item/surgery/scalpel/laser2 = "tray_scalpel_laser2",
|
|
/obj/item/surgery/scalpel/laser3 = "tray_scalpel_laser3",
|
|
/obj/item/surgery/scalpel/manager = "tray_scalpel_manager",
|
|
/obj/item/surgery/surgicaldrill = "tray_drill",
|
|
/obj/item/surgery/bonegel = "tray_bone-gel",
|
|
/obj/item/surgery/FixOVein = "tray_fixovein",
|
|
/obj/item/stack/medical/advanced/bruise_pack = "tray_bruise_pack"
|
|
)
|
|
for (var/obj/item/W in contents)
|
|
if (types_and_overlays[W.type])
|
|
add_overlay(types_and_overlays[W.type])
|
|
types_and_overlays -= W.type
|
|
|
|
/obj/item/storage/box/fancy/tray/fill()
|
|
. = ..()
|
|
update_icon()
|
|
|
|
/obj/item/storage/box/fancy/tray/attackby(obj/item/W as obj, mob/user as mob)
|
|
..()
|
|
update_icon()
|
|
|
|
/obj/item/storage/box/fancy/tray/attack_hand(mob/user as mob)
|
|
if(ishuman(user))
|
|
src.open(user)
|
|
|
|
/obj/item/storage/box/fancy/tray/MouseDrop(mob/user as mob)
|
|
if((user && (!use_check(user))) && (user.contents.Find(src) || in_range(src, user)))
|
|
if(ishuman(user) && !user.get_active_hand())
|
|
var/mob/living/carbon/human/H = user
|
|
var/obj/item/organ/external/temp = H.organs_by_name[BP_R_HAND]
|
|
|
|
if (H.hand)
|
|
temp = H.organs_by_name[BP_L_HAND]
|
|
if(temp && !temp.is_usable())
|
|
to_chat(user, "<span class='notice'>You try to move your [temp.name], but cannot!</span>")
|
|
return
|
|
|
|
to_chat(user, "<span class='notice'>You pick up the [src].</span>")
|
|
pixel_x = 0
|
|
pixel_y = 0
|
|
forceMove(get_turf(user))
|
|
user.put_in_hands(src)
|
|
|
|
return
|
|
|
|
/obj/item/storage/box/fancy/tray/attack(mob/living/M as mob, mob/user as mob, var/target_zone)
|
|
if(..() && contents.len)
|
|
spill(3, get_turf(M))
|
|
playsound(M, 'sound/items/trayhit2.ogg', 50, 1) //sound playin' again
|
|
user.visible_message(SPAN_DANGER("[user] smashes \the [src] into [M], causing it to spill its contents across the area!"))
|
|
|
|
/obj/item/storage/box/fancy/tray/throw_impact(atom/hit_atom)
|
|
..()
|
|
spill(3, src.loc)
|