Files
Bubberstation/code/modules/surgery/sleeper_protocol.dm
SpaceLoveSs13 2e1a819c4f Novastation Synthetic Refactor Port (#29204)
* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* Conflict Removal

* Update bow_arrows.dm

* Update bow_arrows.dm

* tthis also update the actual bow & arrow code

* Update arrow.dm

* [MIRROR] Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death [MDB IGNORE] (#3595)

* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* modularize bone dice(???)

* gives the cargo crate arrows

* conflict

* icon updates

rotates our bows the same way, adds invisible pixels for easier loading
to our primitive bows, removes bow/arrow icons that are clones of
upstream's

also a hack for arrow overlays on bows- currently just defaults to
default arrows if an overlay doesn't exist for it, but our only arrows
aren't that distinct with default arrows at that size (we do not have
alternative arrow overlay sprites)

* recipe changes

im not gonna try explaining everything here but the general idea is that
the cargo fletching kit is sorta novelty bows, and the big boy stuff you
get from smithing

* update ammo hud for bows

* this shouldn't be here

* i forgot to save these

cleans up the recipes, ashwalker arrows are just made by combining by
hand (you could already do this, the recipes were a noobtrap)
and the cargo kit is cheaper

* un-nerf the chaplain bow

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>

* Refactor Synths away from /Robot/ limbs, Cybernetically augmented humanoids have alternative surgeries (#3970)

* [NO SELF SURGERY] Cybernetically augmented humanoids have alternative surgeries (both standard and advanced) [NO SELF SURGERY], as well as other misc additions

* 1

* p1

* Update limbs.dm

* oh yeah Taurs

* Limbs and Techwebs for them

* 3

* EMP

* Surgery Removals from Synths

* 5

* test

* Look Ma, no more surgery

* Update tgstation.dme

* Update hepatectomy.dm

* little bit more edit cleanup and diff reset

* Update surgery.dm

* Synth Organ Surgery!

* Update lungs.dm

* target

* 4

* Update synth_defines.dm

* you add the metal before the zap zap

* Apply suggestions from code review

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* 1

* Update code/modules/surgery/hepatectomy.dm

* Update code/modules/surgery/advanced/brainwashing.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* Update tgstation.dme

* fix stuff

* Update declarations.dm

* fix duplicate defines

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Zergspower <22140677+Zergspower@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Andrew <mt.forspam@gmail.com>
2024-08-11 19:56:17 +05:30

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)