From 24fbd712a9a87bb2d006d38d9328aab1e771b4e7 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 1 Dec 2022 16:26:56 +0100 Subject: [PATCH] [MIRROR] Overlays for notifying when radios are on broadcast [MDB IGNORE] (#17630) * Overlays for notifying when radios are on broadcast (#71006) ## About The Pull Request Adds overlays for when the radios are on broadcast snd speaker Theres 4 overlay settings, an "idle" (broadcasting or speaker enabled) and "active" (flicked when recieving or sending a radio msg) ### SBR The base icon is the screen being off, and the bars are seperated into ovelays with the top one being broadcasting. The idle overlay displays the bar short, while the active will make the bars animate like the current animation) having both off will make the antenna go down since its "not being used" ### Intercoms Intercoms are simpler, just having lights on the speaker flash green if the corresponding mode is active ### Headsets Headsets are unaffected because of the small sprites. except miner and explo headsets where the antenna will go down if both are disabled bc its "not being used" ## Why It's Good For The Game Helps you tell whether somone (like ai) is spying, makes it easier to notice whether youee in broadcasting range of an intercom, and its a cool immersion thing to ""see"" the mic readings on a sbr ## Changelog :cl: add: radios have overlays for showing broadcasting settings /:cl: Co-authored-by: candycanes Co-authored-by: etherware-novice Co-authored-by: Candycaneannihalator Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> * Overlays for notifying when radios are on broadcast * SR sprite updates Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com> Co-authored-by: candycanes Co-authored-by: etherware-novice Co-authored-by: Candycaneannihalator Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> Co-authored-by: tastyfish --- code/game/machinery/telecomms/broadcasting.dm | 3 ++ .../objects/items/devices/radio/headset.dm | 9 ++++++ .../objects/items/devices/radio/intercom.dm | 6 ++++ .../game/objects/items/devices/radio/radio.dm | 26 ++++++++++++++++++ icons/obj/radio.dmi | Bin 3778 -> 8259 bytes .../aesthetics/intercom/icons/intercom.dmi | Bin 633 -> 1018 bytes .../modules/blueshield/icons/radio.dmi | Bin 742 -> 1059 bytes 7 files changed, 44 insertions(+) diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index 45e296aa8da..50dc4af8c9e 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -176,6 +176,9 @@ if(independent_radio.independent && independent_radio.can_receive(frequency, signal_reaches_every_z_level)) radios += independent_radio + for(var/obj/item/radio/called_radio as anything in radios) + called_radio.on_recieve_message() + // From the list of radios, find all mobs who can hear those. var/list/receive = get_hearers_in_radio_ranges(radios) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 7c9ac016c39..d176ad87478 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -37,6 +37,12 @@ GLOBAL_LIST_INIT(channel_tokens, list( /// A list of all languages that this headset allows the user to understand. Populated by language encryption keys. var/list/language_list + // headset is too small to display overlays + overlay_speaker_idle = null + overlay_speaker_active = null + overlay_mic_idle = null + overlay_mic_active = null + /obj/item/radio/headset/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins putting \the [src]'s antenna up [user.p_their()] nose! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer!")) return TOXLOSS @@ -270,6 +276,9 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "mining radio headset" desc = "Headset used by shaft miners." icon_state = "mine_headset" + // "puts the antenna down" while the headset is off + overlay_speaker_idle = "headset_up" + overlay_mic_idle = "headset_up" keyslot = /obj/item/encryptionkey/headset_mining /obj/item/radio/headset/headset_srv diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index dc39e7dbecd..2685666175e 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -8,6 +8,12 @@ dog_fashion = null unscrewed = FALSE + overlay_speaker_idle = "intercom_s" + overlay_speaker_active = "intercom_recieve" + + overlay_mic_idle = "intercom_m" + overlay_mic_active = null + /obj/item/radio/intercom/unscrewed unscrewed = TRUE diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 933c05c014a..277f55d3ab2 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -74,6 +74,16 @@ /// associative list of the encrypted radio channels this radio can listen/broadcast to, of the form: list(channel name = channel frequency) var/list/secure_radio_connections + /// overlay when speaker is on + var/overlay_speaker_idle = "s_idle" + /// overlay when recieving a message + var/overlay_speaker_active = "s_active" + + /// overlay when mic is on + var/overlay_mic_idle = "m_idle" + /// overlay when speaking a message (is displayed simultaniously with speaker_active) + var/overlay_mic_active = "m_active" + /obj/item/radio/Initialize(mapload) wires = new /datum/wires/radio(src) secure_radio_connections = list() @@ -190,6 +200,7 @@ readd_listening_radio_channels() else if(!listening) remove_radio_all(src) + update_icon() /** * setter for broadcasting that makes us not hearing sensitive if not broadcasting and hearing sensitive if broadcasting @@ -208,6 +219,7 @@ become_hearing_sensitive(INNATE_TRAIT) else if(!broadcasting) lose_hearing_sensitivity(INNATE_TRAIT) + update_icon() ///setter for the on var that sets both broadcasting and listening to off or whatever they were supposed to be /obj/item/radio/proc/set_on(new_on) @@ -247,6 +259,8 @@ if(use_command) spans |= SPAN_COMMAND + flick_overlay_view(overlay_mic_active, 5 SECONDS) + /* Roughly speaking, radios attempt to make a subspace transmission (which is received, processed, and rebroadcast by the telecomms satellite) and @@ -351,6 +365,9 @@ return TRUE return FALSE +/obj/item/radio/proc/on_recieve_message() + flick_overlay_view(overlay_speaker_active, 5 SECONDS) + /obj/item/radio/ui_state(mob/user) return GLOB.inventory_state @@ -440,6 +457,15 @@ else . += span_notice("It cannot be modified or attached.") +/obj/item/radio/update_overlays() + . = ..() + if(unscrewed) + return + if(broadcasting) + . += overlay_mic_idle + if(listening) + . += overlay_speaker_idle + /obj/item/radio/screwdriver_act(mob/living/user, obj/item/tool) add_fingerprint(user) unscrewed = !unscrewed diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index 8690926cb04c0f9236ed266bf428ebdeea184786..88dbdbcc1a5732b7a6ca9de5d4a56c7d5a50fe80 100644 GIT binary patch literal 8259 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 literal 3778 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 diff --git a/modular_skyrat/modules/aesthetics/intercom/icons/intercom.dmi b/modular_skyrat/modules/aesthetics/intercom/icons/intercom.dmi index b5c39c3f1a3dddd488f6dd63243a479490c78100..c135b858ad788632096ca68c2e8bc532fff25f8b 100644 GIT binary patch delta 983 zcmey#@{3)yGr-TCmrII^fq{Y7)59eQNGE_W2OE%lG^5-CNG+VGYFy7y)YH4e!Z^tI zvay%KoJW(6ObSs5)-+zPvQ@*mOe1x?kE=i98?gwZq0*N&zbnb z8IB)J`yp_xw3LB?S;W)DF{Gk?&fB~88Nz`w>>sQP1;bmng$T6srRjE9m~iPS$;P}5 zah=f7RL{<;pTPdV>5@W6>8jPv8hUKAxsvqT0!psiI3<*38In~#Aqt=GS)Gu>b ze39eyo&DEePhAzi`l{E}?YXBJ^ycrE=GI>nySJw8+4e6vS?;@>t;QDxoxK^y z+n4c8S*8E1@XwJgn-x>+nAhFiF}XVJvitI;Z>y*N*PDIAUUF^SFNsY3xeI@#pNs37 zXR|MU#lGB~+ZdCT7jF{(@3TKHcD>A=e?~K+|J5htD3-qN-hX-ePOWf;`}@|Pj$0f1 zGA?%i&7kMYC$j29-51}<6p($ZwRm%Fb?M$udGBWAEPHWHyzz&S*E)tPv%VGli@aa= z`SrWE(c#U{xyw_9FRLwheLJN_TET3Vx_|6M-*o0zMYXfnogFMR!c%lfmmPt=s>+oBj(nCjkLelv>s;@8|0cLar{ zH`!D#OgjJh?Wtk6tqgv#uF0ZB;ak$=lSyBj z7tFk8T;}`C*uhKA&;xhQpEK(X91R%^*cgs69FSm; zU}gYEP7h-PNYKFr2Cg#vPnwo#JipxS;QsfM%*4O{?P81BU-u+?kIu6A_niFdUw1dJ z@z=ZXvz0>-0WNNk-qo*Cy6}AH!T1wk6G7IjnQypS=gSY)ZI-eORe$Q691E-%7;Wns zbK`QDFFY2%@x+zk#YgU(Pf83xMP`+P4o{EsJ4iqK$h>9`x6u7QvAq_(yE}i1O4>Vo zc&KtOY#w9%`T6;O_HNgI%>LrTBUO);Pku0FOqH`|;I*wgs9+&`fbGu@)@wfm9XLUr vo@47}q4CFO$0Mk3HGydn>Rosk{AT{ly_CDV`(zO?lQMX^`njxgN@xNA@&>q+ delta 595 zcmV-Z0<8V|2l)ggiBL{Q4GJ0x0000DNk~Le0000$0000W2nGNE0HU3Kga7~ld66YE ze^9VhFgD`i%t*~l&nSU#ic1npQWb0!lrr;5Qj3!FbCtL_Q!Jp@xj55`5_3}_ zYz&3E1-O(dE4cc(D7g4~asdE|N+<~W$g&^+00Fy6L_t(&f$f;FYQj(yhX0hlLP5pZ zp+0~V2d8!rad363A_#>JVjUE!&AJe>$ouozj|wpZZdpph((UtqfL43|2{*)@=Gx0f?ln z)ylZN#JIhbY3-@L%nfi{gdQL6NL!c~H~?^^o|D8WxY3uneYODSNNt+4Zt;S{{sZ2Z@UPEfzZDYi2~p@z)chYw*hXVB>=b$a1#Z< hZGf970B!@^`~V0Y01SPiu}lB}002ovPDHLkV1h6r2V?*M diff --git a/modular_skyrat/modules/blueshield/icons/radio.dmi b/modular_skyrat/modules/blueshield/icons/radio.dmi index 966ee905633b204660723360a0fef58f20a87488..94581e4346f385d1e1d28d3ba59e4ae356c5246a 100644 GIT binary patch delta 1002 zcmVOCGkj zGMQl8`>ic2>GvsRK)GD@FaT_mo^TjmE-!m1oW%dWxDYMIg!__wr?demy3_d#e@Dlk zpwl^pv`wIqN6|RqxR4Rl(lIJX89?HZLZR9}6QpVajXa8Xwzq?HCnK%P&Uw%P(i5(_If?AT!4js3*aiBED5jI*DW+5 zT=Wn$1-IjVT>p7?7VN_;2xm$he_C7xNMsnwfH!MvUi;((I&V(_Y}z{`ZGyJH18D9C z;sK{!!|e_#(3WQB{A zbOvBS$>*PlKDKcMrqO65{%NX?6TNwq89-plO;10Lo%`vECmg>%t*iv~NfspoXw;)d zAJaZ<@qSkB(i%V}_qXdpes|`dDH?^9 z17rgm6?Cq+^Z55GPXRMRe`e%~#0I1dns6tViyT?H0s7VLDi4MhKZOwz7In8Lo9P70I{WlW1?9_N>F%ajsE^RJz*hW8Nh8!Vps{+{cQ5<8UKOMb zz>$?HaGE86yaDxkJl(2PD&F@m58?i!uQ1r^iZ=fc85a|OJ8TT#4uBhD0Cxb~OuPYq Y0RNeHuMsGzUH||907*qoM6N<$g1$h&XaE2J delta 682 zcmV;b0#*H^2<8QUiBL{Q4GJ0x0000DNk~Le0001B0000$2m=5B0MhD$JOBUyV^B;~ zMZmzo7#J8PB_&BoNr;Gu007JY0RJ*FGQhyV0A~M?%<=#K|0pOZS(UmcCno^R|Cs;) zW@ece7Z*}9OCs5bd|D#tDg%vm;m6e}pZv{h27&y|K_Vz^-b@z2yc-!{KdjyWI1&r6pB6I#u4&tn zfZ*R`0JPN_w)_PET125gd_`JHF#AgYgHnPW=p{hcbxA<L=Ox-nubALnAw;W)j|6bwhEJkbG7DV8AY2am~*qdM>R9Kj)f>UvP*e>N9p6AJ#A34aLwv}z>@(LWae zc(&j6a!CMY|9k)v;E)7Ff6SaSOc8KM0&r0tfC!idVAu~3Gv}