Files
Bubberstation/code/modules/surgery/sleeper_protocol.dm
necromanceranne 7088097eb8 [NO SELF SURGERY] Cybernetically augmented humanoids have alternative surgeries (both standard and advanced) [NO SELF SURGERY], as well as other misc additions (#84980)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

### Cybernetic variant surgeries

Many of the surgeries able to be performed on organic limbs now have a
version for robotic limbs. This includes;

### NONE OF THESE ARE SELF SURGERY OPTIONS

- Organ repair surgeries
- Stomach Pumps
- Blood filtering
- Autopsies
- Lobotomies
- Pacification
- Lipoplasty
- Amputation
- Brainwashing (including the Sleeper Agent protocol)
- Nerve Splicing and Nerve Grounding
- Vein Threading and Vein Muscle Membrane
- Ligament Hook and Ligament Reinforcement
- Cortex Folding and Cortex Imprint

These utilize mechanical steps and unique versions of their special step
that uses mechanical tools. But many of these are able to be performed
using standard surgery tools.

In fact, I've improved the chances for doing surgery using standard
tools for mechanical steps, recognizing that medical is often going to
end up with synths in medbay whether we like it or not.

### NONE OF THESE ARE SELF SURGERY OPTIONS

### Organ Repair Surgeries correct EMP Failure Cascades

When you repair a synthetic organ using the organ repair surgery, it
reverses the effects of organ failure from an EMP. That is, the
permanent failure of an organ. This allows for an alternative method to
replacing that organ wholesale, which makes treating synths a lot easier
for medical and EMPs less of a RNG death knell for people with
cybernetic organs. However, it still needs the surgery to correct the
error, so this isn't removing the danger of being EMP'd.

### Health Scanners report EMP Failure Cascades

Scanning someone with a cybernetic organ now actually tells you that the
organ is failing. Wow, why wasn't this already the case?

## Why It's Good For The Game

#### Surgeries

With the new techweb changes, augmented crew are becoming a lot, lot
more common place, as are the implantation of cybernetics. These are
required for research to be able to progress both medical and robotics
technology. Therefore, those using these items are becoming a lot more
common place.

However, our medical system is quite blind to these people as of the
moment. A lot of surgeries that are critical to recovering the
injured/dead do not work on them outright, and medical can't resolve the
problems that come with cybernetic organs entirely.

This change hopefully modernizes our surgeries to account for these
synthetic/cybernetically-altered crew members that neither forces people
to choose between taking them to medical or robotics (they're often
going to end up in medical regardless), and letting either department to
function as a place for these crew to obtain medical services.

Also gives them some cooler flavour to their surgeries, which I think is
the most important part of this change. It actually feels like you're
more than human without getting too much in the way of gameplay loops
and over complicating things.

Edit: To provide a bit of extra clarity on 'Why allow the advanced
surgeries?'

You can actually have the benefits of the advanced surgeries as an
augmented humanoid. The problem is that it has to take place before you
are augmented. They're not mutually exclusive, just slow to apply. There
isn't much reason for there not to be a method to apply them to robotic
people, particularly since augmentations are expected earlier in the
round than advanced surgeries.

#### EMP Failure and Detection

This mechanic is probably what people hate the most about cybernetics.
It is largely invisible, and forces you to have to go through a tedious
process of organ replacement on what could be any one of your organs,
since it wasn't being broadcast to the user which one is failing until
you are possibly already doubling over.

Now, it is easier for medical staff to identify if they have a
cybernetically enhanced patient in the midst of a failure cascade, and
have the means to resolve the problem. Robotics and cyborgs can too,
since sometimes they'll have the means usually to do the same operations
and detection.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Robotic variants of many of the standard and advanced humanoid
surgeries. You cannot perform self surgery with these surgeries.
balance: It is easier to do robotic surgeries with normal surgery tools.
qol: It is now possible to detect EMP organ failure cascades via health
scanners.
qol: EMP organ failure cascades can be reversed by doing organ repair
surgeries targeting the failing organ.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-07-22 18:07:05 +01:00

92 lines
3.8 KiB
Plaintext

/obj/item/disk/surgery/sleeper_protocol
name = "Suspicious Surgery Disk"
desc = "The disk provides instructions on how to turn someone into a sleeper agent for the Syndicate."
surgeries = list(
/datum/surgery/advanced/brainwashing_sleeper,
/datum/surgery/advanced/brainwashing_sleeper/mechanic,
)
/datum/surgery/advanced/brainwashing_sleeper
name = "Sleeper Agent Surgery"
desc = "A surgical procedure which implants the sleeper protocol into the patient's brain, making it their absolute priority. It can be cleared using a mindshield implant."
requires_bodypart_type = NONE
possible_locs = list(BODY_ZONE_HEAD)
steps = list(
/datum/surgery_step/incise,
/datum/surgery_step/retract_skin,
/datum/surgery_step/saw,
/datum/surgery_step/clamp_bleeders,
/datum/surgery_step/brainwash/sleeper_agent,
/datum/surgery_step/close,
)
/datum/surgery/advanced/brainwashing_sleeper/mechanic
name = "Sleeper Agent Reprogramming"
desc = "Malware which directly implants the sleeper protocol directive into the robotic patient's operating system, making it their absolute priority. It can be cleared using a mindshield implant."
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/brainwash/sleeper_agent/mechanic,
/datum/surgery_step/mechanic_wrench,
/datum/surgery_step/mechanic_close,
)
/datum/surgery/advanced/brainwashing_sleeper/can_start(mob/user, mob/living/carbon/target)
. = ..()
if(!.)
return FALSE
var/obj/item/organ/internal/brain/target_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
if(!target_brain)
return FALSE
return TRUE
/datum/surgery_step/brainwash/sleeper_agent
time = 25 SECONDS
var/static/list/possible_objectives = list(
"You love the Syndicate.",
"Do not trust Nanotrasen.",
"The Captain is a lizardperson.",
"Nanotrasen isn't real.",
"They put something in the food to make you forget.",
"You are the only real person on the station.",
"Things would be a lot better on the station if more people were screaming, someone should do something about that.",
"The people in charge around here have only ill intentions for the crew.",
"Help the crew? What have they ever done for you anyways?",
"Does your bag feel lighter? I bet those guys in Security stole something from it. Go get it back.",
"Command is incompetent, someone with some REAL authority should take over around here.",
"The cyborgs and the AI are stalking you. What are they planning?",
)
/datum/surgery_step/brainwash/sleeper_agent/mechanic
name = "reprogram (multitool)"
implements = list(
TOOL_MULTITOOL = 85,
TOOL_HEMOSTAT = 50,
TOOL_WIRECUTTER = 50,
/obj/item/stack/package_wrap = 35,
/obj/item/stack/cable_coil = 15)
preop_sound = 'sound/surgery/hemostat1.ogg'
success_sound = 'sound/surgery/hemostat1.ogg'
/datum/surgery_step/brainwash/sleeper_agent/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
objective = pick(possible_objectives)
display_results(
user,
target,
span_notice("You begin to brainwash [target]..."),
span_notice("[user] begins to fix [target]'s brain."),
span_notice("[user] begins to perform surgery on [target]'s brain."),
)
display_pain(target, "Your head pounds with unimaginable pain!") // Same message as other brain surgeries
/datum/surgery_step/brainwash/sleeper_agent/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(target.stat == DEAD)
to_chat(user, span_warning("They need to be alive to perform this surgery!"))
return FALSE
. = ..()
if(!.)
return
target.gain_trauma(new /datum/brain_trauma/mild/phobia/conspiracies(), TRAUMA_RESILIENCE_LOBOTOMY)