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)