Files
Bubberstation/code/game/objects/structures/crates_lockers/crates/large.dm
SkyratBot fae04f1fb6 [MIRROR] Crate, Closet Refactors & Access Secured Stuff [MDB IGNORE] (#21024)
* Crate, Closet Refactors & Access Secured Stuff

* CI

* e

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-09 04:32:41 +01:00

58 lines
2.0 KiB
Plaintext

/obj/structure/closet/crate/large
name = "large crate"
desc = "A hefty wooden crate. You'll need a crowbar to get it open."
icon_state = "largecrate"
base_icon_state = "largecrate"
density = TRUE
pass_flags_self = PASSSTRUCTURE
material_drop = /obj/item/stack/sheet/mineral/wood
material_drop_amount = 4
delivery_icon = "deliverybox"
integrity_failure = 0 //Makes the crate break when integrity reaches 0, instead of opening and becoming an invisible sprite.
open_sound = 'sound/machines/wooden_closet_open.ogg'
close_sound = 'sound/machines/wooden_closet_close.ogg'
open_sound_volume = 25
close_sound_volume = 50
can_install_electronics = FALSE
// Stops people from "diving into" a crate you can't open normally
divable = FALSE
/obj/structure/closet/crate/large/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NO_MISSING_ITEM_ERROR, TRAIT_GENERIC)
/obj/structure/closet/crate/large/attack_hand(mob/user, list/modifiers)
add_fingerprint(user)
if(manifest)
tear_manifest(user)
else
to_chat(user, span_warning("You need a crowbar to pry this open!"))
/obj/structure/closet/crate/large/attackby(obj/item/W, mob/living/user, params)
if(W.tool_behaviour == TOOL_CROWBAR)
if(manifest)
tear_manifest(user)
user.visible_message(span_notice("[user] pries \the [src] open."), \
span_notice("You pry open \the [src]."), \
span_hear("You hear splitting wood."))
playsound(src.loc, 'sound/weapons/slashmiss.ogg', 75, TRUE)
var/turf/T = get_turf(src)
for(var/i in 1 to material_drop_amount)
new material_drop(src)
for(var/atom/movable/AM in contents)
AM.forceMove(T)
qdel(src)
else
if(user.combat_mode) //Only return ..() if intent is harm, otherwise return 0 or just end it.
return ..() //Stops it from opening and turning invisible when items are used on it.
else
to_chat(user, span_warning("You need a crowbar to pry this open!"))
return FALSE //Just stop. Do nothing. Don't turn into an invisible sprite. Don't open like a locker.
//The large crate has no non-attack interactions other than the crowbar, anyway.