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
+8 -7
View File
@@ -386,7 +386,9 @@
var/modifed_burn = burn
// Let's calculate how INJURED our limb is accounting for AFTER the damage we just took. Determines the chance the next attack will take our limb off!
var/damage_factor = ((max_damage*CONFIG_GET(number/organ_health_multiplier))/(brute_dam + burn_dam))*100
var/damage_factor = ((brute_dam + burn_dam)/(max_damage*CONFIG_GET(number/organ_health_multiplier)))*100
if(brute_dam > max_damage || burn_dam > max_damage) //This is in case we go OVER our max. This doesn't EVER happen except on VITAL organs.
damage_factor = 100
// Max_damage of 80 and brute_dam of 80? || Factor = 100 Max_damage of 80 and brute_dam of 40? Factor = 50 || Max_damage of 80 and brute_dam of 5? Factor = 5
// This lowers our chances of having our limb removed when it has less damage. The more damaged the limb, the higher the chance it falls off!
@@ -1137,18 +1139,17 @@ Note that amputating the affected organ does in fact remove the infection from t
if((status & ORGAN_BROKEN) || cannot_break)
return
if(owner) //VOREStation Edit Start
playsound(src, "fracture", 10, 1, -2)
status |= ORGAN_BROKEN
broken_description = pick("broken","fracture","hairline fracture")
if(owner)
if(organ_can_feel_pain() && !isbelly(owner.loc) && !isliving(owner.loc))
owner.visible_message(\
span_danger("You hear a loud cracking sound coming from \the [owner]."),\
span_danger("Something feels like it shattered in your [name]!"),\
span_danger("You hear a sickening crack."))
owner.emote("scream")
jostle_bone() //VOREStation Edit End
playsound(src, "fracture", 10, 1, -2)
status |= ORGAN_BROKEN
broken_description = pick("broken","fracture","hairline fracture")
jostle_bone()
// Fractures have a chance of getting you out of restraints
if (prob(25))