Medical Adjustments (#17455)

* Defib and tank

* Defib, CPR, and stabilizer changes

qol: Defib now informs you WHY it's failing, so you can properly fix the problem.
balance: CPR can now REVIVE people if their HP is below a threshold with a 10% chance per CPR usage.
balance: CPR will cause the recipient to metabolize reagents.
balance: CPR now has a small chance of causing brute damage and rib fractures to the chest.
balance: Patient Stabilizer will cause the patient to metabolize reagents if dead.

* Broken bone fix

A fracture has a random chance of shifting around inside the first time you break it.

* shadekin runtime fix

* tgui

Adds two new TGUI states - living and living_adjacent
Fixes tram to allow mobs (and robots)

* Vital Organ chance fix

* flip flop
This commit is contained in:
Cameron Lennox
2025-04-07 04:58:56 -04:00
committed by GitHub
parent ffe4129bc8
commit d4e4c8268c
15 changed files with 195 additions and 47 deletions
+2 -2
View File
@@ -23,7 +23,7 @@
var/can_overdose_touch = FALSE // Can the chemical OD when processing on touch?
var/scannable = 0 // Shows up on health analyzers.
var/affects_dead = 0 // Does this chem process inside a corpse?
var/affects_dead = 0 // Does this chem process inside a corpse without outside intervention required?
var/affects_robots = 0 // Does this chem process inside a Synth?
var/allergen_type // What potential allergens does this contain?
@@ -67,7 +67,7 @@
/datum/reagent/proc/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location) // Currently, on_mob_life is called on carbons. Any interaction with non-carbon mobs (lube) will need to be done in touch_mob.
if(!istype(M))
return
if(!affects_dead && M.stat == DEAD)
if(!affects_dead && M.stat == DEAD && !M.has_modifier_of_type(/datum/modifier/bloodpump_corpse))
return
if(!affects_robots && M.isSynthetic())
return
+2 -6
View File
@@ -413,18 +413,14 @@
color = "#6b4de3"
metabolism = REM * 0.5
mrate_static = TRUE
affects_dead = FALSE //Clarifying this here since the original intent was this ONLY works on people that have the bloodpump_corpse modifier.
scannable = 1
/datum/reagent/mortiferin/on_mob_life(var/mob/living/carbon/M, var/alien, var/datum/reagents/metabolism/location)
if(M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse))
affects_dead = TRUE
else
affects_dead = FALSE
. = ..(M, alien, location)
/datum/reagent/mortiferin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(M.bodytemperature < (T0C - 10) || (M.stat == DEAD && M.has_modifier_of_type(/datum/modifier/bloodpump_corpse)))
if(M.bodytemperature < (T0C - 10) || (M.stat == DEAD))
var/chem_effective = 1 * M.species.chem_strength_heal
if(alien == IS_SLIME)
if(prob(10))