-Borgs can now have 1 key installed into their radio, and can handle channels just like any other headset

-As a result, they also have a button that toggles their headset between station-bounced and subspace transmission. While they are transmitting over subspace, they will be using TComms and have access to department channels. While transmitting over the station-bounced system, they cannot access department channels. Simple
-Changed binary chat for silicon mobs to be ':b' for both consistency and to make the security channel useable for borgs.
-To insert/remove keys, you need to have the cover open and the cell in place, use a key to insert and use a screwdriver to remove keys (Having the cell out will expose the wires when a screwdriver is used)
-Cleaned up mech_fabricator.dm a bit


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4277 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
sieve32@gmail.com
2012-08-02 03:02:43 +00:00
parent 94fd22b762
commit 2252db76f6
6 changed files with 152 additions and 53 deletions
+12 -4
View File
@@ -133,9 +133,10 @@ var/list/department_radio_keys = list(
//world << "channel_prefix=[channel_prefix]; message_mode=[message_mode]"
if (message_mode)
message = trim(copytext(message, 3))
if (!(ishuman(src) || isanimal(src) && (message_mode=="department" || (message_mode in radiochannels))))
if (!(ishuman(src) || isanimal(src) || isrobot(src) && (message_mode=="department" || (message_mode in radiochannels))))
message_mode = null //only humans can use headsets
// Check removed so parrots can use headsets!
// And borgs -Sieve
if (!message)
return
@@ -236,6 +237,7 @@ var/list/department_radio_keys = list(
used_radios += src:ears
message_range = 1
italics = 1
if ("pAI")
if (src:radio)
src:radio.talk_into(src, message)
@@ -253,9 +255,15 @@ var/list/department_radio_keys = list(
else
//world << "SPECIAL HEADSETS"
if (message_mode in radiochannels)
if (src:ears)
src:ears.talk_into(src, message, message_mode)
used_radios += src:ears
if(isrobot(src))//Seperates robots to prevent runtimes from the ear stuff
var/mob/living/silicon/robot/R = src
if(R.radio)//Sanityyyy
R.radio.talk_into(src, message, message_mode)
used_radios += R.radio
else
if (src:ears)
src:ears.talk_into(src, message, message_mode)
used_radios += src:ears
message_range = 1
italics = 1
/////SPECIAL HEADSETS END
+16 -17
View File
@@ -49,7 +49,7 @@
icon_state = "secborg"
modtype = "Synd"
radio = new /obj/item/device/radio(src)
radio = new /obj/item/device/radio/borg(src)
if(!scrambledcodes)
camera = new /obj/machinery/camera(src)
camera.c_tag = real_name
@@ -432,11 +432,24 @@
else
user << "You can't reach the wiring."
else if (istype(W, /obj/item/weapon/screwdriver) && opened) // haxing
else if(istype(W, /obj/item/weapon/screwdriver) && opened && !cell) // haxing
wiresexposed = !wiresexposed
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
updateicon()
else if(istype(W, /obj/item/weapon/screwdriver) && opened && cell) // radio
if(radio)
radio.attackby(W,user)//Push it to the radio to let it handle everything
else
user << "Unable to locate a radio."
updateicon()
else if(istype(W, /obj/item/device/encryptionkey/) && opened)
if(radio)//sanityyyyyy
radio.attackby(W,user)//GTFO, you have your own procs
else
user << "Unable to locate a radio."
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
if(emagged)//still allow them to open the cover
user << "The interface seems slightly damaged"
@@ -855,21 +868,7 @@
return
/mob/living/silicon/robot/proc/radio_menu()
var/dat = {"
<TT>
Microphone: [radio.broadcasting ? "<A href='byond://?src=\ref[radio];talk=0'>Engaged</A>" : "<A href='byond://?src=\ref[radio];talk=1'>Disengaged</A>"]<BR>
Speaker: [radio.listening ? "<A href='byond://?src=\ref[radio];listen=0'>Engaged</A>" : "<A href='byond://?src=\ref[radio];listen=1'>Disengaged</A>"]<BR>
Frequency:
<A href='byond://?src=\ref[radio];freq=-10'>-</A>
<A href='byond://?src=\ref[radio];freq=-2'>-</A>
[format_frequency(radio.frequency)]
<A href='byond://?src=\ref[radio];freq=2'>+</A>
<A href='byond://?src=\ref[radio];freq=10'>+</A><BR>
-------
</TT>"}
src << browse(dat, "window=radio")
onclose(src, "radio")
return
radio.interact(src)//Just use the radio's Topic() instead of bullshit special-snowflake code
/mob/living/silicon/robot/Move(a, b, flag)
+1 -1
View File
@@ -18,7 +18,7 @@
return
if (length(message) >= 2)
if ((copytext(message, 1, 3) == ":s") || (copytext(message, 1, 3) == ":S"))
if ((copytext(message, 1, 3) == ":b") || (copytext(message, 1, 3) == ":B"))
if(istype(src, /mob/living/silicon/pai))
return ..(message)
message = copytext(message, 3)