From 5469ed6e67b48f5cb5ed3924ad3796a5f1491178 Mon Sep 17 00:00:00 2001 From: Archie Date: Tue, 3 Aug 2021 23:53:54 -0300 Subject: [PATCH] Fixes mice spawning and dying in layenia --- code/controllers/subsystem/minor_mapping.dm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/minor_mapping.dm b/code/controllers/subsystem/minor_mapping.dm index 2160cae6..f8b2f1e3 100644 --- a/code/controllers/subsystem/minor_mapping.dm +++ b/code/controllers/subsystem/minor_mapping.dm @@ -8,7 +8,7 @@ SUBSYSTEM_DEF(minor_mapping) return ..() /datum/controller/subsystem/minor_mapping/proc/trigger_migration(num_mice=10) - var/list/exposed_wires = find_exposed_wires() + var/list/exposed_wires = find_exposed_wires_safetemp() var/mob/living/simple_animal/mouse/M var/turf/proposed_turf @@ -35,4 +35,20 @@ SUBSYSTEM_DEF(minor_mapping) if(locate(/obj/structure/cable) in T) exposed_wires += T - return shuffle(exposed_wires) \ No newline at end of file + return shuffle(exposed_wires) + +/proc/find_exposed_wires_safetemp() + var/list/exposed_wires = list() + exposed_wires.Cut() + var/list/all_turfs + for (var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) + all_turfs += block(locate(1,1,z), locate(world.maxx,world.maxy,z)) + for(var/turf/open/floor/plating/T in all_turfs) + if(is_blocked_turf(T)) + continue + if(T.air?.temperature <= T0C) //Don't spawn them in an area where they'll immediately die, pretty please. + continue + if(locate(/obj/structure/cable) in T) + exposed_wires += T + + return shuffle(exposed_wires)