diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index aaa3f87f3fc..2ed190fc060 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -5,7 +5,7 @@ if(get_dist(src, src.cable) > 1) var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) - M.show_message("\red [src.cable] rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2) + M.show_message("\red The data cable rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2) del(src.cable) regular_hud_updates() diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 3a538da4256..65814006ec2 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -66,6 +66,8 @@ left_part = src.softwareCamera() if("signaller") left_part = src.softwareSignal() + if("radio") + left_part = src.softwareRadio() //usr << browse_rsc('windowbak.png') // This has been moved to the mob's Login() proc @@ -113,8 +115,6 @@ temp = null return - - /mob/living/silicon/pai/Topic(href, href_list) ..() @@ -143,7 +143,16 @@ // Configuring onboard radio if("radio") - src.card.radio.attack_self(src) + if(href_list["freq"]) + var/new_frequency = (radio.frequency + text2num(href_list["freq"])) + if(new_frequency < 1441 || new_frequency > 1591) + new_frequency = sanitize_frequency(new_frequency) + else + radio.set_frequency(new_frequency) + else if (href_list["talk"]) + radio.broadcasting = text2num(href_list["talk"]) + else if (href_list["listen"]) + radio.listening = text2num(href_list["listen"]) if("image") var/newImage = input("Select your new display image.", "Display Image", "Happy") in list("Happy", "Cat", "Extremely Happy", "Face", "Laugh", "Off", "Sad", "Angry", "What") @@ -386,7 +395,7 @@ else P << "[M] does not seem like \he is going to provide a DNA sample willingly." -// -=-=-=-= Software =-=-=-=-=- // +// -=-=-=-= Software =-=-=-=- // //Remote Signaller /mob/living/silicon/pai/proc/softwareSignal() @@ -410,6 +419,30 @@ Send Signal
"} return dat +//Station Bounced Radio - TESTING +/mob/living/silicon/pai/proc/softwareRadio() + var/dat = "" + dat += "

Station Bounced Radio


" + if(!istype(src, /obj/item/device/radio/headset)) //Headsets don't get a mic button + dat += "Microphone: [radio.broadcasting ? "Engaged" : "Disengaged"]
" + dat += {" + Speaker: [radio.listening ? "Engaged" : "Disengaged"]
+ Frequency: + - + - + [format_frequency(radio.frequency)] + + + +
+ "} + + for (var/ch_name in radio.channels) + dat+=radio.text_sec_channel(ch_name, radio.channels[ch_name]) + dat+={"[radio.text_wires()]"} + +// var/left_part = dat + + return dat + // Crew Manifest /mob/living/silicon/pai/proc/softwareManifest() var/dat = "" @@ -431,7 +464,7 @@ if(src.subscreen == 1) dat += "
Medical Record

" if ((istype(src.medicalActive1, /datum/data/record) && data_core.general.Find(src.medicalActive1))) - dat += text("Name: [] ID: []
\nSex: []
\nAge: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
", + dat += text("Name: []
\nID: []
\nSex: []
\nAge: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
", src.medicalActive1.fields["name"], src.medicalActive1.fields["id"], src.medicalActive1.fields["sex"], src.medicalActive1.fields["age"], src.medicalActive1.fields["fingerprint"], src.medicalActive1.fields["p_stat"], src.medicalActive1.fields["m_stat"]) else dat += "
Requested medical record not found.

" @@ -453,7 +486,7 @@ if(src.subscreen == 1) dat += "

Security Record

" if ((istype(src.securityActive1, /datum/data/record) && data_core.general.Find(src.securityActive1))) - dat += text("Name: [] ID: []
\nSex: []
\nAge: []
\nRank: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
", src, src.securityActive1.fields["name"], src, src.securityActive1.fields["id"], src, src.securityActive1.fields["sex"], src, src.securityActive1.fields["age"], src, src.securityActive1.fields["rank"], src, src.securityActive1.fields["fingerprint"], src.securityActive1.fields["p_stat"], src.securityActive1.fields["m_stat"]) + dat += text("Name: []
\nID: []
\nSex: []
\nAge: []
\nRank: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
", src, src.securityActive1.fields["name"], src, src.securityActive1.fields["id"], src, src.securityActive1.fields["sex"], src, src.securityActive1.fields["age"], src, src.securityActive1.fields["rank"], src, src.securityActive1.fields["fingerprint"], src.securityActive1.fields["p_stat"], src.securityActive1.fields["m_stat"]) else dat += "
Requested security record not found,

" if ((istype(src.securityActive2, /datum/data/record) && data_core.security.Find(src.securityActive2)))