@@ -14,16 +14,27 @@ SUBSYSTEM_DEF(bluespace_locker)
1414 if (external_locker)
1515 return
1616 // basically any normal-looking locker that isn't a secure one
17- var /list /valid_lockers = typecacheof(typesof(/ obj / structure/ closet) - typesof(/ obj / structure/ closet/ body_bag)\
18- - typesof(/ obj / structure/ closet/ secure_closet) - typesof(/ obj / structure/ closet/ cabinet)\
19- - typesof(/ obj / structure/ closet/ cardboard) - typesof(/ obj / structure/ closet/ crate)\
20- - typesof(/ obj / structure/ closet/ supplypod) - typesof(/ obj / structure/ closet/ stasis)\
21- - typesof(/ obj / structure/ closet/ abductor) - typesof(/ obj / structure/ closet/ bluespace), only_root_path = TRUE )
17+ var /list /valid_lockers = typecacheof(typesof(/ obj / structure/ closet) - typesof(/ obj / structure/ closet/ body_bag) \
18+ - typesof(/ obj / structure/ closet/ secure_closet) - typesof(/ obj / structure/ closet/ cabinet) \
19+ - typesof(/ obj / structure/ closet/ cardboard) - typesof(/ obj / structure/ closet/ crate) \
20+ - typesof(/ obj / structure/ closet/ supplypod) - typesof(/ obj / structure/ closet/ stasis) \
21+ - typesof(/ obj / structure/ closet/ abductor) - typesof(/ obj / structure/ closet/ bluespace), only_root_path = TRUE )
22+ var /list /invalid_areas = typecacheof(list (/ area / bridge, / area / crew_quarters/ heads, / area / comms, / area / server, \
23+ / area / engine/ engine_smes, / area / engine/ gravity_generator, / area / teleporter, / area / gateway, / area / medical/ virology, \
24+ / area / security, / area / quartermaster/ qm, / area / storage/ eva, / area / ai_monitored, / area / tcommsat))
2225
2326 var /list /lockers_list = list ()
2427 for (var /obj /structure/closet/L in GLOB . lockers)
25- if (is_station_level(L. z) && is_type_in_typecache(L, valid_lockers))
26- lockers_list += L
28+ if (! is_station_level(L. z))
29+ continue
30+ if (! is_type_in_typecache(L, valid_lockers))
31+ continue
32+ var /area /A = get_area(L)
33+ if (is_type_in_typecache(A, invalid_areas))
34+ continue
35+ if (L. secure || L. welded || L. locked || L. wall_mounted)
36+ continue
37+ lockers_list += L
2738 if (! lockers_list. len)
2839 // Congratulations, you managed to destroy all the lockers somehow.
2940 // Now let's make a new one.
0 commit comments