Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 03ec1a2

Browse files
committed
TGS Test merge #13381
2 parents cbace8d + 5c3e8ca commit 03ec1a2

1 file changed

Lines changed: 23 additions & 9 deletions

File tree

yogstation/code/controllers/subsystem/bluespace_locker.dm

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,30 @@ 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.wall_mounted)
36+
continue
37+
var/score = 1
38+
if (L.locked)
39+
score -= 0.25
40+
lockers_list[L] = score
2741
if(!lockers_list.len)
2842
// Congratulations, you managed to destroy all the lockers somehow.
2943
// Now let's make a new one.
@@ -33,8 +47,8 @@ SUBSYSTEM_DEF(bluespace_locker)
3347
targetturf = get_turf(pick(GLOB.blobstart))
3448
else
3549
CRASH("Unable to find a blobstart landmark")
36-
lockers_list += new /obj/structure/closet(targetturf)
37-
var/obj/structure/closet/L = pick(lockers_list)
50+
lockers_list[new /obj/structure/closet(targetturf)] = 1
51+
var/obj/structure/closet/L = pickweight(lockers_list)
3852

3953
var/obj/structure/closet/bluespace/external/E = new(L.loc)
4054
E.contents = L.contents

0 commit comments

Comments
 (0)