Merge pull request #15584 from Arturlang/StasisBeds

Stasis beds
This commit is contained in:
silicons
2022-04-08 09:47:26 -07:00
committed by GitHub
26 changed files with 274 additions and 112 deletions
@@ -162,6 +162,26 @@
if(!state_open)
. += "sleeper_cover"
//Lifeform Stasis Unit
/obj/machinery/stasis/survival_pod
icon = 'icons/obj/lavaland/survival_pod.dmi'
icon_state = "sleeper"
mattress_state = null
buckle_lying = 270
/obj/machinery/stasis/survival_pod/play_power_sound()
return
/obj/machinery/stasis/survival_pod/update_icon()
return
//NanoMed
/obj/machinery/vending/wallmed/survival_pod
name = "survival pod medical supply"
desc = "Wall-mounted Medical Equipment dispenser. This one seems just a tiny bit smaller."
refill_canister = null
onstation = FALSE
//Computer
/obj/item/gps/computer
name = "pod computer"
+3 -4
View File
@@ -6,13 +6,13 @@
SHOULD_NOT_SLEEP(TRUE)
if(mob_transforming)
return
. = SEND_SIGNAL(src, COMSIG_LIVING_LIFE, seconds, times_fired)
if(!(. & COMPONENT_INTERRUPT_LIFE_PHYSICAL))
PhysicalLife(seconds, times_fired)
if(!(. & COMPONENT_INTERRUPT_LIFE_BIOLOGICAL))
BiologicalLife(seconds, times_fired)
if(!(. & COMPONET_INTERRUPT_STATUS_EFFECTS))
handle_status_effects() //all special effects, stun, knockdown, jitteryness, hallucination, sleeping, etc
// CODE BELOW SHOULD ONLY BE THINGS THAT SHOULD HAPPEN NO MATTER WHAT AND CAN NOT BE SUSPENDED!
// Otherwise, it goes into one of the two split Life procs!
@@ -69,9 +69,8 @@
handle_block_parry(seconds)
// These two MIGHT need to be moved to base Life() if we get any in the future that's a "physical" effect that needs to fire even while in stasis.
handle_traits() // eye, ear, brain damages
handle_status_effects() //all special effects, stun, knockdown, jitteryness, hallucination, sleeping, etc
return TRUE
/**
+2 -2
View File
@@ -433,8 +433,8 @@
to_chat(src, "<span class='notice'>You have given up life and succumbed to death.</span>")
death()
/mob/living/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, check_immobilized = FALSE)
if(stat || IsUnconscious() || IsStun() || IsParalyzed() || (combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab)))
/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(src)))
return TRUE
/mob/living/canUseStorage()