From ff15d9031bb41a61afec3acf6051b0268935d7ae Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sun, 19 Jun 2022 07:14:49 -0400 Subject: [PATCH] New pAI verb Screen Message allows a pAI to display a message on their screen. This makes it so the message can be read if you open the card interface, and, if you happen to be holding the card in one of your inventory slots that isn't a container of something else (or if you have them in your PDA or tummy), then it will print the message in the chat. I decided to let it work for the tummy thing despite not making logical sense because people use bellies for all kinds of stuff, and it's not like you can powergame this so WHATEVER!!!!!!!!!!!!!!! Logs anything you write to this into say, annnnd. Yeah! This should let people who like to play mute pocket friends (me) quietly talk to the person holding the card, even when comms are down! (wow!) --- code/game/objects/items/devices/paicard.dm | 3 + code/modules/mob/living/silicon/pai/pai_vr.dm | 55 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 1e0183499b6..cd73303a734 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) var/image/screen_layer var/screen_color = "#00ff0d" var/last_notify = 0 + var/screen_msg /obj/item/device/paicard/relaymove(var/mob/user, var/direction) if(user.stat || user.stunned) @@ -259,6 +260,8 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) "} */ + if(screen_msg) + dat += "Message from [pai.name]
[screen_msg]" else if(looking_for_personality) dat += {" diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index fff39d06ce2..6018e0387f2 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -376,3 +376,58 @@ else hide_glow = FALSE update_icon() + +/mob/living/silicon/pai/verb/screen_message(message as text|null) + set category = "pAI Commands" + set name = "Screen Message" + set desc = "Allows you to display a message on your screen. This will show up in the chat of anyone who is holding your card." + + if (src.client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, "You cannot speak in IC (muted).") + return + if(loc != card) + to_chat(src, "Your message won't be visible while unfolded!") + if (!message) + message = tgui_input_text(src, "Enter text you would like to show on your screen.","Screen Message") + message = sanitize_or_reflect(message,src) + if (!message) + return + message = capitalize(message) + if (stat == DEAD) + return + card.screen_msg = message + var/logmsg = "(CARD SCREEN)[message]" + log_say(logmsg,src) + to_chat(src, "You print a message to your screen, \"[message]\"") + if(isliving(card.loc)) + var/mob/living/L = card.loc + if(L.client) + to_chat(L, "[src.name]'s screen prints, \"[message]\"") + else return + else if(isbelly(card.loc)) + var/obj/belly/b = card.loc + if(b.owner.client) + to_chat(b.owner, "[src.name]'s screen prints, \"[message]\"") + else return + else if(istype(card.loc, /obj/item/device/pda)) + var/obj/item/device/pda/p = card.loc + if(isliving(p.loc)) + var/mob/living/L = p.loc + if(L.client) + to_chat(L, "[src.name]'s screen prints, \"[message]\"") + else return + else if(isbelly(p.loc)) + var/obj/belly/b = card.loc + if(b.owner.client) + to_chat(b.owner, "[src.name]'s screen prints, \"[message]\"") + else return + else return + else return + to_chat(src, "Your message was relayed.") + for (var/mob/G in player_list) + if (istype(G, /mob/new_player)) + continue + else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears)) + if(is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) + to_chat(G, "[src.name]'s screen prints, \"[message]\"")