Files
plsleavemealonandRoxy d19a65d157 Morbid surgery expansion (#91627)
## About The Pull Request


This PR tweaks how tools with the CRUEL_IMPLEMENT interact with
patients. Essentially, when performing a surgery without anesthetic, it
will give them the same mood debuff that they would suffer if you had
failed a surgery step (fairly long lasting mood debuff that is
removeable with alcohol or a nap).

Also adds experimental surgeries to morbid surgeries, meaning coroners
now do them faster and get a mood bonus for completing them. The
experimental surgery step now also causes a lot of pain when performed
by someone who is morbidly inclined, such as the coroner. This step is
the part where you are interacting with the patient with an open hand
and is contextual to the experimental surgery (thread the patients
veins, ground their nerves, etc). Anesthetic will mitigate this
entirely.

## Why It's Good For The Game

Cruel tools are cruel for a reason, using them on the living is akin to
torture. So they are going to hurt, a lot. And this gives those tools
some added mechanical flavor befitting of a mad doctor. Experimental
surgeries are all quite morbid in general, so its very thematic to add
them to the list of morbid surgeries. And the part where you start
interacting with the body is perhaps the most morbid part of those
surgeries! It also makes sense for that to cause quite a lot of pain,
its a delicate procedure so you really should have the patient under
anesthesia of some kind.

## Changelog

🆑
add:experimental surgeries are now morbid surgeries, and as such
coroners, or anyone else morbidly inclined, get a slight speed boost
when performing them. Coroner's, or anyone morbidly inclined will also
get a mood boost from completing these surgeries.
add:morbid tools now cause a great deal of pain for the patient if used
without anesthesia. The experimental surgery step will now cause a great
deal of pain when performed by someone who is morbidly inclined, such as
the coroner, however this can be avoided with anesthesia.
/🆑
2025-06-21 22:21:56 -04:00

59 lines
2.2 KiB
Plaintext

/datum/surgery/advanced/bioware/vein_threading
name = "Vein Threading"
desc = "A surgical procedure which severely reduces the amount of blood lost in case of injury."
surgery_flags = SURGERY_MORBID_CURIOSITY
possible_locs = list(BODY_ZONE_CHEST)
steps = list(
/datum/surgery_step/incise,
/datum/surgery_step/retract_skin,
/datum/surgery_step/clamp_bleeders,
/datum/surgery_step/incise,
/datum/surgery_step/incise,
/datum/surgery_step/apply_bioware/thread_veins,
/datum/surgery_step/close,
)
status_effect_gained = /datum/status_effect/bioware/heart/threaded_veins
/datum/surgery/advanced/bioware/vein_threading/mechanic
name = "Hydraulics Routing Optimization"
desc = "A robotic upgrade which severely reduces the amount of hydraulic fluid lost in case of injury."
requires_bodypart_type = BODYTYPE_ROBOTIC
steps = list(
/datum/surgery_step/mechanic_open,
/datum/surgery_step/open_hatch,
/datum/surgery_step/mechanic_unwrench,
/datum/surgery_step/prepare_electronics,
/datum/surgery_step/prepare_electronics,
/datum/surgery_step/apply_bioware/thread_veins,
/datum/surgery_step/mechanic_wrench,
/datum/surgery_step/mechanic_close,
)
/datum/surgery_step/apply_bioware/thread_veins
name = "thread veins (hand)"
/datum/surgery_step/apply_bioware/thread_veins/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(
user,
target,
span_notice("You start weaving [target]'s circulatory system."),
span_notice("[user] starts weaving [target]'s circulatory system."),
span_notice("[user] starts manipulating [target]'s circulatory system."),
)
display_pain(target, "Your entire body burns in agony!")
/datum/surgery_step/apply_bioware/thread_veins/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
. = ..()
if(!.)
return
display_results(
user,
target,
span_notice("You weave [target]'s circulatory system into a resistant mesh!"),
span_notice("[user] weaves [target]'s circulatory system into a resistant mesh!"),
span_notice("[user] finishes manipulating [target]'s circulatory system."),
)
display_pain(target, "You can feel your blood pumping through reinforced veins!")