diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 067223c0285..dcf5223e29c 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -63,6 +63,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station var/xenobiology_compatible = FALSE //Can the Xenobio management console transverse this area by default? var/nad_allowed = FALSE //is the station NAD allowed on this area? + var/fast_despawn = FALSE + /*Adding a wizard area teleport list because motherfucking lag -- Urist*/ /*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ var/list/teleportlocs = list() @@ -855,10 +857,12 @@ var/list/ghostteleportlocs = list() /area/prison/solitary name = "\improper Solitary Confinement" icon_state = "brig" + fast_despawn = TRUE /area/prison/cell_block name = "\improper Prison Cell Block" icon_state = "brig" + fast_despawn = TRUE /area/prison/cell_block/A name = "\improper Prison Cell Block A" @@ -1676,6 +1680,7 @@ var/list/ghostteleportlocs = list() /area/security/permabrig name = "\improper Prison Wing" icon_state = "sec_prison_perma" + fast_despawn = TRUE /area/security/prison name = "\improper Prison Wing" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 8fc6228f734..6fb52044a79 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -52,8 +52,16 @@ /mob/living/carbon/human/proc/handle_ssd() if(player_logged > 0 && config.auto_cryo_ssd_mins && stat != DEAD && job) player_logged++ + if(istype(loc, /obj/machinery/cryopod)) + return if((player_logged >= (config.auto_cryo_ssd_mins * 30)) && player_logged % 30 == 0) + var/turf/T = get_turf(src) + if(!is_station_level(T.z)) + return + var/area/A = get_area(src) cryo_ssd(src) + if(A.fast_despawn) + force_cryo_human(src) /mob/living/carbon/human/calculate_affecting_pressure(var/pressure) ..()