Files
Aurora.3/code/modules/psionics/abilities/emotional_suggestion.dm
T
17a879a21d Galatean Mind Blanker (#21017)
This PR adds a pair of new "BioAugs" as loadout options for Galatean
characters, called Mind Blanker. They come in two variants, and both are
available exclusively to Galateans. The basic version of the mind
blanker makes its user immune to mind-affecting psionic powers.

The advanced version of it inflicts lethal biofeedback on any psychic
that attempts to enter the user's mind, while also providing the user
with the same protection as the basic version. The advanced version is
more expensive, and is exclusively available to Galatean Consulars.

This PR was requested by Human Lore for their "Galatean Bioaugments"
list.
<img width="739" height="334" alt="image"
src="https://github.com/user-attachments/assets/8dd0e65c-2834-4949-8a03-8966f22eeca4"
/>

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2025-07-21 11:11:28 +00:00

71 lines
2.4 KiB
Plaintext

/singleton/psionic_power/emotional_suggestion
name = "Emotional Suggestion"
desc = "Allows you to psionically commune with the target."
icon_state = "tech_gambit"
ability_flags = PSI_FLAG_EVENT|PSI_FLAG_CANON
spell_path = /obj/item/spell/emotional_suggestion
/obj/item/spell/emotional_suggestion
name = "emotional suggestion"
desc = "Suggest an emotion to someone."
icon_state = "generic"
cast_methods = CAST_RANGED|CAST_MELEE
aspect = ASPECT_PSIONIC
cooldown = 10
psi_cost = 15
/obj/item/spell/emotional_suggestion/on_melee_cast(atom/hit_atom, mob/living/user, def_zone)
. = ..()
if(!.)
return
emotional_suggestion(hit_atom, user)
/obj/item/spell/emotional_suggestion/on_ranged_cast(atom/hit_atom, mob/user)
. = ..()
if(!.)
return
emotional_suggestion(hit_atom, user)
/obj/item/spell/emotional_suggestion/proc/emotional_suggestion(atom/hit_atom, mob/user)
if(!isliving(hit_atom))
return
var/mob/living/target = hit_atom
if(target.stat == DEAD)
to_chat(user, SPAN_WARNING("Not even a psion of your level can suggest to the dead."))
return
var/psi_blocked = target.is_psi_blocked(user)
if(psi_blocked)
to_chat(user, psi_blocked)
return
user.visible_message(SPAN_NOTICE("<i>[user] blinks, their eyes briefly developing an unnatural shine.</i>"))
var/text = tgui_input_list(user, "Which emotion would you like to suggest?", "Emotional Suggestion", list("Calm", "Happiness", "Sadness", "Fear", "Anger", "Stress", "Confusion"))
if(!text)
return
text = lowertext(text)
if(target.stat == DEAD)
to_chat(user, SPAN_WARNING("Not even a psion of your level can suggest to the dead."))
return
log_say("[key_name(user)] suggested an emotion to [key_name(target)]: [text]")
to_chat(user, SPAN_CULT("You psionically suggest an emotion to [target]: [text]"))
for (var/mob/M in GLOB.player_list)
if (istype(M, /mob/abstract/new_player))
continue
else if(M.stat == DEAD && (M.client.prefs.toggles & CHAT_GHOSTEARS))
to_chat(M, "<span class='notice'>[user] psionically suggests an emotion to [target]:</span> [text]")
var/mob/living/carbon/human/H = target
if(H.has_psionics())
to_chat(H, SPAN_NOTICE("You feel an emotion of <b>[text]</b> washing through your mind."))
else if(target.has_psi_aug())
to_chat(H, SPAN_NOTICE("You sense [user]'s psyche link with your psi-receiver, and an emotion envelops your mind: <b>[text]</b>."))
else
to_chat(H, SPAN_NOTICE("An emotion from outside your consciousness slips into your mind: <b>[text]</b>."))