[MIRROR] sending a message with telepathy (or an abductor gadget or prayer response) now gives your target a balloon alert [MDB IGNORE] (#19118)

* sending a message with telepathy (or an abductor gadget or prayer response) now gives your target a balloon alert (#73087)

## About The Pull Request

revenant telepathy, genetic telepathy, eldritch telepathy, and split
personality communing now give the person you're sending a message to a
balloon alert to get them to check their chat window

EDIT: also added prayer responses, abductor messaging, and abductor mind
control to this list

EDIT: also added additional feedback for antimagic blocking telepathy
and tinfoil blocking abductor mind control

EDIT: also changed the telepathy reception message to more closely
resemble the prayer response one (they're still not identical, though)

![image](https://user-images.githubusercontent.com/42606352/215655699-5c6156a3-02ec-43e8-8cce-55a217888a7b.png)

![image](https://user-images.githubusercontent.com/42606352/215940716-d62706a6-294e-4677-8278-21bc1a969d19.png)

![image](https://user-images.githubusercontent.com/42606352/215940801-d842c448-4924-45e8-822c-bd74c66ca87f.png)
I tested the prayer stuff too, you'll just have to trust me on that one.

## Why It's Good For The Game

fixes https://github.com/tgstation/tgstation/issues/73031

## Changelog

🆑 ATHATH
qol: Revenant telepathy, genetic telepathy, eldritch telepathy, split
personality communing, prayer responses, abductor-to-abductee messaging,
and abductor mind control now give the person you're sending a message
to a balloon alert to get them to check their chat window.
qol: Failing to send a telepathic message and failing to use abductor
mind control on someone now gives better feedback.
tweak: The telepath-ee notification message has been slightly altered.
/🆑

* sending a message with telepathy (or an abductor gadget or prayer response) now gives your target a balloon alert

---------

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-02-03 17:01:09 +01:00
committed by GitHub
parent dd0dad4e5e
commit d012414d8e
5 changed files with 21 additions and 2 deletions
+2
View File
@@ -18,6 +18,7 @@
if(usr)
if (usr.client)
if(usr.client.holder)
M.balloon_alert(M, "you hear a voice")
to_chat(M, "<i>You hear a voice in your head... <b>[msg]</i></b>", confidential = TRUE)
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
@@ -58,6 +59,7 @@
log_directed_talk(mob, H, input, LOG_ADMIN, "reply")
message_admins("[key_name_admin(src)] replied to [key_name_admin(H)]'s [sender] message with: \"[input]\"")
H.balloon_alert(H, "you hear a voice")
to_chat(H, span_hear("You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from [sender == "Syndicate" ? "your benefactor" : "Central Command"]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] <b>[input].</b> Message ends.\""), confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Headset Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -363,6 +363,7 @@
return
if(C.can_block_magic(MAGIC_RESISTANCE_MIND, charge_cost = 0))
user.balloon_alert(user, "foiled!")
to_chat(user, span_warning("Your target seems to have some sort of mental blockage, preventing the message from being sent! It seems you've been foiled."))
return
@@ -381,6 +382,7 @@
if(QDELETED(L) || L.stat == DEAD)
return
L.balloon_alert(L, "you hear a voice")
to_chat(L, span_hear("You hear a voice in your head saying: </span><span class='abductor'>[message]"))
to_chat(user, span_notice("You send the message to your target."))
log_directed_talk(user, L, message, LOG_SAY, "abductor whisper")
@@ -61,6 +61,7 @@
if(!ownerCheck() || !mind_control_uses || active_mind_control)
return FALSE
mind_control_uses--
owner.balloon_alert(owner, "new compulsion")
to_chat(owner, span_userdanger("You suddenly feel an irresistible compulsion to follow an order..."))
to_chat(owner, span_mind_control("[command]"))
active_mind_control = TRUE
@@ -75,6 +76,7 @@
/obj/item/organ/internal/heart/gland/proc/clear_mind_control()
if(!ownerCheck() || !active_mind_control)
return FALSE
owner.balloon_alert(owner, "compulsion forgotten")
to_chat(owner, span_userdanger("You feel the compulsion fade, and you <i>completely forget</i> about your previous orders."))
owner.clear_alert(ALERT_MIND_CONTROL)
active_mind_control = FALSE
@@ -36,16 +36,25 @@
var/formatted_message = "<span class='[telepathy_span]'>[message]</span>"
var/failure_message_for_ghosts = ""
to_chat(owner, "<span class='[bold_telepathy_span]'>You transmit to [cast_on]:</span> [formatted_message]")
if(!cast_on.can_block_magic(antimagic_flags, charge_cost = 0)) //hear no evil
to_chat(cast_on, "<span class='[bold_telepathy_span]'>You hear something behind you talking...</span> [formatted_message]")
cast_on.balloon_alert(cast_on, "you hear a voice")
to_chat(cast_on, "<span class='[bold_telepathy_span]'>You hear a voice in your head...</span> [formatted_message]")
else
owner.balloon_alert(owner, "transmission blocked!")
to_chat(owner, "<span class='warning'>Something has blocked your transmission!</span>")
failure_message_for_ghosts = "<span class='[bold_telepathy_span]'> (blocked by antimagic)</span>"
for(var/mob/dead/ghost as anything in GLOB.dead_mob_list)
if(!isobserver(ghost))
continue
var/from_link = FOLLOW_LINK(ghost, owner)
var/from_mob_name = "<span class='[bold_telepathy_span]'>[owner] [src]:</span>"
var/from_mob_name = "<span class='[bold_telepathy_span]'>[owner] [src]</span>"
from_mob_name += failure_message_for_ghosts
from_mob_name += "<span class='[bold_telepathy_span]'>:</span>"
var/to_link = FOLLOW_LINK(ghost, cast_on)
var/to_mob_name = span_name("[cast_on]")
@@ -43,8 +43,12 @@
var/user_message = span_boldnotice("You concentrate and send thoughts to your other self:")
var/user_message_body = span_notice("[to_send]")
to_chat(cast_on, "[user_message] [user_message_body]")
trauma.owner.balloon_alert(trauma.owner, "you hear a voice")
to_chat(trauma.owner, "[fluff_text] [user_message_body]")
log_directed_talk(cast_on, trauma.owner, to_send, LOG_SAY, "[name]")
for(var/dead_mob in GLOB.dead_mob_list)
if(!isobserver(dead_mob))