From 8b9321422b0c835e19f2a12082d80ee1fad1d549 Mon Sep 17 00:00:00 2001
From: AlfredoChicken <50469129+AlfredoChicken@users.noreply.github.com>
Date: Mon, 24 Feb 2020 20:40:38 -0500
Subject: [PATCH] Update large_storage_parent.dm

---
 code/obj/storage/large_storage_parent.dm | 51 ++++++++++++++----------
 1 file changed, 30 insertions(+), 21 deletions(-)

diff --git a/code/obj/storage/large_storage_parent.dm b/code/obj/storage/large_storage_parent.dm
index 1b8f2312..d8990e59 100644
--- a/code/obj/storage/large_storage_parent.dm
+++ b/code/obj/storage/large_storage_parent.dm
@@ -51,7 +51,7 @@
 	var/made_stuff
 	New()
 		..()
-		SPAWN_DBG(1 DECI SECOND)
+		SPAWN_DBG(1)
 			src.update_icon()
 			//I wonder what it would do for world initialization time to do this when the locker is opened instead.
 			//src.make_my_stuff()
@@ -133,7 +133,7 @@
 					sleep(1)
 				src.pixel_x = 0
 				src.pixel_y = 0
-				SPAWN_DBG(5 DECI SECONDS)
+				SPAWN_DBG(5)
 					src.jiggled = 0
 
 			if (prob(10) && src.can_flip_bust)
@@ -161,7 +161,7 @@
 		if (src.welded)
 			user.show_text("It won't open!", "red")
 			return
-		else if (!src.toggle())
+		else if (!src.toggle(user))
 			return src.attackby(null, user)
 
 	attackby(obj/item/W as obj, mob/user as mob)
@@ -214,7 +214,8 @@
 					I.setMaterial(M)
 				src.visible_message("<span style='color:red'>[user] takes apart [src] with [W].</span>")
 				qdel(src)
-				return
+				return	
+				
 			else if (!issilicon(user))
 				if (istype(W, /obj/item/grab))
 					return src.MouseDrop_T(W:affecting, user)	//act like they were dragged onto the closet
@@ -359,7 +360,7 @@
 			user.u_equip(O)
 			O.set_loc(get_turf(user))
 
-		SPAWN_DBG(5 DECI SECONDS)
+		SPAWN_DBG(5)
 			if (istype(O, /obj/item/raw_material/))
 				user.visible_message("<span style='color:blue'>[user] begins quickly stuffing materials into [src]!</span>",\
 				"<span style='color:blue'>You begin quickly stuffing materials into [src]!</span>")
@@ -387,7 +388,7 @@
 					if (user.loc != staystill)
 						break
 				user.show_text("You finish stuffing materials into [src]!", "blue")
-				SPAWN_DBG(5 DECI SECONDS)
+				SPAWN_DBG(5)
 					if (src.open)
 						src.close()
 
@@ -418,7 +419,7 @@
 					if (user.loc != staystill)
 						break
 				user.show_text("You finish stuffing produce into [src]!", "blue")
-				SPAWN_DBG(5 DECI SECONDS)
+				SPAWN_DBG(5)
 					if (src.open)
 						src.close()
 
@@ -428,7 +429,7 @@
 					if (user != O)
 						user.visible_message("<span style='color:red'>[user] stuffs [O] into [src]!</span>",\
 						"<span style='color:red'>You stuff [O] into [src]!</span>")
-					SPAWN_DBG(5 DECI SECONDS)
+					SPAWN_DBG(5)
 						if (src.open)
 							src.close()
 		return ..()
@@ -483,7 +484,7 @@
 		return 1
 
 	var/obj/storage/entangled
-	proc/open(var/entangleLogic)
+	proc/open(var/entangleLogic, var/mob/user)
 		if (src.open)
 			return 0
 		if (!src.can_open())
@@ -500,8 +501,10 @@
 			entangled.close(1)
 			contents = entangled.contents
 
-
-		src.dump_contents()
+		if (user)
+			src.dump_contents(user)
+		else
+			src.dump_contents()
 		src.open = 1
 		src.update_icon()
 		p_class = initial(p_class)
@@ -583,20 +586,26 @@
 				return 0
 		return 1
 
-	proc/dump_contents()
+	proc/dump_contents(var/mob/user)
 		if(src.spawn_contents && make_my_stuff()) //Make the stuff when the locker is first opened.
 			spawn_contents = null
-
+			
 		var/newloc = get_turf(src)
 		for (var/obj/O in src)
 			O.set_loc(newloc)
-
+			if(istype(O,/obj/item/mousetrap))
+				var/obj/item/mousetrap/m = O
+				if(m.armed && user)
+					m.triggered(user)
+					
 		for (var/mob/M in src)
 			M.set_loc(newloc)
 
-	proc/toggle()
+	proc/toggle(var/mob/user)
 		if (src.open)
 			return src.close()
+		if (user)
+			return src.open(null,user)
 		return src.open()
 
 	proc/bust_out()
@@ -606,7 +615,7 @@
 		if (src.health <= 0)
 			src.visible_message("<span style='color:red'>[src] breaks apart!</span>")
 			src.dump_contents()
-			SPAWN_DBG(1 DECI SECOND)
+			SPAWN_DBG(1)
 				var/newloc = get_turf(src)
 				make_cleanable( /obj/decal/cleanable/machine_debris,newloc)
 				qdel(src)
@@ -635,7 +644,7 @@
 			return
 		else
 			M.show_text("Is it getting... smaller in here?", "red")
-			SPAWN_DBG(5 SECONDS)
+			SPAWN_DBG(50)
 
 				var/found = 0
 				for (var/mob/contained_mob in src.contents)
@@ -727,7 +736,7 @@
 
 	New()
 		..()
-		SPAWN_DBG(1 SECOND)
+		SPAWN_DBG(10)
 			if (isnum(src.radio_control) && radio_controller)
 				radio_control = max(1000, min(round(radio_control), 1500))
 				src.net_id = generate_net_id(src)
@@ -799,7 +808,7 @@
 					else
 						reply.data = list("address_1" = sender, "command" = "nack", "data" = "badpass", "sender" = src.net_id)
 
-					SPAWN_DBG(5 DECI SECONDS)
+					SPAWN_DBG(5)
 						src.radio_control.post_signal(src, reply, 2)
 			return //todo
 
@@ -811,7 +820,7 @@
 			reply.data["command"] = "ping_reply"
 			reply.data["device"] = "WNET_SECLOCKER"
 			reply.data["netid"] = src.net_id
-			SPAWN_DBG(5 DECI SECONDS)
+			SPAWN_DBG(5)
 				src.radio_control.post_signal(src, reply, 2)
 			return
 		return
@@ -843,4 +852,4 @@
 			user.show_text("<span style=\"color:red\">[src] [pick("cracks","bends","shakes","groans")].</span>")
 			src.bust_out()
 
-#undef RELAYMOVE_DELAY
\ No newline at end of file
+#undef RELAYMOVE_DELAY