23 lines
847 B
Plaintext
23 lines
847 B
Plaintext
/datum/component/storage/concrete/emergency
|
|
drop_all_on_break = TRUE
|
|
unlock_on_break = TRUE
|
|
locked = TRUE
|
|
|
|
/datum/component/storage/concrete/emergency/Initialize()
|
|
. = ..()
|
|
RegisterSignal(parent, COMSIG_ATOM_EMAG_ACT, .proc/unlock_me)
|
|
|
|
/datum/component/storage/concrete/emergency/signal_insertion_attempt(datum/source, obj/item/I, mob/M, silent = FALSE, force = FALSE)
|
|
if(!silent && istype(I, /obj/item/card/emag))
|
|
silent = TRUE // suppresses the message
|
|
return ..()
|
|
|
|
/datum/component/storage/concrete/check_locked(datum/source, mob/user, message = FALSE)
|
|
. = locked && GLOB.security_level < SEC_LEVEL_RED
|
|
if(message && . && user)
|
|
to_chat(user, "The storage unit will only unlock during a Red or Delta security alert.")
|
|
|
|
/datum/component/storage/concrete/emergency/proc/unlock_me(datum/source)
|
|
if(locked)
|
|
set_locked(source, FALSE)
|