From 8cb96fad580c5ecbfc3bcae69857f6d1dbe5fe50 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 21 Apr 2023 04:53:01 +0200
Subject: [PATCH] [MIRROR] Fixes body purist headrevs from getting mad at their
implant by making them unaware of it [MDB IGNORE] (#20616)
* Fixes body purist headrevs from getting mad at their implant by making them unaware of it
* Update surgery.dm
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
---
code/__DEFINES/surgery.dm | 4 +++-
code/datums/quirks/negative_quirks.dm | 7 ++++---
.../game/objects/items/devices/scanners/health_analyzer.dm | 2 +-
code/modules/antagonists/revolution/revolution.dm | 6 +++++-
code/modules/mob/living/carbon/human/examine.dm | 2 +-
code/modules/surgery/organs/augments_eyes.dm | 2 +-
code/modules/surgery/organs/augments_internal.dm | 1 -
7 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/code/__DEFINES/surgery.dm b/code/__DEFINES/surgery.dm
index 76a0bb9d7ec..8cfb61fe63b 100644
--- a/code/__DEFINES/surgery.dm
+++ b/code/__DEFINES/surgery.dm
@@ -13,9 +13,11 @@
#define ORGAN_SYNTHETIC_EMP (1<<5)
///Can't be removed using surgery
#define ORGAN_UNREMOVABLE (1<<6)
+/// Can't be seen by scanners, doesn't anger body purists
+#define ORGAN_HIDDEN (1<<7)
// SKYRAT EDIT START - Customization
/// Synthetic organ granted by a species (for use for organ replacements between species)
-#define ORGAN_SYNTHETIC_FROM_SPECIES (1<<7)
+#define ORGAN_SYNTHETIC_FROM_SPECIES (1<<8)
// SKYRAT EDIT END
// Flags for the bodypart_flags var on /obj/item/bodypart
diff --git a/code/datums/quirks/negative_quirks.dm b/code/datums/quirks/negative_quirks.dm
index 6015545d078..6369d6d0891 100644
--- a/code/datums/quirks/negative_quirks.dm
+++ b/code/datums/quirks/negative_quirks.dm
@@ -1110,7 +1110,7 @@
if(!IS_ORGANIC_LIMB(limb))
cybernetics_level++
for(var/obj/item/organ/organ as anything in owner.organs)
- if(organ.organ_flags & ORGAN_SYNTHETIC)
+ if((organ.organ_flags & ORGAN_SYNTHETIC || organ.status == ORGAN_ROBOTIC) && !(organ.organ_flags & ORGAN_HIDDEN))
cybernetics_level++
update_mood()
@@ -1121,13 +1121,13 @@
/datum/quirk/body_purist/proc/on_organ_gain(datum/source, obj/item/organ/new_organ, special)
SIGNAL_HANDLER
- if(new_organ.organ_flags & ORGAN_SYNTHETIC || new_organ.status == ORGAN_ROBOTIC) //why the fuck are there 2 of them
+ if((new_organ.organ_flags & ORGAN_SYNTHETIC || new_organ.status == ORGAN_ROBOTIC) && !(new_organ.organ_flags & ORGAN_HIDDEN)) //why the fuck are there 2 of them
cybernetics_level++
update_mood()
/datum/quirk/body_purist/proc/on_organ_lose(datum/source, obj/item/organ/old_organ, special)
SIGNAL_HANDLER
- if(old_organ.organ_flags & ORGAN_SYNTHETIC || old_organ.status == ORGAN_ROBOTIC)
+ if((old_organ.organ_flags & ORGAN_SYNTHETIC || old_organ.status == ORGAN_ROBOTIC) && !(old_organ.organ_flags & ORGAN_HIDDEN))
cybernetics_level--
update_mood()
@@ -1142,6 +1142,7 @@
if(!IS_ORGANIC_LIMB(old_limb))
cybernetics_level--
update_mood()
+
/datum/quirk/cursed
name = "Cursed"
desc = "You are cursed with bad luck. You are much more likely to suffer from accidents and mishaps. When it rains, it pours."
diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index 213aaa7dffb..f8ece4b9cf5 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -372,7 +372,7 @@
var/mob/living/carbon/carbontarget = target
var/cyberimp_detect
for(var/obj/item/organ/internal/cyberimp/CI in carbontarget.organs)
- if(CI.status == ORGAN_ROBOTIC && !CI.syndicate_implant)
+ if(CI.status == ORGAN_ROBOTIC && !(CI.organ_flags & ORGAN_HIDDEN))
cyberimp_detect += "[!cyberimp_detect ? "[CI.get_examine_string(user)]" : ", [CI.get_examine_string(user)]"]"
if(cyberimp_detect)
render_list += "Detected cybernetic modifications:\n"
diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm
index 7186ce845a6..8850d2868d2 100644
--- a/code/modules/antagonists/revolution/revolution.dm
+++ b/code/modules/antagonists/revolution/revolution.dm
@@ -406,7 +406,11 @@
if(give_hud)
var/obj/item/organ/internal/cyberimp/eyes/hud/security/syndicate/S = new()
S.Insert(C)
- to_chat(C, "Your eyes have been implanted with a cybernetic security HUD which will help you keep track of who is mindshield-implanted, and therefore unable to be recruited.")
+ if(C.get_quirk(/datum/quirk/body_purist))
+ to_chat(C, "Being a body purist, you would never accept cybernetic implants. Upon hearing this, your employers signed you up for a special program, which... for \
+ some odd reason, you just can't remember... either way, the program must have worked, because you have gained the ability to keep track of who is mindshield-implanted, and therefore unable to be recruited.")
+ else
+ to_chat(C, "Your eyes have been implanted with a cybernetic security HUD which will help you keep track of who is mindshield-implanted, and therefore unable to be recruited.")
/datum/team/revolution
name = "\improper Revolution"
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 8222c90d426..31381eed30d 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -415,7 +415,7 @@
if(HAS_TRAIT(user, TRAIT_MEDICAL_HUD))
var/cyberimp_detect
for(var/obj/item/organ/internal/cyberimp/CI in organs)
- if(CI.status == ORGAN_ROBOTIC && !CI.syndicate_implant)
+ if(CI.status == ORGAN_ROBOTIC && !(CI.organ_flags & ORGAN_HIDDEN))
cyberimp_detect += "[!cyberimp_detect ? "[CI.get_examine_string(user)]" : ", [CI.get_examine_string(user)]"]"
if(cyberimp_detect)
. += "Detected cybernetic modifications:"
diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm
index 3e9f48e37ab..21422828f24 100644
--- a/code/modules/surgery/organs/augments_eyes.dm
+++ b/code/modules/surgery/organs/augments_eyes.dm
@@ -53,4 +53,4 @@
/obj/item/organ/internal/cyberimp/eyes/hud/security/syndicate
name = "Contraband Security HUD Implant"
desc = "A Cybersun Industries brand Security HUD Implant. These illicit cybernetic eye implants will display a security HUD over everything you see."
- syndicate_implant = TRUE
+ organ_flags = ORGAN_SYNTHETIC | ORGAN_HIDDEN
diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm
index 2cb1e29e4e2..0ae0cbc962a 100644
--- a/code/modules/surgery/organs/augments_internal.dm
+++ b/code/modules/surgery/organs/augments_internal.dm
@@ -7,7 +7,6 @@
organ_flags = ORGAN_SYNTHETIC
var/implant_color = "#FFFFFF"
var/implant_overlay
- var/syndicate_implant = FALSE //Makes the implant invisible to health analyzers and medical HUDs.
/obj/item/organ/internal/cyberimp/New(mob/implanted_mob = null)
if(iscarbon(implanted_mob))