Files
Bubberstation/code/game/objects/items/implants/implant_mindshield.dm
GPeckman f69284be5b Abductors can no longer be converted by conversion antags (#84766)
## About The Pull Request

Basically what the title says. Abductors cannot be converted by
bloodbrother/revs/cult. They will NOT show up as having a mindshield,
however.
## Why It's Good For The Game

Abductors are, by design, incredibly strong. You are not meant to be
able to win against them, and this is reflected policy-wise by the fact
that they're a restricted antagonist. However, this is still a problem
when conversion antags get involved. If an abductor becomes a cultist or
a revolutionary, then suddenly every other player who isn't also
converted has to deal with an abductor without the normal restrictions.
It's not fun to play against and in general just shouldn't happen.
## Changelog
🆑
balance: Abductors (the antag, not the species) can no longer be
converted by any antagonist.
/🆑
2024-08-14 13:10:57 +02:00

59 lines
2.4 KiB
Plaintext

/obj/item/implant/mindshield
name = "mindshield implant"
desc = "Protects against brainwashing."
actions_types = null
/obj/item/implant/mindshield/get_data()
return "<b>Implant Specifications:</b><BR> \
<b>Name:</b> Nanotrasen Employee Management Implant<BR> \
<b>Life:</b> Ten years.<BR> \
<b>Important Notes:</b> Personnel injected with this device are much more resistant to brainwashing.<BR> \
<HR> \
<b>Implant Details:</b><BR> \
<b>Function:</b> Contains a small pod of nanobots that protects the host's mental functions from manipulation.<BR> \
<b>Special Features:</b> Will prevent and cure most forms of brainwashing.<BR> \
<b>Integrity:</b> Implant will last so long as the nanobots are inside the bloodstream."
/obj/item/implant/mindshield/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE)
. = ..()
if(!.)
return FALSE
if(target.mind)
if((SEND_SIGNAL(target.mind, COMSIG_PRE_MINDSHIELD_IMPLANT, user) & COMPONENT_MINDSHIELD_RESISTED))
if(!silent)
target.visible_message(span_warning("[target] seems to resist the implant!"), span_warning("You feel something interfering with your mental conditioning, but you resist it!"))
removed(target, TRUE)
qdel(src)
return TRUE
if(SEND_SIGNAL(target.mind, COMSIG_MINDSHIELD_IMPLANTED, user) & COMPONENT_MINDSHIELD_DECONVERTED)
if(prob(1) || check_holidays(APRIL_FOOLS))
target.say("I'm out! I quit! Whose kidneys are these?", forced = "They're out! They quit! Whose kidneys do they have?")
target.add_traits(list(TRAIT_MINDSHIELD, TRAIT_UNCONVERTABLE), IMPLANT_TRAIT)
target.sec_hud_set_implants()
if(!silent)
to_chat(target, span_notice("You feel a sense of peace and security. You are now protected from brainwashing."))
return TRUE
/obj/item/implant/mindshield/removed(mob/target, silent = FALSE, special = FALSE)
. = ..()
if(!.)
return FALSE
if(isliving(target))
var/mob/living/L = target
target.remove_traits(list(TRAIT_MINDSHIELD, TRAIT_UNCONVERTABLE), IMPLANT_TRAIT)
L.sec_hud_set_implants()
if(target.stat != DEAD && !silent)
to_chat(target, span_boldnotice("Your mind suddenly feels terribly vulnerable. You are no longer safe from brainwashing."))
return TRUE
/obj/item/implanter/mindshield
name = "implanter (mindshield)"
imp_type = /obj/item/implant/mindshield
/obj/item/implantcase/mindshield
name = "implant case - 'Mindshield'"
desc = "A glass case containing a mindshield implant."
imp_type = /obj/item/implant/mindshield