diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index c955c942c9..219dae6d6f 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -12673,9 +12673,7 @@ /turf/open/floor/plasteel, /area/construction/mining/aux_base) "aCW" = ( -/obj/machinery/sleeper{ - dir = 4 - }, +/obj/machinery/stasis, /turf/open/floor/plating, /area/maintenance/port/fore) "aCX" = ( @@ -30331,9 +30329,7 @@ /turf/open/floor/plasteel/dark, /area/medical/surgery) "bwD" = ( -/obj/machinery/sleeper{ - dir = 8 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/medbay/central) "bwE" = ( @@ -32058,14 +32054,12 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bAq" = ( -/obj/machinery/sleeper{ - dir = 8 - }, /obj/machinery/camera{ c_tag = "Medbay Treatment Center"; dir = 8; network = list("ss13","medbay") }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/medbay/central) "bAr" = ( diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index c5e8df8ed2..21cbb61b27 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -8805,12 +8805,11 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/sleeper{ - dir = 8 - }, /obj/machinery/airalarm{ pixel_y = 24 }, +/obj/structure/table, +/obj/item/stack/medical/suture/five, /turf/open/floor/plasteel/white, /area/medical/clinic) "auS" = ( @@ -8876,9 +8875,7 @@ name = "Station Intercom (Common)"; pixel_y = 26 }, -/obj/machinery/sleep_console{ - dir = 8 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/clinic) "auZ" = ( @@ -36751,9 +36748,6 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/storage/box/engineer{ - pixel_y = 4 - }, /turf/open/floor/plasteel, /area/maintenance/disposal) "bCu" = ( @@ -58329,9 +58323,7 @@ dir = 1 }, /obj/structure/window/reinforced/spawner/west, -/obj/machinery/sleeper{ - dir = 4 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2) "ctZ" = ( @@ -58340,9 +58332,7 @@ dir = 4 }, /obj/structure/window/reinforced/spawner/east, -/obj/machinery/sleeper{ - dir = 8 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2) "cua" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 2de7bc4e1e..2c37aa2697 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -46910,12 +46910,10 @@ dir = 4; pixel_x = -23 }, -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/abandoned) "ddn" = ( @@ -47559,12 +47557,10 @@ /turf/open/floor/plating, /area/security/checkpoint/medical) "deC" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/stripes/end{ dir = 4 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/medbay/central) "deD" = ( @@ -47584,12 +47580,10 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "deF" = ( -/obj/machinery/sleeper{ - dir = 8 - }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/medbay/central) "deG" = ( diff --git a/_maps/map_files/FestiveBall/FestiveStation.dmm b/_maps/map_files/FestiveBall/FestiveStation.dmm index dda657c782..e2be457873 100644 --- a/_maps/map_files/FestiveBall/FestiveStation.dmm +++ b/_maps/map_files/FestiveBall/FestiveStation.dmm @@ -29800,8 +29800,8 @@ /turf/open/floor/carpet/green, /area/medical/surgery) "byn" = ( -/obj/machinery/sleeper, /obj/effect/decal/festive/christmas_ivy_string, +/obj/machinery/stasis, /turf/open/floor/plasteel/white/side, /area/medical/exam_room) "byo" = ( @@ -29882,7 +29882,7 @@ /turf/open/floor/plasteel/white/side, /area/medical/exam_room) "byy" = ( -/obj/machinery/sleeper, +/obj/machinery/stasis, /turf/open/floor/plasteel/white/side, /area/medical/exam_room) "byz" = ( @@ -33048,9 +33048,7 @@ }, /area/medical/genetics/cloning) "bEC" = ( -/obj/machinery/sleeper{ - dir = 1 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white/side{ dir = 1 }, diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 731641d737..99eb9f9c6f 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -22447,9 +22447,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/sleeper{ - dir = 4 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "aLj" = ( diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index e676dea0e5..b93efb261a 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -38153,17 +38153,17 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bDq" = ( -/obj/machinery/sleeper, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/cryo) "bDr" = ( -/obj/machinery/sleeper, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/cryo) "bDs" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 5658a87fc2..467c6f264b 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -50579,9 +50579,6 @@ /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) "eAe" = ( -/obj/machinery/sleeper{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -50595,6 +50592,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/treatment_center) "eAy" = ( @@ -81033,9 +81031,6 @@ /turf/open/space/basic, /area/space) "vLV" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -81046,6 +81041,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/treatment_center) "vMm" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index b530cf0325..38c5a806c3 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -26813,12 +26813,10 @@ /turf/open/floor/plating, /area/medical/medbay/zone3) "aXS" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/dark/side{ dir = 8 }, @@ -28157,9 +28155,6 @@ /turf/open/floor/plating, /area/medical/medbay/zone3) "bax" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/machinery/newscaster{ pixel_y = -32 }, @@ -28169,6 +28164,7 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/dark/side{ dir = 8 }, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index bad187e5ed..8e6c3ba599 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -32728,9 +32728,6 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "bzP" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -32747,6 +32744,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/treatment_center) "bzQ" = ( @@ -33960,9 +33958,6 @@ /turf/open/floor/plasteel, /area/medical/treatment_center) "bCj" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -33973,6 +33968,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/medical/treatment_center) "bCl" = ( diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index 1db8a64a97..f538f31c2c 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -11007,9 +11007,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/sleeper{ - dir = 8 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2) "aPZ" = ( @@ -20516,9 +20514,6 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/aft) "fUX" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/structure/window/reinforced{ dir = 1 }, @@ -20528,6 +20523,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "fVm" = ( @@ -23736,9 +23732,6 @@ /turf/open/floor/plasteel/dark, /area/security/office) "hWn" = ( -/obj/machinery/sleeper{ - dir = 8 - }, /obj/structure/window/reinforced{ dir = 1 }, @@ -23755,6 +23748,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "hWp" = ( @@ -29421,9 +29415,6 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload_foyer) "lOX" = ( -/obj/machinery/sleeper{ - dir = 8 - }, /obj/structure/window/reinforced, /obj/structure/mirror{ pixel_x = 25 @@ -29433,6 +29424,7 @@ }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/stripes/line, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "lPB" = ( @@ -44164,9 +44156,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/sleeper{ - dir = 8 - }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "vkk" = ( @@ -46270,9 +46260,6 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "wut" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ dir = 8 @@ -46281,6 +46268,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/stasis, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "wuC" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 4a17fef999..cfa9973d7d 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -11916,12 +11916,10 @@ /turf/open/floor/plasteel/white, /area/centcom/control) "BH" = ( -/obj/machinery/sleeper{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/centcom/control) "BI" = ( @@ -11936,12 +11934,10 @@ /turf/open/floor/plasteel, /area/centcom/control) "BJ" = ( -/obj/machinery/sleeper{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/stasis, /turf/open/floor/plasteel, /area/centcom/control) "BK" = ( @@ -16445,9 +16441,7 @@ /turf/open/floor/holofloor/wood, /area/holodeck/rec_center/wrestlingarena) "Lh" = ( -/obj/machinery/sleeper{ - dir = 8 - }, +/obj/machinery/stasis, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "Li" = ( @@ -46321,7 +46315,7 @@ KO KV KV KV -Lb +Lh Lb Lp Lp diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index b29daa85f6..8306b4779c 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -152,6 +152,8 @@ // GROUPED // ///////////// +#define STASIS_MACHINE_EFFECT "stasis_machine" + #define STASIS_ASCENSION_EFFECT "heretic_ascension" /// If the incapacitated status effect will ignore a mob in stasis (stasis beds) diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 5f7f0263db..37047ccd11 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -44,7 +44,7 @@ /obj/machinery/stasis/Exited(atom/movable/AM, atom/newloc) if(AM == occupant) var/mob/living/L = AM - if(L.IsInStasis()) + if(IS_IN_STASIS(L)) thaw_them(L) . = ..() @@ -95,12 +95,13 @@ return var/freq = rand(24750, 26550) playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 2, frequency = freq) - target.SetStasis(TRUE) + target.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_MACHINE_EFFECT) + target.ExtinguishMob() use_power = ACTIVE_POWER_USE /obj/machinery/stasis/proc/thaw_them(mob/living/target) - target.SetStasis(FALSE) + target.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_MACHINE_EFFECT) if(target == occupant) use_power = IDLE_POWER_USE @@ -124,9 +125,9 @@ return var/mob/living/L_occupant = occupant if(stasis_running()) - if(!L_occupant.IsInStasis()) + if(!IS_IN_STASIS(L_occupant)) chill_out(L_occupant) - else if(L_occupant.IsInStasis()) + else if(IS_IN_STASIS(L_occupant)) thaw_them(L_occupant) /obj/machinery/stasis/screwdriver_act(mob/living/user, obj/item/I) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 18a500f6f4..dd050bda3e 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -11,7 +11,7 @@ . = SEND_SIGNAL(src, COMSIG_LIVING_LIFE, seconds, times_fired) if(!(. & COMPONENT_INTERRUPT_LIFE_PHYSICAL)) PhysicalLife(seconds, times_fired) - if(!(. & COMPONENT_INTERRUPT_LIFE_BIOLOGICAL) && !IS_IN_STASIS()) + if(!(. & COMPONENT_INTERRUPT_LIFE_BIOLOGICAL) && !IS_IN_STASIS(src)) BiologicalLife(seconds, times_fired) // CODE BELOW SHOULD ONLY BE THINGS THAT SHOULD HAPPEN NO MATTER WHAT AND CAN NOT BE SUSPENDED! diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index e4ffb94493..41da50dc91 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -434,7 +434,7 @@ death() /mob/living/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, check_immobilized = FALSE, ignore_stasis = FALSE) - if(stat || IsUnconscious() || IsStun() || IsParalyzed() || (combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab)) || (!ignore_stasis && IS_IN_STASIS())) + if(stat || IsUnconscious() || IsStun() || IsParalyzed() || (combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab)) || (!ignore_stasis && IS_IN_STASIS(src))) return TRUE /mob/living/canUseStorage()