Some more work on the Telecomms:

You can now access a hidden maintenance interface in all the telecomm machinery by using a Multitool on them. 

You can now build telecommunication machines, albeit they require a substantial amount of research and materials to make. Added in a few new stock parts constructable in the R&D Protolathe.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2844 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
vageyenaman@gmail.com
2011-12-28 23:59:29 +00:00
parent 1028096a41
commit af85ae38ad
10 changed files with 328 additions and 56 deletions
+1
View File
@@ -309,6 +309,7 @@
m_amt = 50
g_amt = 20
origin_tech = "magnets=1;engineering=1"
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
/obj/item/blueprints
name = "station blueprints"
+58
View File
@@ -458,6 +458,7 @@
var/registered = null
var/assignment = null
var/obj/item/weapon/photo/PHOTO = null
var/dorm = 0 // determines if this ID has claimed a dorm already
/obj/item/weapon/card/id/gold
name = "identification card"
@@ -1668,6 +1669,63 @@
rating = 3
m_amt = 80
// Subspace stock parts
/obj/item/weapon/stock_parts/subspace/ansible
name = "Subspace Ansible"
icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity."
origin_tech = "programming=3;magnets=5;materials=4;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/filter
name = "Hyperwave Filter"
icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
origin_tech = "programming=4;magnets=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/amplifier
name = "Subspace Amplifier"
icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
origin_tech = "programming=3;magnets=4;materials=4;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/treatment
name = "Subspace Treatment Disk"
icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
origin_tech = "programming=3;magnets=2;materials=5;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/analyzer
name = "Subspace Wavelength Analyzer"
icon_state = "treatment_disk"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
origin_tech = "programming=3;magnets=4;materials=4;bluespace=2"
m_amt = 30
g_amt = 10
/obj/item/weapon/stock_parts/subspace/crystal
name = "Ansible Crystal"
icon_state = "ansible_crystal"
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
origin_tech = "magnets=4;materials=4;bluespace=2"
g_amt = 50
/obj/item/weapon/stock_parts/subspace/transmitter
name = "Subspace Transmitter"
icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
origin_tech = "magnets=5;materials=5;bluespace=3"
m_amt = 50
/obj/item/weapon/ectoplasm
name = "ectoplasm"
desc = "spooky"
@@ -234,3 +234,73 @@ obj/item/weapon/circuitboard/rdserver
"/obj/item/weapon/stock_parts/micro_laser" = 1,
"/obj/item/weapon/stock_parts/console_screen" = 1,
"/obj/item/weapon/cable_coil" = 2,)
// Telecomms circuit boards:
/obj/item/weapon/circuitboard/telecomms/receiver
name = "Circuit Board (Subspace Receiver)"
build_path = "/obj/machinery/telecomms/receiver"
board_type = "machine"
origin_tech = "programming=4;engineering=3;bluespace=2"
frame_desc = "Requires 1 Subspace Ansible, 1 Hyperwave Filter, 2 Manipulators, and 1 Advanced Scanning Module."
req_components = list(
"/obj/item/weapon/stock_parts/subspace/ansible" = 1,
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
"/obj/item/weapon/stock_parts/manipulator" = 2,
"/obj/item/weapon/stock_parts/scanning_module/adv" = 1)
/obj/item/weapon/circuitboard/telecomms/bus
name = "Circuit Board (Bus Mainframe)"
build_path = "/obj/machinery/telecomms/bus"
board_type = "machine"
origin_tech = "programming=4;engineering=4"
frame_desc = "Requires 2 Manipulators, 1 Cable Coil and 1 Hyperwave Filter."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
"/obj/item/weapon/cable_coil" = 1,
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
/obj/item/weapon/circuitboard/telecomms/processor
name = "Circuit Board (Processor Unit)"
build_path = "/obj/machinery/telecomms/processor"
board_type = "machine"
origin_tech = "programming=4;engineering=4"
frame_desc = "Requires 5 Manipulators, 1 Hyperwave Filter, 2 Treatment Disks, 1 Wavelength Analyzer, 2 Cable Coils and 1 Subspace Amplifier."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 5,
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
"/obj/item/weapon/stock_parts/subspace/treatment" = 2,
"/obj/item/weapon/stock_parts/subspace/analyzer" = 1,
"/obj/item/weapon/cable_coil" = 2,
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1)
/obj/item/weapon/circuitboard/telecomms/server
name = "Circuit Board (Telecommunication Server)"
build_path = "/obj/machinery/telecomms/server"
board_type = "machine"
origin_tech = "programming=4;engineering=4"
frame_desc = "Requires 2 Manipulators, 1 Cable Coil and 1 Hyperwave Filter."
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
"/obj/item/weapon/cable_coil" = 1,
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
/obj/item/weapon/circuitboard/telecomms/broadcaster
name = "Circuit Board (Bus Mainframe)"
build_path = "/obj/machinery/telecomms/broadcaster"
board_type = "machine"
origin_tech = "programming=4;engineering=4;bluespace=2"
frame_desc = "Requires 2 Manipulators, 1 Cable Coil, 1 Hyperwave Filter, 1 Ansible Crystal, 1 Subspace Transmitter, 1 Subspace Amplifier and 4 High-Powered Micro-Lasers. "
req_components = list(
"/obj/item/weapon/stock_parts/manipulator" = 2,
"/obj/item/weapon/cable_coil" = 1,
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
"/obj/item/weapon/stock_parts/subspace/transmitter" = 1,
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1,
"/obj/item/weapon/stock_parts/micro_laser/high" = 4)
+6 -3
View File
@@ -7,7 +7,7 @@
/obj/machinery/telecomms/broadcaster
name = "subspace broadcaster"
name = "Subspace Broadcaster"
icon = 'stationobjs.dmi'
icon_state = "broadcaster"
desc = "A dish-shaped machine used to broadcast processed subspace signals."
@@ -31,6 +31,11 @@
signal.data["done"] = 1 // mark the signal as being broadcasted
// Search for the original signal and mark it as done as well
var/datum/signal/original = signal.data["original"]
if(original)
original.data["done"] = 1
/* --- Do a snazzy animation! --- */
flick("broadcaster_send", src)
@@ -295,7 +300,5 @@
else
R.show_message(rendered, 2)
// If the signal doesn't need to be used by intercoms or anything:
+41 -23
View File
@@ -59,26 +59,36 @@
var/race // The actual race of the mob
var/language = "Human" // MMIs, pAIs, Cyborgs and humans all speak Human
var/mobtype = "[C.parameters["mobtype"]]"
switch(mobtype)
var/mob/M = new mobtype
if("/mob/living/carbon/human")
race = "Human"
if(istype(M, /mob/living/carbon/human))
race = "Human"
if("/mob/living/carbon/monkey")
race = "Monkey"
language = race
else if(istype(M, /mob/living/carbon/monkey))
race = "Monkey"
language = race
if("/mob/living/carbon/metroid")
race = "Metroid"
language = race
else if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/metroid))
race = "Alien"
language = race
if("/mob/living/carbon/alien")
race = "Alien"
language = race
if(findtext("C.parameters["mobtype"]", "/mob/living/silicon"))
else if(istype(M, /mob/living/silicon))
race = "Artificial Life"
else if(istype(M, /mob/living/simple_animal/corgi))
race = "Dog"
language = race
else if(istype(M, /mob/living/simple_animal/cat))
race = "Cat"
language = race
else
race = "<i>Unidentifiable</i>"
language = race
del(M)
// -- If the orator is a human, or universal translate is active, OR mob has universal speech on --
if(language == "Human" || universal_translate || C.parameters["uspeech"])
@@ -139,7 +149,7 @@
if("scan")
if(servers.len > 0)
temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -"
temp = "<font color = #D70B00>- FAILED: CANNOT PROBE WHEN BUFFER FULL -</font color>"
else
for(var/obj/machinery/telecomms/server/T in range(25, src))
@@ -147,9 +157,9 @@
servers.Add(T)
if(!servers.len)
temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -"
temp = "<font color = #D70B00>- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -</font color>"
else
temp = "- [servers.len] SERVERS PROBED & BUFFERED -"
temp = "<font color = #336699>- [servers.len] SERVERS PROBED & BUFFERED -</font color>"
screen = 0
@@ -158,20 +168,28 @@
var/datum/comm_log_entry/D = SelectedServer.log_entries[text2num(href_list["delete"])]
temp = "- DELETED ENTRY: [D.name] -"
temp = "<font color = #336699>- DELETED ENTRY: [D.name] -</font color>"
SelectedServer.log_entries.Remove(D)
del(D)
else
temp = "<font color = #D70B00>- FAILED: NO SELECTED MACHINE -</font color>"
if(href_list["input"])
var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text
if(newnet && usr in range(1, src))
network = newnet
screen = 0
machines = list()
temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -"
if(newnet && usr in range(1, src) && newnet != network)
if(length(newnet) > 15)
temp = "<font color = #D70B00>- FAILED: NETWORK TAG STRING TOO LENGHTLY -</font color>"
else
network = newnet
screen = 0
machines = list()
temp = "<font color = #336699>- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -</font color>"
updateUsrDialog()
return
@@ -16,9 +16,11 @@
list/links = list() // list of machines this machine is linked to
traffic = 0 // value increases as traffic increases
list/autolinkers = list() // list of text/number values to link with
id = "" // identification string
id = "NULL" // identification string
network = "NULL" // the network of the machinery
list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all
machinetype = 0 // just a hacky way of preventing alike machines from pairing
@@ -48,6 +50,13 @@
// receive information from linked machinery
..()
proc/is_freq_listening(datum/signal/signal)
// return 1 if found, 0 if not found
if((signal.frequency in freq_listening) || (!freq_listening.len))
return 1
else
return 0
New()
..()
if(autolinkers.len)
@@ -68,7 +77,7 @@
*/
/obj/machinery/telecomms/receiver
name = "subspace receiver"
name = "Subspace Receiver"
icon = 'stationobjs.dmi'
icon_state = "broadcast receiver"
desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity."
@@ -77,18 +86,16 @@
use_power = 1
idle_power_usage = 30
machinetype = 1
var
list/freq_listening = list() // list of frequencies that are being tuned into
// you can use "ALL" on any machine using this var
receive_signal(datum/signal/signal)
if(signal.transmission_method == 2)
if( (signal.frequency in freq_listening) || ("ALL" in freq_listening) ) // detect subspace signals
if(is_freq_listening(signal)) // detect subspace signals
var/datum/signal/copy = new
copy.copy_from(signal) // copy information to new signal
copy.data["original"] = signal
relay_information(copy) // ideally relay the information to bus units
@@ -103,7 +110,7 @@
*/
/obj/machinery/telecomms/bus
name = "bus mainframe"
name = "Bus Mainframe"
icon = 'stationobjs.dmi'
icon_state = "bus1"
desc = "A mighty piece of hardware used to send massive amounts of data quickly."
@@ -115,20 +122,21 @@
receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(signal.data["compression"]) // if signal is still compressed from subspace transmission
// send to one linked processor unit
if(is_freq_listening(signal))
if(signal.data["compression"]) // if signal is still compressed from subspace transmission
// send to one linked processor unit
var/send_to_processor = relay_information(signal, "/obj/machinery/telecomms/processor", 1)
var/send_to_processor = relay_information(signal, "/obj/machinery/telecomms/processor", 1)
if(!send_to_processor) // failed to send to a processor, relay information anyway
if(!send_to_processor) // failed to send to a processor, relay information anyway
relay_information(signal, "/obj/machinery/telecomms/server")
else // the signal has been decompressed by a processor unit
// send to all linked server units
relay_information(signal, "/obj/machinery/telecomms/server")
else // the signal has been decompressed by a processor unit
// send to all linked server units
relay_information(signal, "/obj/machinery/telecomms/server")
/*
The processor is a very simple machine that decompresses subspace signals and
@@ -137,7 +145,7 @@
*/
/obj/machinery/telecomms/processor
name = "processor unit"
name = "Processor Unit"
icon = 'stationobjs.dmi'
icon_state = "processor_on"
desc = "This machine is used to process large quantities of information."
@@ -149,8 +157,9 @@
receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
signal.data["compression"] = 0 // uncompress subspace signal
relay_direct_information(signal, machine_from) // send the signal back to the machine
if(is_freq_listening(signal))
signal.data["compression"] = 0 // uncompress subspace signal
relay_direct_information(signal, machine_from) // send the signal back to the machine
@@ -163,7 +172,7 @@
/obj/machinery/telecomms/server
name = "telecommunication server"
name = "Telecommunication Server"
icon = 'stationobjs.dmi'
icon_state = "comm_server"
desc = "A machine used to store data and network statistics."
@@ -173,14 +182,13 @@
idle_power_usage = 15
machinetype = 4
var
list/freq_listening = list()
list/log_entries = list()
receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(signal.data["message"] && !signal.data["compression"])
if( (signal.frequency in freq_listening) || ("ALL" in freq_listening) )
if(is_freq_listening(signal))
// if signal contains discernable data
+12 -8
View File
@@ -95,7 +95,7 @@
if("probe")
if(machines.len > 0)
temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -"
temp = "<font color = #D70B00>- FAILED: CANNOT PROBE WHEN BUFFER FULL -</font color>"
else
for(var/obj/machinery/telecomms/T in range(25, src))
@@ -103,9 +103,9 @@
machines.Add(T)
if(!machines.len)
temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -"
temp = "<font color = #D70B00>- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -</font color>"
else
temp = "- [machines.len] ENTITIES LOCATED & BUFFERED -"
temp = "<font color = #336699>- [machines.len] ENTITIES LOCATED & BUFFERED -</font color>"
screen = 0
@@ -113,11 +113,15 @@
if(href_list["input"])
var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text
if(newnet && usr in range(1, src))
network = newnet
screen = 0
machines = list()
temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -"
if(newnet && usr in range(1, src) && newnet != network)
if(length(newnet) > 15)
temp = "<font color = #D70B00>- FAILED: NETWORK TAG STRING TOO LENGHTLY -</font color>"
else
network = newnet
screen = 0
machines = list()
temp = "<font color = #336699>- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -</font color>"
updateUsrDialog()
return
+110
View File
@@ -478,6 +478,51 @@ datum
build_path = "/obj/item/weapon/aiModule/tyrant"
///////////////////////////////////
/////Subspace Telecomms////////////
///////////////////////////////////
subspace_receiver
name = "Circuit Design (Subspace Receiver)"
desc = "Allows for the construction of Subspace Receiver equipment."
id = "s-receiver"
req_tech = list("programming" = 4, "engineering" = 3, "bluespace" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "acid" = 20)
telecomms_bus
name = "Circuit Design (Bus Mainframe)"
desc = "Allows for the construction of Telecommunications Bus Mainframes."
id = "s-bus"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "acid" = 20)
telecomms_processor
name = "Circuit Design (Processor Unit)"
desc = "Allows for the construction of Telecommunications Processor equipment."
id = "s-processor"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "acid" = 20)
telecomms_server
name = "Circuit Design (Subspace Receiver)"
desc = "Allows for the construction of Telecommunications Servers."
id = "s-server"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list("$glass" = 2000, "acid" = 20)
subspace_broadcaster
name = "Circuit Design (Subspace Broadcaster)"
desc = "Allows for the construction of Subspace Broadcasting equipment."
id = "s-broadcaster"
req_tech = list("programming" = 4, "engineering" = 4, "bluespace" = 2)
build_type = IMPRINTER
materials = list("$glass" = 2000, "acid" = 20)
///////////////////////////////////
/////Non-Board Computer Stuff//////
///////////////////////////////////
@@ -897,6 +942,71 @@ datum
reliability_base = 75
build_path = "/obj/item/weapon/stock_parts/matter_bin/super"
subspace_ansible
name = "Subspace Ansible"
desc = "A compact module capable of sensing extradimensional activity."
id = "s-ansible"
req_tech = list("programming" = 3, "magnets" = 4, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 80, "$silver" = 20)
build_path = "/obj/item/weapon/stock_parts/subspace/ansible"
hyperwave_filter
name = "Hyperwave Filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
id = "s-filter"
req_tech = list("programming" = 3, "magnets" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 40, "$silver" = 10)
build_path = "/obj/item/weapon/stock_parts/subspace/filter"
subspace_amplifier
name = "Subspace Amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
id = "s-amplifier"
req_tech = list("programming" = 3, "magnets" = 4, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 30, "$uranium" = 15)
build_path = "/obj/item/weapon/stock_parts/subspace/amplifier"
subspace_treatment
name = "Subspace Treatment Disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
id = "s-amplifier"
req_tech = list("programming" = 3, "magnets" = 2, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$silver" = 20)
build_path = "/obj/item/weapon/stock_parts/subspace/treatment"
subspace_analyzer
name = "Subspace Treatment Disk"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-amplifier"
req_tech = list("programming" = 3, "magnets" = 4, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 10, "$gold" = 15)
build_path = "/obj/item/weapon/stock_parts/subspace/analyzer"
subspace_crystal
name = "Ansible Crystal"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-amplifier"
req_tech = list("magnets" = 4, "materials" = 4, "bluespace" = 2)
build_type = PROTOLATHE
materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20)
build_path = "/obj/item/weapon/stock_parts/subspace/crystal"
subspace_transmitter
name = "Subspace Transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
id = "s-amplifier"
req_tech = list("magnets" = 5, "materials" = 5, "bluespace" = 3)
build_type = PROTOLATHE
materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15)
build_path = "/obj/item/weapon/stock_parts/subspace/transmitter"
////////////////////////////////////////
//////////////////Power/////////////////
////////////////////////////////////////