From d012414d8e2bc6f8a87848bf2a8d5aeb7b7f874a Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 3 Feb 2023 17:01:09 +0100 Subject: [PATCH] [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 :cl: 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. /:cl: * 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> --- code/modules/admin/verbs/adminevents.dm | 2 ++ .../abductor/equipment/abduction_gear.dm | 2 ++ .../modules/antagonists/abductor/equipment/gland.dm | 2 ++ .../spells/spell_types/list_target/telepathy.dm | 13 +++++++++++-- .../spells/spell_types/self/personality_commune.dm | 4 ++++ 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/adminevents.dm b/code/modules/admin/verbs/adminevents.dm index 3c1c8a67a7b..179cf2d2657 100644 --- a/code/modules/admin/verbs/adminevents.dm +++ b/code/modules/admin/verbs/adminevents.dm @@ -18,6 +18,7 @@ if(usr) if (usr.client) if(usr.client.holder) + M.balloon_alert(M, "you hear a voice") to_chat(M, "You hear a voice in your head... [msg]", 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." : ":"] [input]. 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! diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 954cb391ff0..2173abce21d 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -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: [message]")) to_chat(user, span_notice("You send the message to your target.")) log_directed_talk(user, L, message, LOG_SAY, "abductor whisper") diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm index 2893172551e..69f789e2b70 100644 --- a/code/modules/antagonists/abductor/equipment/gland.dm +++ b/code/modules/antagonists/abductor/equipment/gland.dm @@ -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 completely forget about your previous orders.")) owner.clear_alert(ALERT_MIND_CONTROL) active_mind_control = FALSE diff --git a/code/modules/spells/spell_types/list_target/telepathy.dm b/code/modules/spells/spell_types/list_target/telepathy.dm index 1b00ed0f4be..c70fd6be3c4 100644 --- a/code/modules/spells/spell_types/list_target/telepathy.dm +++ b/code/modules/spells/spell_types/list_target/telepathy.dm @@ -36,16 +36,25 @@ var/formatted_message = "[message]" + var/failure_message_for_ghosts = "" + to_chat(owner, "You transmit to [cast_on]: [formatted_message]") if(!cast_on.can_block_magic(antimagic_flags, charge_cost = 0)) //hear no evil - to_chat(cast_on, "You hear something behind you talking... [formatted_message]") + cast_on.balloon_alert(cast_on, "you hear a voice") + to_chat(cast_on, "You hear a voice in your head... [formatted_message]") + else + owner.balloon_alert(owner, "transmission blocked!") + to_chat(owner, "Something has blocked your transmission!") + failure_message_for_ghosts = " (blocked by antimagic)" 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 = "[owner] [src]:" + var/from_mob_name = "[owner] [src]" + from_mob_name += failure_message_for_ghosts + from_mob_name += ":" var/to_link = FOLLOW_LINK(ghost, cast_on) var/to_mob_name = span_name("[cast_on]") diff --git a/code/modules/spells/spell_types/self/personality_commune.dm b/code/modules/spells/spell_types/self/personality_commune.dm index a5b969b5bef..cd10c2b7736 100644 --- a/code/modules/spells/spell_types/self/personality_commune.dm +++ b/code/modules/spells/spell_types/self/personality_commune.dm @@ -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))