diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 58ebf73d15..483ab07e47 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -232,13 +232,15 @@
stoplag(1)
qdel(progress)
-/datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress)
+/datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE)
var/atom/real_location = real_location()
for(var/obj/item/I in things)
things -= I
if(I.loc != real_location)
continue
remove_from_storage(I, target)
+ if(trigger_on_found && I.on_found())
+ return FALSE
if(TICK_CHECK)
progress.update(progress.goal - length(things))
return TRUE
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index d0d27ebe11..a4d7312887 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -46,10 +46,10 @@
var/mob/living/carbon/human/H = target
if(H.has_trait(TRAIT_PIERCEIMMUNE))
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
- armed = 0
+ armed = FALSE
update_icon()
pulse(0)
- return 0
+ return FALSE
switch(type)
if("feet")
if(!H.shoes)
@@ -67,7 +67,7 @@
visible_message("SPLAT!")
M.splat()
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
- armed = 0
+ armed = FALSE
update_icon()
pulse(0)
@@ -124,11 +124,16 @@
/obj/item/assembly/mousetrap/on_found(mob/finder)
if(armed)
- finder.visible_message("[finder] accidentally sets off [src], breaking their fingers.", \
+ if(finder)
+ finder.visible_message("[finder] accidentally sets off [src], breaking their fingers.", \
"You accidentally trigger [src]!")
- triggered(finder, (finder.active_hand_index % 2 == 0) ? BODY_ZONE_PRECISE_R_HAND : BODY_ZONE_PRECISE_L_HAND)
- return 1 //end the search!
- return 0
+ triggered(finder, (finder.active_hand_index % 2 == 0) ? BODY_ZONE_PRECISE_R_HAND : BODY_ZONE_PRECISE_L_HAND)
+ return TRUE //end the search!
+ else
+ visible_message("[src] snaps shut!")
+ triggered(loc)
+ return FALSE
+ return FALSE
/obj/item/assembly/mousetrap/hitby(A as mob|obj)