Fixes body purist headrevs from getting mad at their implant by making them unaware of it (#74346)

## About The Pull Request

Body purists no longer mind implants with a special trait for "hidden
implants". This special trait is replacing the "syndicate implant"
variable and was just used to hide certain implants from medical
scanners.

## Why It's Good For The Game

fixes #74180

## Changelog
🆑
fix: Body purist headrevs having a bad time with their implant
/🆑
This commit is contained in:
tralezab
2023-04-17 23:38:49 +02:00
committed by GitHub
parent 7ad8223ed9
commit 5c1c0ca682
7 changed files with 14 additions and 8 deletions
+2
View File
@@ -13,6 +13,8 @@
#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)
// Flags for the bodypart_flags var on /obj/item/bodypart
/// Bodypart cannot be dismembered or amputated
+4 -3
View File
@@ -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."
@@ -367,7 +367,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 += "<span class='notice ml-1'>Detected cybernetic modifications:</span>\n"
@@ -388,7 +388,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"
@@ -373,7 +373,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)
. += "<span class='notice ml-1'>Detected cybernetic modifications:</span>"
+1 -1
View File
@@ -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
@@ -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))