Files
Bubberstation/code/game/objects/items/stacks/tape.dm
T
3c0159b143 replaces surgical and coroner duffels with surgery trays and medical carts, resprites razor (#77975)
## About The Pull Request
replaces all instances of surgical duffels with surgery trays, and all
coroner duffels with morgue surgical trays.
they contain about the same items, with surgical trays/carts also having
bone gel and tape, since their list of holdable items is much more
limited.
the surgery tray is a diagetic storage unit that displays any surgery
tool it's holding in a small, almost world-state esque form on top of
it. it can be carried around by dragging it on to yourself, but it will
slow you down like an unzipped duffel would. it can also be deployed by
activating it, and pulled around, but it will roll noisily in the
process.
currently, all tool tiers are supported - from alien, to advanced, to
cruel, to normal.

![image](https://github.com/tgstation/tgstation/assets/110322848/5b31767e-de27-4352-b2bf-89cde06a7b5c)
here you can see just a few of the possible combinations of tools -
default, default morgue, advanced, and alien. but any combination of
these tools should work together somewhat cleanly, as you can see here:

![image](https://github.com/tgstation/tgstation/assets/110322848/12ae3501-44bc-41a5-b4f4-d01c05cc6038)
also adds a medical razor variant, because otherwise they wouldn't fit
with the look of the other tools on the tray, before and after here:

![image](https://github.com/tgstation/tgstation/assets/110322848/c71af9ed-e9bb-40ff-81b8-0395d8afdf5a)
## Why It's Good For The Game
having constantly visible tool storage like this means you don't have to
worry about the one tool you need from the bag being stolen - if it is,
you can see it before an operation starts, and plan around that! it also
gives a little flexibility to mappers - if they'd like a more mobile
cart for their medbay, or if they'd like the somewhat stationary tray.
it also plain looks cool, and isn't quite as clunky as a duffelbag would
be.
## Changelog
🆑
add: adds medical carts and surgery trays
image: gives the surgery razor a unique sprite
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-09-04 00:58:11 +02:00

130 lines
4.6 KiB
Plaintext

/obj/item/stack/sticky_tape
name = "sticky tape"
singular_name = "sticky tape"
desc = "Used for sticking to things for sticking said things to people."
icon = 'icons/obj/tapes.dmi'
icon_state = "tape"
var/prefix = "sticky"
w_class = WEIGHT_CLASS_TINY
full_w_class = WEIGHT_CLASS_TINY
item_flags = NOBLUDGEON
amount = 5
max_amount = 5
resistance_flags = FLAMMABLE
grind_results = list(/datum/reagent/cellulose = 5)
splint_factor = 0.65
merge_type = /obj/item/stack/sticky_tape
var/list/conferred_embed = EMBED_HARMLESS
///The tape type you get when ripping off a piece of tape.
var/obj/tape_gag = /obj/item/clothing/mask/muzzle/tape
greyscale_config = /datum/greyscale_config/tape
greyscale_colors = "#B2B2B2#BD6A62"
/obj/item/stack/sticky_tape/attack_hand(mob/user, list/modifiers)
if(user.get_inactive_held_item() == src)
if(is_zero_amount(delete_if_zero = TRUE))
return
playsound(user, 'sound/items/duct_tape_rip.ogg', 50, TRUE)
if(!do_after(user, 1 SECONDS))
return
var/new_tape_gag = new tape_gag(src)
user.put_in_hands(new_tape_gag)
use(1)
to_chat(user, span_notice("You rip off a piece of tape."))
playsound(user, 'sound/items/duct_tape_snap.ogg', 50, TRUE)
return TRUE
return ..()
/obj/item/stack/sticky_tape/examine(mob/user)
. = ..()
. += "[span_notice("You could rip a piece off by using an empty hand.")]"
/obj/item/stack/sticky_tape/afterattack(obj/item/target, mob/living/user, proximity)
if(!proximity)
return
if(!istype(target))
return
. |= AFTERATTACK_PROCESSED_ITEM
if(target.embedding && target.embedding == conferred_embed)
to_chat(user, span_warning("[target] is already coated in [src]!"))
return .
user.visible_message(span_notice("[user] begins wrapping [target] with [src]."), span_notice("You begin wrapping [target] with [src]."))
playsound(user, 'sound/items/duct_tape_rip.ogg', 50, TRUE)
if(do_after(user, 3 SECONDS, target=target))
playsound(user, 'sound/items/duct_tape_snap.ogg', 50, TRUE)
use(1)
if(istype(target, /obj/item/clothing/gloves/fingerless))
var/obj/item/clothing/gloves/tackler/offbrand/O = new /obj/item/clothing/gloves/tackler/offbrand
to_chat(user, span_notice("You turn [target] into [O] with [src]."))
QDEL_NULL(target)
user.put_in_hands(O)
return .
if(target.embedding && target.embedding == conferred_embed)
to_chat(user, span_warning("[target] is already coated in [src]!"))
return .
target.embedding = conferred_embed
target.updateEmbedding()
to_chat(user, span_notice("You finish wrapping [target] with [src]."))
target.name = "[prefix] [target.name]"
if(isgrenade(target))
var/obj/item/grenade/sticky_bomb = target
sticky_bomb.sticky = TRUE
return .
/obj/item/stack/sticky_tape/super
name = "super sticky tape"
singular_name = "super sticky tape"
desc = "Quite possibly the most mischevious substance in the galaxy. Use with extreme lack of caution."
prefix = "super sticky"
conferred_embed = EMBED_HARMLESS_SUPERIOR
splint_factor = 0.4
merge_type = /obj/item/stack/sticky_tape/super
greyscale_colors = "#4D4D4D#75433F"
tape_gag = /obj/item/clothing/mask/muzzle/tape/super
/obj/item/stack/sticky_tape/pointy
name = "pointy tape"
singular_name = "pointy tape"
desc = "Used for sticking to things for sticking said things inside people."
icon_state = "tape_spikes"
prefix = "pointy"
conferred_embed = EMBED_POINTY
merge_type = /obj/item/stack/sticky_tape/pointy
greyscale_config = /datum/greyscale_config/tape/spikes
greyscale_colors = "#E64539#808080#AD2F45"
tape_gag = /obj/item/clothing/mask/muzzle/tape/pointy
/obj/item/stack/sticky_tape/pointy/super
name = "super pointy tape"
singular_name = "super pointy tape"
desc = "You didn't know tape could look so sinister. Welcome to Space Station 13."
prefix = "super pointy"
conferred_embed = EMBED_POINTY_SUPERIOR
merge_type = /obj/item/stack/sticky_tape/pointy/super
greyscale_colors = "#8C0A00#4F4F4F#300008"
tape_gag = /obj/item/clothing/mask/muzzle/tape/pointy/super
/obj/item/stack/sticky_tape/surgical
name = "surgical tape"
singular_name = "surgical tape"
desc = "Made for patching broken bones back together alongside bone gel, not for playing pranks."
prefix = "surgical"
conferred_embed = list("embed_chance" = 30, "pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE)
splint_factor = 0.5
custom_price = PAYCHECK_CREW
merge_type = /obj/item/stack/sticky_tape/surgical
greyscale_colors = "#70BAE7#BD6A62"
tape_gag = /obj/item/clothing/mask/muzzle/tape/surgical
/obj/item/stack/sticky_tape/surgical/get_surgery_tool_overlay(tray_extended)
return "tape" + (tray_extended ? "" : "_out")