From 60f09bcdc43a1459e68967713b16313af4e399e2 Mon Sep 17 00:00:00 2001 From: warior4356 Date: Sat, 31 Oct 2020 16:51:41 -0700 Subject: [PATCH 1/4] Adds confirmation to CC packed crates --- code/game/objects/structures/crates_lockers/crates.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 61db52bf8a0..e98b1fb3642 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -34,6 +34,17 @@ if(!src.can_open()) return FALSE + var/cc_packed = FALSE + for(var/obj/O in src) + if(O.density) + cc_packed = TRUE + break + + if(cc_packed) + var/response = alert(usr, "This crate has been packed with bluespace compression, an item inside won't fit back inside. Are you sure you want to open it?","Bluespace Compression Warning", "No", "Yes") + if(response == "No") + return FALSE + if(rigged && locate(/obj/item/radio/electropack) in src) if(isliving(usr)) var/mob/living/L = usr From 394a1b258f4576888e0dd64c1d874a246292858d Mon Sep 17 00:00:00 2001 From: warior4356 Date: Sun, 1 Nov 2020 14:21:31 -0800 Subject: [PATCH 2/4] Cleans up code --- code/game/objects/structures/crates_lockers/crates.dm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index e98b1fb3642..cf66a3397ae 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -34,17 +34,13 @@ if(!src.can_open()) return FALSE - var/cc_packed = FALSE for(var/obj/O in src) if(O.density) - cc_packed = TRUE + var/response = alert(usr, "This crate has been packed with bluespace compression, an item inside won't fit back inside. Are you sure you want to open it?","Bluespace Compression Warning", "No", "Yes") + if(response == "No") + return FALSE break - if(cc_packed) - var/response = alert(usr, "This crate has been packed with bluespace compression, an item inside won't fit back inside. Are you sure you want to open it?","Bluespace Compression Warning", "No", "Yes") - if(response == "No") - return FALSE - if(rigged && locate(/obj/item/radio/electropack) in src) if(isliving(usr)) var/mob/living/L = usr From 18ceb599502d19a478e3ef720b098b50a28e7163 Mon Sep 17 00:00:00 2001 From: warior4356 Date: Mon, 2 Nov 2020 20:03:35 -0800 Subject: [PATCH 3/4] Resolves edge case with defile and knock --- code/datums/spells/knock.dm | 2 +- .../miniantags/revenant/revenant_abilities.dm | 2 +- .../objects/structures/crates_lockers/crates.dm | 15 ++++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index e4c652ae1d3..139d20d813c 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -28,7 +28,7 @@ if(istype(C, /obj/structure/closet/secure_closet)) var/obj/structure/closet/secure_closet/SC = C SC.locked = 0 - C.open() + C.open(TRUE) /obj/effect/proc_holder/spell/aoe_turf/knock/greater name = "Greater Knock" diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index 47e5e759c77..d1da3289001 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -261,7 +261,7 @@ if(window && window.fulltile) new/obj/effect/temp_visual/revenant/cracks(window.loc) for(var/obj/structure/closet/closet in T.contents) - closet.open() + closet.open(TRUE) if(!istype(T, /turf/simulated/floor/plating) && !istype(T, /turf/simulated/floor/engine/cult) && istype(T, /turf/simulated/floor) && prob(15)) var/turf/simulated/floor/floor = T diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index cf66a3397ae..b21b304a1f3 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -28,18 +28,19 @@ /obj/structure/closet/crate/can_close() return TRUE -/obj/structure/closet/crate/open() +/obj/structure/closet/crate/open(irregular_open = FALSE) if(src.opened) return FALSE if(!src.can_open()) return FALSE - for(var/obj/O in src) - if(O.density) - var/response = alert(usr, "This crate has been packed with bluespace compression, an item inside won't fit back inside. Are you sure you want to open it?","Bluespace Compression Warning", "No", "Yes") - if(response == "No") - return FALSE - break + if(!irregular_open) + for(var/obj/O in src) + if(O.density) + var/response = alert(usr, "This crate has been packed with bluespace compression, an item inside won't fit back inside. Are you sure you want to open it?","Bluespace Compression Warning", "No", "Yes") + if(response == "No") + return FALSE + break if(rigged && locate(/obj/item/radio/electropack) in src) if(isliving(usr)) From 673623d9428906ee1dcf7bcdeea97fe79c3ba7f8 Mon Sep 17 00:00:00 2001 From: warior4356 Date: Sun, 8 Nov 2020 23:20:23 -0800 Subject: [PATCH 4/4] Made check less snowflakey --- code/datums/spells/knock.dm | 2 +- .../miniantags/revenant/revenant_abilities.dm | 2 +- .../objects/structures/crates_lockers/crates.dm | 14 +++++++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index 139d20d813c..e4c652ae1d3 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -28,7 +28,7 @@ if(istype(C, /obj/structure/closet/secure_closet)) var/obj/structure/closet/secure_closet/SC = C SC.locked = 0 - C.open(TRUE) + C.open() /obj/effect/proc_holder/spell/aoe_turf/knock/greater name = "Greater Knock" diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index d1da3289001..47e5e759c77 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -261,7 +261,7 @@ if(window && window.fulltile) new/obj/effect/temp_visual/revenant/cracks(window.loc) for(var/obj/structure/closet/closet in T.contents) - closet.open(TRUE) + closet.open() if(!istype(T, /turf/simulated/floor/plating) && !istype(T, /turf/simulated/floor/engine/cult) && istype(T, /turf/simulated/floor) && prob(15)) var/turf/simulated/floor/floor = T diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index b21b304a1f3..f9403f630b2 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -28,17 +28,17 @@ /obj/structure/closet/crate/can_close() return TRUE -/obj/structure/closet/crate/open(irregular_open = FALSE) +/obj/structure/closet/crate/open(by_hand = FALSE) if(src.opened) return FALSE if(!src.can_open()) return FALSE - if(!irregular_open) + if(by_hand) for(var/obj/O in src) if(O.density) var/response = alert(usr, "This crate has been packed with bluespace compression, an item inside won't fit back inside. Are you sure you want to open it?","Bluespace Compression Warning", "No", "Yes") - if(response == "No") + if(response == "No" || !Adjacent(usr)) return FALSE break @@ -91,6 +91,10 @@ return return ..() +/obj/structure/closet/crate/toggle(mob/user, by_hand = FALSE) + if(!(opened ? close() : open(by_hand))) + to_chat(user, "It won't budge!") + /obj/structure/closet/crate/proc/try_rig(obj/item/W, mob/user) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W @@ -145,7 +149,7 @@ do_sparks(5, 1, src) return src.add_fingerprint(user) - src.toggle(user) + src.toggle(user, by_hand = TRUE) // Called when a crate is delivered by MULE at a location, for notifying purposes /obj/structure/closet/crate/proc/notifyRecipient(var/destination) @@ -245,7 +249,7 @@ if(locked) src.togglelock(user) else - src.toggle(user) + src.toggle(user, by_hand = TRUE) /obj/structure/closet/crate/secure/closed_item_click(mob/user) togglelock(user)