The Medical Stasis Refactoring (#21311)

This PR implements a variety pack of new interactions for Medical Stasis
(stasis beds, stasis bags, and cryogenics), which should broadly extend
their utility. Not all of it is necessarily a good thing to have around,
such as for instance stasis slowing down the rate at which the liver
removes toxins. A few more organs have by extension been time
differentiated to allow for this change to take place.

As a general rule of thumb, most organ effects that are handled "per
second" are proportionally slowed down by the stasis rating of a given
source of medical stasis. This can be a good or a bad thing depending on
the context.

**Good effects of Stasis:**
- Slowing down appendicitis.
- Reducing the damage organs take per second from most per-second
sources.
- Making kidneys and livers deal less dangerous effects to their owner
when severely damaged.
- (Not in this PR, but was done in a previous PR): Brains lose BA
slower.

**Bad effects of Stasis:**
- Organs also heal slower from all per-second sources, this includes
chems. So while they take less damage, they're also taking less healing.
- The liver's rate at which it filters the blood is reduced. You get to
stay black-out drunk for 10x longer if placed in stasis.
- (Not in this PR, but was done in a previous PR): Brains heal their BA
slower.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
This commit is contained in:
VMSolidus
2025-11-03 08:13:03 +00:00
committed by GitHub
parent 17ffc47c64
commit e934c818c1
8 changed files with 192 additions and 60 deletions
@@ -1641,7 +1641,7 @@
/singleton/reagent/rezadone/affect_chem_effect(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
. = ..()
if(.)
M.add_chemical_effect(CE_ORGANREPAIR, 1)
M.add_chemical_effect(CE_ORGANREPAIR, 2)
M.add_chemical_effect(CE_BLOODRESTORE, 15)
/singleton/reagent/rezadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -1674,7 +1674,7 @@
/singleton/reagent/sanasomnum/affect_chem_effect(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
. = ..()
if(.)
M.add_chemical_effect(CE_ORGANREPAIR, 20)
M.add_chemical_effect(CE_ORGANREPAIR, 40)
M.add_chemical_effect(CE_BLOODRESTORE, 15)
M.add_chemical_effect(CE_BLOODCLOT, 15)
M.add_chemical_effect(CE_BRAIN_REGEN, 20)