Files
CHOMPStation2/code/modules/mob/_modifiers/medical.dm
CHOMPStation2StaffMirrorBot c487e78339 [MIRROR] Spooky/Horror modifier & various tweaks/fixes (#11004)
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-06-04 19:30:24 +02:00

96 lines
3.4 KiB
Plaintext

/*
* Modifiers applied by Medical sources.
*/
//See blood.dm. This makes your blood volume & raw blood volume set to 100%.
//This means (as long as you have blood) you will not suffocate. Even with no heart or lungs.
/datum/modifier/bloodpump
name = "external blood pumping"
desc = "Your blood flows thanks to the wonderful power of science."
on_created_text = span_notice("You feel alive.")
on_expired_text = span_notice("You feel.. less alive.")
stacks = MODIFIER_STACK_EXTEND
pulse_set_level = PULSE_NORM
/datum/modifier/bloodpump/check_if_valid()
..()
if(holder.stat == DEAD)
src.expire()
/datum/modifier/bloodpump_corpse
name = "forced blood pumping"
desc = "Your blood flows thanks to the wonderful power of science."
on_created_text = span_notice("You feel alive.")
on_expired_text = span_notice("You feel.. less alive.")
stacks = MODIFIER_STACK_EXTEND
pulse_set_level = PULSE_SLOW
var/mob/living/carbon/human/human_being_pumped
//The meat and
/datum/modifier/bloodpump_corpse/proc/process_blood()
holder.handle_chemicals_in_body() // Circulates chemicals throughout the body.
if(human_being_pumped) //Specialty human procs.
human_being_pumped.handle_organs() //Things like antibiotics will work. And since we're circulating, it makes infections get worse if we don't treat them!
human_being_pumped.handle_heartbeat() //We can hear our own heart being pumped! This makes a pretty neat sound effect.
/datum/modifier/bloodpump_corpse/on_applied()
if(ishuman(holder))
human_being_pumped = holder
return
/datum/modifier/bloodpump_corpse/check_if_valid()
..()
if(holder.stat != DEAD)
src.expire()
/datum/modifier/bloodpump_corpse/expire(silent)
human_being_pumped = null
..()
//This INTENTIONALLY only happens on DEAD people. Alive people are metabolizing already (and can be healed quicker through things like brute packs) meaning they don't need this extra assistance!
//Why does it not make you bleed out? Because we'll let medical have a few benefits that don't come with innate downsides. It takes 2 seconds to resleeve someone. It takes a good amount of time to repair a corpse. Let's make the latter more appealing.
/datum/modifier/bloodpump_corpse/tick()
for(var/i in 1 to 5) //It's a controlled machine. 5 pumps per tick.
process_blood() // Circulates chemicals throughout the body.
/*
* Modifiers caused by chemicals or organs specifically.
*/
/datum/modifier/bloodpump_corpse/cpr
desc = "Your blood flows thanks to the wonderful power of CPR."
pulse_set_level = PULSE_NONE //No pulse. You're acting as their pulse.
/datum/modifier/bloodpump_corpse/cpr/tick()
var/randomization = rand(4,7) //CPR isn't perfect. You get some randomization in there.
for(var/i in 1 to randomization)
process_blood()
/datum/modifier/cryogelled
name = "cryogelled"
desc = "Your body begins to freeze."
mob_overlay_state = "chilled"
on_created_text = span_danger("You feel like you're going to freeze! It's hard to move.")
on_expired_text = span_warning("You feel somewhat warmer and more mobile now.")
stacks = MODIFIER_STACK_ALLOWED
slowdown = 0.1
evasion = -5
attack_speed_percent = 1.1
disable_duration_percent = 1.05
/datum/modifier/clone_stabilizer
name = "clone stabilized"
desc = "Your body's regeneration is highly restricted."
on_created_text = span_danger("You feel nauseous.")
on_expired_text = span_warning("You feel healthier.")
stacks = MODIFIER_STACK_EXTEND
incoming_healing_percent = 0.1