diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 0a20e984485..c25b4b27cf0 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -47,11 +47,15 @@ if(!do_alert) return ..() - // Cache the list before we open the box. - var/list/alerted = viewers(7, src) + // Get mobs in view before we open the box. + var/list/alerted = list() + for(var/mob/living/alerted_mob in viewers(7, src)) + if(alerted_mob.stat != CONSCIOUS || alerted_mob.is_blind()) + continue + alerted += alerted_mob // There are no mobs to alert? - if(!(locate(/mob/living) in alerted)) + if(!length(alerted)) return ..() . = ..() @@ -62,11 +66,10 @@ COOLDOWN_START(src, alert_cooldown, time_between_alerts) - for(var/mob/living/alerted_mob in alerted) - if(alerted_mob.stat == CONSCIOUS) - if(!alerted_mob.incapacitated(IGNORE_RESTRAINTS)) - alerted_mob.face_atom(src) - alerted_mob.do_alert_animation() + for(var/mob/living/alerted_mob as anything in alerted) + if(!alerted_mob.incapacitated(IGNORE_RESTRAINTS)) + alerted_mob.face_atom(src) + alerted_mob.do_alert_animation() playsound(loc, 'sound/machines/chime.ogg', 50, FALSE, -5)