mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
[MIRROR] Fixes some potential sleeps as detected by SpacemanDMM improvements (#1216)
* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230) overrides weren't detected by should not sleep, i think i've mostly fixed that with SpaceManiac/SpacemanDMM#214 Some of these are wacky but overall this pr is harmless signals shouldnt sleep even in weird 1 in a million situations or due to other people adding bad code overrides of changeling can_sting() use alert() and input() and that's just too fucked for me to fix in this pr * Fixes some potential sleeps as detected by SpacemanDMM improvements Co-authored-by: spookydonut <github@spooksoftware.com>
This commit is contained in:
@@ -5,19 +5,23 @@
|
||||
var/list/obj/item/storage/backpack/holding/matching = typecache_filter_list(W.GetAllContents(), typecacheof(/obj/item/storage/backpack/holding))
|
||||
matching -= A
|
||||
if(istype(W, /obj/item/storage/backpack/holding) || matching.len)
|
||||
var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [A.name]?", "Proceed", "Abort")
|
||||
if(safety != "Proceed" || QDELETED(A) || QDELETED(W) || QDELETED(user) || !user.canUseTopic(A, BE_CLOSE, iscarbon(user)))
|
||||
return
|
||||
var/turf/loccheck = get_turf(A)
|
||||
to_chat(user, "<span class='danger'>The Bluespace interfaces of the two devices catastrophically malfunction!</span>")
|
||||
qdel(W)
|
||||
playsound(loccheck,'sound/effects/supermatter.ogg', 200, TRUE)
|
||||
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] detonated a bag of holding at [ADMIN_VERBOSEJMP(loccheck)].")
|
||||
log_game("[key_name(user)] detonated a bag of holding at [loc_name(loccheck)].")
|
||||
|
||||
user.gib(TRUE, TRUE, TRUE)
|
||||
new/obj/singularity/boh_tear(loccheck)
|
||||
qdel(A)
|
||||
INVOKE_ASYNC(src, .proc/recursive_insertion, W, user)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/datum/component/storage/concrete/bluespace/bag_of_holding/proc/recursive_insertion(obj/item/W, mob/living/user)
|
||||
var/atom/A = parent
|
||||
var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [A.name]?", "Proceed", "Abort")
|
||||
if(safety != "Proceed" || QDELETED(A) || QDELETED(W) || QDELETED(user) || !user.canUseTopic(A, BE_CLOSE, iscarbon(user)))
|
||||
return
|
||||
var/turf/loccheck = get_turf(A)
|
||||
to_chat(user, "<span class='danger'>The Bluespace interfaces of the two devices catastrophically malfunction!</span>")
|
||||
qdel(W)
|
||||
playsound(loccheck,'sound/effects/supermatter.ogg', 200, TRUE)
|
||||
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] detonated a bag of holding at [ADMIN_VERBOSEJMP(loccheck)].")
|
||||
log_game("[key_name(user)] detonated a bag of holding at [loc_name(loccheck)].")
|
||||
|
||||
user.gib(TRUE, TRUE, TRUE)
|
||||
new/obj/singularity/boh_tear(loccheck)
|
||||
qdel(A)
|
||||
|
||||
Reference in New Issue
Block a user