diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index bf113e8deb4..a7dca1c088f 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -39,1482 +39,1480 @@ other types of metals and chemistry for reagents).
#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars.
//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable.
-datum
- design //Datum for object designs, used in construction
- var/name = "Name" //Name of the created object.
- var/desc = "Desc" //Description of the created object.
- var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols
- var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements.
- var/reliability_mod = 0 //Reliability modifier of the device at it's starting point.
- var/reliability_base = 100 //Base reliability of a device before modifiers.
- var/reliability = 100 //Reliability of the device.
- var/build_type = null //Flag as to what kind machine the design is built in. See defines.
- var/list/materials = list() //List of materials. Format: "id" = amount.
- var/build_path = "" //The file path of the object that gets created
- var/locked = 0 //If true it will spawn inside a lockbox with currently sec access
+datum/design //Datum for object designs, used in construction
+ var/name = "Name" //Name of the created object.
+ var/desc = "Desc" //Description of the created object.
+ var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols
+ var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements.
+ var/reliability_mod = 0 //Reliability modifier of the device at it's starting point.
+ var/reliability_base = 100 //Base reliability of a device before modifiers.
+ var/reliability = 100 //Reliability of the device.
+ var/build_type = null //Flag as to what kind machine the design is built in. See defines.
+ var/list/materials = list() //List of materials. Format: "id" = amount.
+ var/build_path = "" //The file path of the object that gets created
+ var/locked = 0 //If true it will spawn inside a lockbox with currently sec access
- proc
- //A proc to calculate the reliability of a design based on tech levels and innate modifiers.
- //Input: A list of /datum/tech; Output: The new reliabilty.
- CalcReliability(var/list/temp_techs)
- var/new_reliability = reliability_mod + reliability_base
- for(var/datum/tech/T in temp_techs)
- if(T.id in req_tech)
- new_reliability += T.level
- new_reliability = between(reliability_base, new_reliability, 100)
- reliability = new_reliability
- return
+
+//A proc to calculate the reliability of a design based on tech levels and innate modifiers.
+//Input: A list of /datum/tech; Output: The new reliabilty.
+datum/design/proc/CalcReliability(var/list/temp_techs)
+ var/new_reliability = reliability_mod + reliability_base
+ for(var/datum/tech/T in temp_techs)
+ if(T.id in req_tech)
+ new_reliability += T.level
+ new_reliability = between(reliability_base, new_reliability, 100)
+ reliability = new_reliability
+ return
///////////////////Computer Boards///////////////////////////////////
- seccamera
- name = "Circuit Design (Security)"
- desc = "Allows for the construction of circuit boards used to build security camera computers."
- id = "seccamera"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/security"
+datum/design/seccamera
+ name = "Circuit Design (Security)"
+ desc = "Allows for the construction of circuit boards used to build security camera computers."
+ id = "seccamera"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/security"
- aicore
- name = "Circuit Design (AI Core)"
- desc = "Allows for the construction of circuit boards used to build new AI cores."
- id = "aicore"
- req_tech = list("programming" = 4, "biotech" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/aicore"
+datum/design/aicore
+ name = "Circuit Design (AI Core)"
+ desc = "Allows for the construction of circuit boards used to build new AI cores."
+ id = "aicore"
+ req_tech = list("programming" = 4, "biotech" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/aicore"
- aiupload
- name = "Circuit Design (AI Upload)"
- desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
- id = "aiupload"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/aiupload"
+datum/design/aiupload
+ name = "Circuit Design (AI Upload)"
+ desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
+ id = "aiupload"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/aiupload"
- borgupload
- name = "Circuit Design (Cyborg Upload)"
- desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console."
- id = "borgupload"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/borgupload"
+datum/design/borgupload
+ name = "Circuit Design (Cyborg Upload)"
+ desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console."
+ id = "borgupload"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/borgupload"
- med_data
- name = "Circuit Design (Medical Records)"
- desc = "Allows for the construction of circuit boards used to build a medical records console."
- id = "med_data"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/med_data"
+datum/design/med_data
+ name = "Circuit Design (Medical Records)"
+ desc = "Allows for the construction of circuit boards used to build a medical records console."
+ id = "med_data"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/med_data"
- operating
- name = "Circuit Design (Operating Computer)"
- desc = "Allows for the construction of circuit boards used to build an operating computer console."
- id = "operating"
- req_tech = list("programming" = 2, "biotech" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/operating"
+datum/design/operating
+ name = "Circuit Design (Operating Computer)"
+ desc = "Allows for the construction of circuit boards used to build an operating computer console."
+ id = "operating"
+ req_tech = list("programming" = 2, "biotech" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/operating"
- pandemic
- name = "Circuit Design (PanD.E.M.I.C. 2200)"
- desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console."
- id = "pandemic"
- req_tech = list("programming" = 2, "biotech" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pandemic"
+datum/design/pandemic
+ name = "Circuit Design (PanD.E.M.I.C. 2200)"
+ desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console."
+ id = "pandemic"
+ req_tech = list("programming" = 2, "biotech" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/pandemic"
- scan_console
- name = "Circuit Design (DNA Machine)"
- desc = "Allows for the construction of circuit boards used to build a new DNA scanning console."
- id = "scan_console"
- req_tech = list("programming" = 2, "biotech" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/scan_consolenew"
+datum/design/scan_console
+ name = "Circuit Design (DNA Machine)"
+ desc = "Allows for the construction of circuit boards used to build a new DNA scanning console."
+ id = "scan_console"
+ req_tech = list("programming" = 2, "biotech" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/scan_consolenew"
- comconsole
- name = "Circuit Design (Communications)"
- desc = "Allows for the construction of circuit boards used to build a communications console."
- id = "comconsole"
- req_tech = list("programming" = 2, "magnets" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/communications"
+datum/design/comconsole
+ name = "Circuit Design (Communications)"
+ desc = "Allows for the construction of circuit boards used to build a communications console."
+ id = "comconsole"
+ req_tech = list("programming" = 2, "magnets" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/communications"
- idcardconsole
- name = "Circuit Design (ID Computer)"
- desc = "Allows for the construction of circuit boards used to build an ID computer."
- id = "idcardconsole"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/card"
+datum/design/idcardconsole
+ name = "Circuit Design (ID Computer)"
+ desc = "Allows for the construction of circuit boards used to build an ID computer."
+ id = "idcardconsole"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/card"
- crewconsole
- name = "Circuit Design (Crew monitoring computer)"
- desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer."
- id = "crewconsole"
- req_tech = list("programming" = 3, "magnets" = 2, "biotech" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/crew"
+datum/design/crewconsole
+ name = "Circuit Design (Crew monitoring computer)"
+ desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer."
+ id = "crewconsole"
+ req_tech = list("programming" = 3, "magnets" = 2, "biotech" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/crew"
- teleconsole
- name = "Circuit Design (Teleporter Console)"
- desc = "Allows for the construction of circuit boards used to build a teleporter control console."
- id = "teleconsole"
- req_tech = list("programming" = 3, "bluespace" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/teleporter"
+datum/design/teleconsole
+ name = "Circuit Design (Teleporter Console)"
+ desc = "Allows for the construction of circuit boards used to build a teleporter control console."
+ id = "teleconsole"
+ req_tech = list("programming" = 3, "bluespace" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/teleporter"
- secdata
- name = "Circuit Design (Security Records Console)"
- desc = "Allows for the construction of circuit boards used to build a security records console."
- id = "secdata"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/secure_data"
+datum/design/secdata
+ name = "Circuit Design (Security Records Console)"
+ desc = "Allows for the construction of circuit boards used to build a security records console."
+ id = "secdata"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/secure_data"
- atmosalerts
- name = "Circuit Design (Atmosphere Alert)"
- desc = "Allows for the construction of circuit boards used to build an atmosphere alert console.."
- id = "atmosalerts"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/atmos_alert"
+datum/design/atmosalerts
+ name = "Circuit Design (Atmosphere Alert)"
+ desc = "Allows for the construction of circuit boards used to build an atmosphere alert console.."
+ id = "atmosalerts"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/atmos_alert"
- air_management
- name = "Circuit Design (Atmospheric Monitor)"
- desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor."
- id = "air_management"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/air_management"
+datum/design/air_management
+ name = "Circuit Design (Atmospheric Monitor)"
+ desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor."
+ id = "air_management"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/air_management"
/* Uncomment if someone makes these buildable
- general_alert
- name = "Circuit Design (General Alert Console)"
- desc = "Allows for the construction of circuit boards used to build a General Alert console."
- id = "general_alert"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/general_alert"
+datum/design/general_alert
+ name = "Circuit Design (General Alert Console)"
+ desc = "Allows for the construction of circuit boards used to build a General Alert console."
+ id = "general_alert"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/general_alert"
*/
- robocontrol
- name = "Circuit Design (Robotics Control Console)"
- desc = "Allows for the construction of circuit boards used to build a Robotics Control console."
- id = "robocontrol"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/robotics"
+datum/design/robocontrol
+ name = "Circuit Design (Robotics Control Console)"
+ desc = "Allows for the construction of circuit boards used to build a Robotics Control console."
+ id = "robocontrol"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/robotics"
- clonecontrol
- name = "Circuit Design (Cloning Machine Console)"
- desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
- id = "clonecontrol"
- req_tech = list("programming" = 3, "biotech" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/cloning"
+datum/design/clonecontrol
+ name = "Circuit Design (Cloning Machine Console)"
+ desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
+ id = "clonecontrol"
+ req_tech = list("programming" = 3, "biotech" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/cloning"
- clonepod
- name = "Circuit Design (Clone Pod)"
- desc = "Allows for the construction of circuit boards used to build a Cloning Pod."
- id = "clonepod"
- req_tech = list("programming" = 3, "biotech" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/clonepod"
+datum/design/clonepod
+ name = "Circuit Design (Clone Pod)"
+ desc = "Allows for the construction of circuit boards used to build a Cloning Pod."
+ id = "clonepod"
+ req_tech = list("programming" = 3, "biotech" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/clonepod"
- clonescanner
- name = "Circuit Design (Cloning Scanner)"
- desc = "Allows for the construction of circuit boards used to build a Cloning Scanner."
- id = "clonescanner"
- req_tech = list("programming" = 3, "biotech" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/clonescanner"
+datum/design/clonescanner
+ name = "Circuit Design (Cloning Scanner)"
+ desc = "Allows for the construction of circuit boards used to build a Cloning Scanner."
+ id = "clonescanner"
+ req_tech = list("programming" = 3, "biotech" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/clonescanner"
- arcademachine
- name = "Circuit Design (Arcade Machine)"
- desc = "Allows for the construction of circuit boards used to build a new arcade machine."
- id = "arcademachine"
- req_tech = list("programming" = 1)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/arcade"
+datum/design/arcademachine
+ name = "Circuit Design (Arcade Machine)"
+ desc = "Allows for the construction of circuit boards used to build a new arcade machine."
+ id = "arcademachine"
+ req_tech = list("programming" = 1)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/arcade"
- powermonitor
- name = "Circuit Design (Power Monitor)"
- desc = "Allows for the construction of circuit boards used to build a new power monitor"
- id = "powermonitor"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/powermonitor"
+datum/design/powermonitor
+ name = "Circuit Design (Power Monitor)"
+ desc = "Allows for the construction of circuit boards used to build a new power monitor"
+ id = "powermonitor"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/powermonitor"
- solarcontrol
- name = "Circuit Design (Solar Control)"
- desc = "Allows for the construction of circuit boards used to build a solar control console"
- id = "solarcontrol"
- req_tech = list("programming" = 2, "powerstorage" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/solar_control"
+datum/design/solarcontrol
+ name = "Circuit Design (Solar Control)"
+ desc = "Allows for the construction of circuit boards used to build a solar control console"
+ id = "solarcontrol"
+ req_tech = list("programming" = 2, "powerstorage" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/solar_control"
- prisonmanage
- name = "Circuit Design (Prisoner Management Console)"
- desc = "Allows for the construction of circuit boards used to build a prisoner management console."
- id = "prisonmanage"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/prisoner"
+datum/design/prisonmanage
+ name = "Circuit Design (Prisoner Management Console)"
+ desc = "Allows for the construction of circuit boards used to build a prisoner management console."
+ id = "prisonmanage"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/prisoner"
- mechacontrol
- name = "Circuit Design (Exosuit Control Console)"
- desc = "Allows for the construction of circuit boards used to build an exosuit control console."
- id = "mechacontrol"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha_control"
+datum/design/mechacontrol
+ name = "Circuit Design (Exosuit Control Console)"
+ desc = "Allows for the construction of circuit boards used to build an exosuit control console."
+ id = "mechacontrol"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha_control"
- mechapower
- name = "Circuit Design (Mech Bay Power Control Console)"
- desc = "Allows for the construction of circuit boards used to build a mech bay power control console."
- id = "mechapower"
- req_tech = list("programming" = 2, "powerstorage" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mech_bay_power_console"
+datum/design/mechapower
+ name = "Circuit Design (Mech Bay Power Control Console)"
+ desc = "Allows for the construction of circuit boards used to build a mech bay power control console."
+ id = "mechapower"
+ req_tech = list("programming" = 2, "powerstorage" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mech_bay_power_console"
- rdconsole
- name = "Circuit Design (R&D Console)"
- desc = "Allows for the construction of circuit boards used to build a new R&D console."
- id = "rdconsole"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/rdconsole"
+datum/design/rdconsole
+ name = "Circuit Design (R&D Console)"
+ desc = "Allows for the construction of circuit boards used to build a new R&D console."
+ id = "rdconsole"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/rdconsole"
- ordercomp
- name = "Circuit Design (Supply ordering console)"
- desc = "Allows for the construction of circuit boards used to build a Supply ordering console."
- id = "ordercomp"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/ordercomp"
+datum/design/ordercomp
+ name = "Circuit Design (Supply ordering console)"
+ desc = "Allows for the construction of circuit boards used to build a Supply ordering console."
+ id = "ordercomp"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/ordercomp"
- supplycomp
- name = "Circuit Design (Supply shuttle console)"
- desc = "Allows for the construction of circuit boards used to build a Supply shuttle console."
- id = "supplycomp"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/supplycomp"
+datum/design/supplycomp
+ name = "Circuit Design (Supply shuttle console)"
+ desc = "Allows for the construction of circuit boards used to build a Supply shuttle console."
+ id = "supplycomp"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/supplycomp"
- mining
- name = "Circuit Design (Outpost Status Display)"
- desc = "Allows for the construction of circuit boards used to build an outpost status display console."
- id = "mining"
- req_tech = list("programming" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mining"
+datum/design/mining
+ name = "Circuit Design (Outpost Status Display)"
+ desc = "Allows for the construction of circuit boards used to build an outpost status display console."
+ id = "mining"
+ req_tech = list("programming" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mining"
- comm_monitor
- name = "Circuit Design (Telecommunications Monitoring Console)"
- desc = "Allows for the construction of circuit boards used to build a telecommunications monitor."
- id = "comm_monitor"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/comm_monitor"
+datum/design/comm_monitor
+ name = "Circuit Design (Telecommunications Monitoring Console)"
+ desc = "Allows for the construction of circuit boards used to build a telecommunications monitor."
+ id = "comm_monitor"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/comm_monitor"
- comm_server
- name = "Circuit Design (Telecommunications Server Monitoring Console)"
- desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor."
- id = "comm_server"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/comm_server"
+datum/design/comm_server
+ name = "Circuit Design (Telecommunications Server Monitoring Console)"
+ desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor."
+ id = "comm_server"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/comm_server"
- message_monitor
- name = "Circuit Design (Messaging Monitor Console)"
- desc = "Allows for the construction of circuit boards used to build a messaging monitor console."
- id = "message_monitor"
- req_tech = list("programming" = 5)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/message_monitor"
+datum/design/message_monitor
+ name = "Circuit Design (Messaging Monitor Console)"
+ desc = "Allows for the construction of circuit boards used to build a messaging monitor console."
+ id = "message_monitor"
+ req_tech = list("programming" = 5)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/message_monitor"
- aifixer
- name = "Circuit Design (AI Integrity Restorer)"
- desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer."
- id = "aifixer"
- req_tech = list("programming" = 3, "biotech" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/aifixer"
+datum/design/aifixer
+ name = "Circuit Design (AI Integrity Restorer)"
+ desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer."
+ id = "aifixer"
+ req_tech = list("programming" = 3, "biotech" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/aifixer"
///////////////////////////////////
//////////AI Module Disks//////////
///////////////////////////////////
- safeguard_module
- name = "Module Design (Safeguard)"
- desc = "Allows for the construction of a Safeguard AI Module."
- id = "safeguard_module"
- req_tech = list("programming" = 3, "materials" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/safeguard"
+datum/design/safeguard_module
+ name = "Module Design (Safeguard)"
+ desc = "Allows for the construction of a Safeguard AI Module."
+ id = "safeguard_module"
+ req_tech = list("programming" = 3, "materials" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/safeguard"
- onehuman_module
- name = "Module Design (OneHuman)"
- desc = "Allows for the construction of a OneHuman AI Module."
- id = "onehuman_module"
- req_tech = list("programming" = 4, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/oneHuman"
+datum/design/onehuman_module
+ name = "Module Design (OneHuman)"
+ desc = "Allows for the construction of a OneHuman AI Module."
+ id = "onehuman_module"
+ req_tech = list("programming" = 4, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
+ build_path = "/obj/item/weapon/aiModule/oneHuman"
- protectstation_module
- name = "Module Design (ProtectStation)"
- desc = "Allows for the construction of a ProtectStation AI Module."
- id = "protectstation_module"
- req_tech = list("programming" = 3, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/protectStation"
+datum/design/protectstation_module
+ name = "Module Design (ProtectStation)"
+ desc = "Allows for the construction of a ProtectStation AI Module."
+ id = "protectstation_module"
+ req_tech = list("programming" = 3, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/protectStation"
- notele_module
- name = "Module Design (TeleporterOffline Module)"
- desc = "Allows for the construction of a TeleporterOffline AI Module."
- id = "notele_module"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/teleporterOffline"
+datum/design/notele_module
+ name = "Module Design (TeleporterOffline Module)"
+ desc = "Allows for the construction of a TeleporterOffline AI Module."
+ id = "notele_module"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/teleporterOffline"
- quarantine_module
- name = "Module Design (Quarantine)"
- desc = "Allows for the construction of a Quarantine AI Module."
- id = "quarantine_module"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/quarantine"
+datum/design/quarantine_module
+ name = "Module Design (Quarantine)"
+ desc = "Allows for the construction of a Quarantine AI Module."
+ id = "quarantine_module"
+ req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/quarantine"
- oxygen_module
- name = "Module Design (OxygenIsToxicToHumans)"
- desc = "Allows for the construction of a Safeguard AI Module."
- id = "oxygen_module"
- req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/oxygen"
+datum/design/oxygen_module
+ name = "Module Design (OxygenIsToxicToHumans)"
+ desc = "Allows for the construction of a Safeguard AI Module."
+ id = "oxygen_module"
+ req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/oxygen"
- freeform_module
- name = "Module Design (Freeform)"
- desc = "Allows for the construction of a Freeform AI Module."
- id = "freeform_module"
- req_tech = list("programming" = 4, "materials" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/freeform"
+datum/design/freeform_module
+ name = "Module Design (Freeform)"
+ desc = "Allows for the construction of a Freeform AI Module."
+ id = "freeform_module"
+ req_tech = list("programming" = 4, "materials" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/freeform"
- reset_module
- name = "Module Design (Reset)"
- desc = "Allows for the construction of a Reset AI Module."
- id = "reset_module"
- req_tech = list("programming" = 3, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
- build_path = "/obj/item/weapon/aiModule/reset"
+datum/design/reset_module
+ name = "Module Design (Reset)"
+ desc = "Allows for the construction of a Reset AI Module."
+ id = "reset_module"
+ req_tech = list("programming" = 3, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$gold" = 100)
+ build_path = "/obj/item/weapon/aiModule/reset"
- purge_module
- name = "Module Design (Purge)"
- desc = "Allows for the construction of a Purge AI Module."
- id = "purge_module"
- req_tech = list("programming" = 4, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/purge"
+datum/design/purge_module
+ name = "Module Design (Purge)"
+ desc = "Allows for the construction of a Purge AI Module."
+ id = "purge_module"
+ req_tech = list("programming" = 4, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
+ build_path = "/obj/item/weapon/aiModule/purge"
- freeformcore_module
- name = "Core Module Design (Freeform)"
- desc = "Allows for the construction of a Freeform AI Core Module."
- id = "freeformcore_module"
- req_tech = list("programming" = 4, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/freeformcore"
+datum/design/freeformcore_module
+ name = "Core Module Design (Freeform)"
+ desc = "Allows for the construction of a Freeform AI Core Module."
+ id = "freeformcore_module"
+ req_tech = list("programming" = 4, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
+ build_path = "/obj/item/weapon/aiModule/freeformcore"
- asimov
- name = "Core Module Design (Asimov)"
- desc = "Allows for the construction of a Asimov AI Core Module."
- id = "asimov_module"
- req_tech = list("programming" = 3, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/asimov"
+datum/design/asimov
+ name = "Core Module Design (Asimov)"
+ desc = "Allows for the construction of a Asimov AI Core Module."
+ id = "asimov_module"
+ req_tech = list("programming" = 3, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
+ build_path = "/obj/item/weapon/aiModule/asimov"
- paladin_module
- name = "Core Module Design (P.A.L.A.D.I.N.)"
- desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
- id = "paladin_module"
- req_tech = list("programming" = 4, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/paladin"
+datum/design/paladin_module
+ name = "Core Module Design (P.A.L.A.D.I.N.)"
+ desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
+ id = "paladin_module"
+ req_tech = list("programming" = 4, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
+ build_path = "/obj/item/weapon/aiModule/paladin"
- tyrant_module
- name = "Core Module Design (T.Y.R.A.N.T.)"
- desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
- id = "tyrant_module"
- req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
- build_path = "/obj/item/weapon/aiModule/tyrant"
+datum/design/tyrant_module
+ name = "Core Module Design (T.Y.R.A.N.T.)"
+ desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
+ id = "tyrant_module"
+ req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20, "$diamond" = 100)
+ 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)
- build_path = "/obj/item/weapon/circuitboard/telecomms/receiver"
+datum/design/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)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/receiver"
- 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)
- build_path = "/obj/item/weapon/circuitboard/telecomms/bus"
+datum/design/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)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/bus"
- telecomms_hub
- name = "Circuit Design (Hub Mainframe)"
- desc = "Allows for the construction of Telecommunications Hub Mainframes."
- id = "s-hub"
- req_tech = list("programming" = 4, "engineering" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/hub"
+datum/design/telecomms_hub
+ name = "Circuit Design (Hub Mainframe)"
+ desc = "Allows for the construction of Telecommunications Hub Mainframes."
+ id = "s-hub"
+ req_tech = list("programming" = 4, "engineering" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/hub"
- telecomms_relay
- name = "Circuit Design (Relay Mainframe)"
- desc = "Allows for the construction of Telecommunications Relay Mainframes."
- id = "s-relay"
- req_tech = list("programming" = 3, "engineering" = 4, "bluespace" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/telecomms/relay"
+datum/design/telecomms_relay
+ name = "Circuit Design (Relay Mainframe)"
+ desc = "Allows for the construction of Telecommunications Relay Mainframes."
+ id = "s-relay"
+ req_tech = list("programming" = 3, "engineering" = 4, "bluespace" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/relay"
- 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)
- build_path = "/obj/item/weapon/circuitboard/telecomms/processor"
+datum/design/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)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/processor"
- 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)
- build_path = "/obj/item/weapon/circuitboard/telecomms/server"
+datum/design/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)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/server"
- 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)
- build_path = "/obj/item/weapon/circuitboard/telecomms/broadcaster"
+datum/design/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)
+ build_path = "/obj/item/weapon/circuitboard/telecomms/broadcaster"
///////////////////////////////////
/////Non-Board Computer Stuff//////
///////////////////////////////////
- intellicard
- name = "Intellicard AI Transportation System"
- desc = "Allows for the construction of an intellicard."
- id = "intellicard"
- req_tech = list("programming" = 4, "materials" = 4)
- build_type = PROTOLATHE
- materials = list("$glass" = 1000, "$gold" = 200)
- build_path = "/obj/item/device/aicard"
+datum/design/intellicard
+ name = "Intellicard AI Transportation System"
+ desc = "Allows for the construction of an intellicard."
+ id = "intellicard"
+ req_tech = list("programming" = 4, "materials" = 4)
+ build_type = PROTOLATHE
+ materials = list("$glass" = 1000, "$gold" = 200)
+ build_path = "/obj/item/device/aicard"
- paicard
- name = "Personal Artificial Intelligence Card"
- desc = "Allows for the construction of a pAI Card"
- id = "paicard"
- req_tech = list("programming" = 3)
- build_type = PROTOLATHE
- materials = list("$glass" = 500, "$metal" = 500)
- build_path = "/obj/item/device/paicard"
+datum/design/paicard
+ name = "Personal Artificial Intelligence Card"
+ desc = "Allows for the construction of a pAI Card"
+ id = "paicard"
+ req_tech = list("programming" = 3)
+ build_type = PROTOLATHE
+ materials = list("$glass" = 500, "$metal" = 500)
+ build_path = "/obj/item/device/paicard"
///////////////////////////////////
//////////Mecha Module Disks///////
///////////////////////////////////
- ripley_main
- name = "Circuit Design (APLU \"Ripley\" Central Control module)"
- desc = "Allows for the construction of a \"Ripley\" Central Control module."
- id = "ripley_main"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/ripley/main"
+datum/design/ripley_main
+ name = "Circuit Design (APLU \"Ripley\" Central Control module)"
+ desc = "Allows for the construction of a \"Ripley\" Central Control module."
+ id = "ripley_main"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/ripley/main"
- ripley_peri
- name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)"
- desc = "Allows for the construction of a \"Ripley\" Peripheral Control module."
- id = "ripley_peri"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/ripley/peripherals"
+datum/design/ripley_peri
+ name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)"
+ desc = "Allows for the construction of a \"Ripley\" Peripheral Control module."
+ id = "ripley_peri"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/ripley/peripherals"
- odysseus_main
- name = "Circuit Design (\"Odysseus\" Central Control module)"
- desc = "Allows for the construction of a \"Odysseus\" Central Control module."
- id = "odysseus_main"
- req_tech = list("programming" = 3,"biotech" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/odysseus/main"
+datum/design/odysseus_main
+ name = "Circuit Design (\"Odysseus\" Central Control module)"
+ desc = "Allows for the construction of a \"Odysseus\" Central Control module."
+ id = "odysseus_main"
+ req_tech = list("programming" = 3,"biotech" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/odysseus/main"
- odysseus_peri
- name = "Circuit Design (\"Odysseus\" Peripherals Control module)"
- desc = "Allows for the construction of a \"Odysseus\" Peripheral Control module."
- id = "odysseus_peri"
- req_tech = list("programming" = 3,"biotech" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/odysseus/peripherals"
+datum/design/odysseus_peri
+ name = "Circuit Design (\"Odysseus\" Peripherals Control module)"
+ desc = "Allows for the construction of a \"Odysseus\" Peripheral Control module."
+ id = "odysseus_peri"
+ req_tech = list("programming" = 3,"biotech" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/odysseus/peripherals"
- gygax_main
- name = "Circuit Design (\"Gygax\" Central Control module)"
- desc = "Allows for the construction of a \"Gygax\" Central Control module."
- id = "gygax_main"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/gygax/main"
+datum/design/gygax_main
+ name = "Circuit Design (\"Gygax\" Central Control module)"
+ desc = "Allows for the construction of a \"Gygax\" Central Control module."
+ id = "gygax_main"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/gygax/main"
- gygax_peri
- name = "Circuit Design (\"Gygax\" Peripherals Control module)"
- desc = "Allows for the construction of a \"Gygax\" Peripheral Control module."
- id = "gygax_peri"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/gygax/peripherals"
+datum/design/gygax_peri
+ name = "Circuit Design (\"Gygax\" Peripherals Control module)"
+ desc = "Allows for the construction of a \"Gygax\" Peripheral Control module."
+ id = "gygax_peri"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/gygax/peripherals"
- gygax_targ
- name = "Circuit Design (\"Gygax\" Weapons & Targeting Control module)"
- desc = "Allows for the construction of a \"Gygax\" Weapons & Targeting Control module."
- id = "gygax_targ"
- req_tech = list("programming" = 4, "combat" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/gygax/targeting"
+datum/design/gygax_targ
+ name = "Circuit Design (\"Gygax\" Weapons & Targeting Control module)"
+ desc = "Allows for the construction of a \"Gygax\" Weapons & Targeting Control module."
+ id = "gygax_targ"
+ req_tech = list("programming" = 4, "combat" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/gygax/targeting"
- durand_main
- name = "Circuit Design (\"Durand\" Central Control module)"
- desc = "Allows for the construction of a \"Durand\" Central Control module."
- id = "durand_main"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/durand/main"
+datum/design/durand_main
+ name = "Circuit Design (\"Durand\" Central Control module)"
+ desc = "Allows for the construction of a \"Durand\" Central Control module."
+ id = "durand_main"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/durand/main"
- durand_peri
- name = "Circuit Design (\"Durand\" Peripherals Control module)"
- desc = "Allows for the construction of a \"Durand\" Peripheral Control module."
- id = "durand_peri"
- req_tech = list("programming" = 4)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/durand/peripherals"
+datum/design/durand_peri
+ name = "Circuit Design (\"Durand\" Peripherals Control module)"
+ desc = "Allows for the construction of a \"Durand\" Peripheral Control module."
+ id = "durand_peri"
+ req_tech = list("programming" = 4)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/durand/peripherals"
- durand_targ
- name = "Circuit Design (\"Durand\" Weapons & Targeting Control module)"
- desc = "Allows for the construction of a \"Durand\" Weapons & Targeting Control module."
- id = "durand_targ"
- req_tech = list("programming" = 4, "combat" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/durand/targeting"
+datum/design/durand_targ
+ name = "Circuit Design (\"Durand\" Weapons & Targeting Control module)"
+ desc = "Allows for the construction of a \"Durand\" Weapons & Targeting Control module."
+ id = "durand_targ"
+ req_tech = list("programming" = 4, "combat" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/durand/targeting"
+datum/design/honker_main
+ name = "Circuit Design (\"H.O.N.K\" Central Control module)"
+ desc = "Allows for the construction of a \"H.O.N.K\" Central Control module."
+ id = "honker_main"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/honker/main"
- honker_main
- name = "Circuit Design (\"H.O.N.K\" Central Control module)"
- desc = "Allows for the construction of a \"H.O.N.K\" Central Control module."
- id = "honker_main"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/honker/main"
+datum/design/honker_peri
+ name = "Circuit Design (\"H.O.N.K\" Peripherals Control module)"
+ desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module."
+ id = "honker_peri"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/honker/peripherals"
- honker_peri
- name = "Circuit Design (\"H.O.N.K\" Peripherals Control module)"
- desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module."
- id = "honker_peri"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/honker/peripherals"
-
- honker_targ
- name = "Circuit Design (\"H.O.N.K\" Weapons & Targeting Control module)"
- desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module."
- id = "honker_targ"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mecha/honker/targeting"
+datum/design/honker_targ
+ name = "Circuit Design (\"H.O.N.K\" Weapons & Targeting Control module)"
+ desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module."
+ id = "honker_targ"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mecha/honker/targeting"
////////////////////////////////////////
/////////// Mecha Equpment /////////////
////////////////////////////////////////
- mech_scattershot
- name = "Exosuit Weapon Design (LBX AC 10 \"Scattershot\")"
- desc = "Allows for the construction of LBX AC 10."
- id = "mech_scattershot"
- build_type = MECHFAB
- req_tech = list("combat" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot"
+datum/design/mech_scattershot
+ name = "Exosuit Weapon Design (LBX AC 10 \"Scattershot\")"
+ desc = "Allows for the construction of LBX AC 10."
+ id = "mech_scattershot"
+ build_type = MECHFAB
+ req_tech = list("combat" = 4)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot"
- mech_laser
- name = "Exosuit Weapon Design (CH-PS \"Immolator\" Laser)"
- desc = "Allows for the construction of CH-PS Laser."
- id = "mech_laser"
- build_type = MECHFAB
- req_tech = list("combat" = 3, "magnets" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser"
+datum/design/mech_laser
+ name = "Exosuit Weapon Design (CH-PS \"Immolator\" Laser)"
+ desc = "Allows for the construction of CH-PS Laser."
+ id = "mech_laser"
+ build_type = MECHFAB
+ req_tech = list("combat" = 3, "magnets" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser"
- mech_laser_heavy
- name = "Exosuit Weapon Design (CH-LC \"Solaris\" Laser Cannon)"
- desc = "Allows for the construction of CH-LC Laser Cannon."
- id = "mech_laser_heavy"
- build_type = MECHFAB
- req_tech = list("combat" = 4, "magnets" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy"
+datum/design/mech_laser_heavy
+ name = "Exosuit Weapon Design (CH-LC \"Solaris\" Laser Cannon)"
+ desc = "Allows for the construction of CH-LC Laser Cannon."
+ id = "mech_laser_heavy"
+ build_type = MECHFAB
+ req_tech = list("combat" = 4, "magnets" = 4)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy"
- mech_grenade_launcher
- name = "Exosuit Weapon Design (SGL-6 Grenade Launcher)"
- desc = "Allows for the construction of SGL-6 Grenade Launcher."
- id = "mech_grenade_launcher"
- build_type = MECHFAB
- req_tech = list("combat" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang"
+datum/design/mech_grenade_launcher
+ name = "Exosuit Weapon Design (SGL-6 Grenade Launcher)"
+ desc = "Allows for the construction of SGL-6 Grenade Launcher."
+ id = "mech_grenade_launcher"
+ build_type = MECHFAB
+ req_tech = list("combat" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang"
- mech_wormhole_gen
- name = "Exosuit Module Design (Localized Wormhole Generator)"
- desc = "An exosuit module that allows generating of small quasi-stable wormholes."
- id = "mech_wormhole_gen"
- build_type = MECHFAB
- req_tech = list("bluespace" = 3, "magnets" = 2)
- build_path = "/obj/item/mecha_parts/mecha_equipment/wormhole_generator"
+datum/design/mech_wormhole_gen
+ name = "Exosuit Module Design (Localized Wormhole Generator)"
+ desc = "An exosuit module that allows generating of small quasi-stable wormholes."
+ id = "mech_wormhole_gen"
+ build_type = MECHFAB
+ req_tech = list("bluespace" = 3, "magnets" = 2)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/wormhole_generator"
- mech_teleporter
- name = "Exosuit Module Design (Teleporter Module)"
- desc = "An exosuit module that allows exosuits to teleport to any position in view."
- id = "mech_teleporter"
- build_type = MECHFAB
- req_tech = list("bluespace" = 10, "magnets" = 5)
- build_path = "/obj/item/mecha_parts/mecha_equipment/teleporter"
+datum/design/mech_teleporter
+ name = "Exosuit Module Design (Teleporter Module)"
+ desc = "An exosuit module that allows exosuits to teleport to any position in view."
+ id = "mech_teleporter"
+ build_type = MECHFAB
+ req_tech = list("bluespace" = 10, "magnets" = 5)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/teleporter"
- mech_rcd
- name = "Exosuit Module Design (RCD Module)"
- desc = "An exosuit-mounted Rapid Construction Device."
- id = "mech_rcd"
- build_type = MECHFAB
- req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tool/rcd"
+datum/design/mech_rcd
+ name = "Exosuit Module Design (RCD Module)"
+ desc = "An exosuit-mounted Rapid Construction Device."
+ id = "mech_rcd"
+ build_type = MECHFAB
+ req_tech = list("materials" = 4, "bluespace" = 3, "magnets" = 4, "powerstorage"=4, "engineering" = 4)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/tool/rcd"
- mech_gravcatapult
- name = "Exosuit Module Design (Gravitational Catapult Module)"
- desc = "An exosuit mounted Gravitational Catapult."
- id = "mech_gravcatapult"
- build_type = MECHFAB
- req_tech = list("bluespace" = 2, "magnets" = 3, "engineering" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/gravcatapult"
+datum/design/mech_gravcatapult
+ name = "Exosuit Module Design (Gravitational Catapult Module)"
+ desc = "An exosuit mounted Gravitational Catapult."
+ id = "mech_gravcatapult"
+ build_type = MECHFAB
+ req_tech = list("bluespace" = 2, "magnets" = 3, "engineering" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/gravcatapult"
- mech_repair_droid
- name = "Exosuit Module Design (Repair Droid Module)"
- desc = "Automated Repair Droid. BEEP BOOP"
- id = "mech_repair_droid"
- build_type = MECHFAB
- req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/repair_droid"
+datum/design/mech_repair_droid
+ name = "Exosuit Module Design (Repair Droid Module)"
+ desc = "Automated Repair Droid. BEEP BOOP"
+ id = "mech_repair_droid"
+ build_type = MECHFAB
+ req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/repair_droid"
- mech_plasma_generator
- name = "Exosuit Module Design (Plasma Converter Module)"
- desc = "Exosuit-mounted plasma converter."
- id = "mech_plasma_generator"
- build_type = MECHFAB
- req_tech = list("plasmatech" = 2, "powerstorage"= 2, "engineering" = 2)
- build_path = "/obj/item/mecha_parts/mecha_equipment/plasma_generator"
+datum/design/mech_plasma_generator
+ name = "Exosuit Module Design (Plasma Converter Module)"
+ desc = "Exosuit-mounted plasma converter."
+ id = "mech_plasma_generator"
+ build_type = MECHFAB
+ req_tech = list("plasmatech" = 2, "powerstorage"= 2, "engineering" = 2)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/plasma_generator"
- mech_energy_relay
- name = "Exosuit Module Design (Tesla Energy Relay)"
- desc = "Tesla Energy Relay"
- id = "mech_energy_relay"
- build_type = MECHFAB
- req_tech = list("magnets" = 4, "syndicate" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay"
+datum/design/mech_energy_relay
+ name = "Exosuit Module Design (Tesla Energy Relay)"
+ desc = "Tesla Energy Relay"
+ id = "mech_energy_relay"
+ build_type = MECHFAB
+ req_tech = list("magnets" = 4, "syndicate" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay"
- mech_ccw_armor
- name = "Exosuit Module Design(Reactive Armor Booster Module)"
- desc = "Exosuit-mounted armor booster."
- id = "mech_ccw_armor"
- build_type = MECHFAB
- req_tech = list("materials" = 5, "combat" = 4)
- build_path = "/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster"
+datum/design/mech_ccw_armor
+ name = "Exosuit Module Design(Reactive Armor Booster Module)"
+ desc = "Exosuit-mounted armor booster."
+ id = "mech_ccw_armor"
+ build_type = MECHFAB
+ req_tech = list("materials" = 5, "combat" = 4)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster"
- mech_proj_armor
- name = "Exosuit Module Design(Reflective Armor Booster Module)"
- desc = "Exosuit-mounted armor booster."
- id = "mech_proj_armor"
- build_type = MECHFAB
- req_tech = list("materials" = 5, "combat" = 5, "engineering"=3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster"
+datum/design/mech_proj_armor
+ name = "Exosuit Module Design(Reflective Armor Booster Module)"
+ desc = "Exosuit-mounted armor booster."
+ id = "mech_proj_armor"
+ build_type = MECHFAB
+ req_tech = list("materials" = 5, "combat" = 5, "engineering"=3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster"
- mech_syringe_gun
- name = "Exosuit Module Design(Syringe Gun)"
- desc = "Exosuit-mounted syringe gun and chemical synthesizer."
- id = "mech_syringe_gun"
- build_type = MECHFAB
- req_tech = list("materials" = 3, "biotech"=4, "magnets"=4, "programming"=3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun"
+datum/design/mech_syringe_gun
+ name = "Exosuit Module Design(Syringe Gun)"
+ desc = "Exosuit-mounted syringe gun and chemical synthesizer."
+ id = "mech_syringe_gun"
+ build_type = MECHFAB
+ req_tech = list("materials" = 3, "biotech"=4, "magnets"=4, "programming"=3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun"
- mech_diamond_drill
- name = "Exosuit Module Design (Diamond Mining Drill)"
- desc = "An upgraded version of the standard drill"
- id = "mech_diamond_drill"
- build_type = MECHFAB
- req_tech = list("materials" = 4, "engineering" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill"
+datum/design/mech_diamond_drill
+ name = "Exosuit Module Design (Diamond Mining Drill)"
+ desc = "An upgraded version of the standard drill"
+ id = "mech_diamond_drill"
+ build_type = MECHFAB
+ req_tech = list("materials" = 4, "engineering" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill"
- mech_generator_nuclear
- name = "Exosuit Module Design (ExoNuclear Reactor)"
- desc = "Compact nuclear reactor module"
- id = "mech_generator_nuclear"
- build_type = MECHFAB
- req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3)
- build_path = "/obj/item/mecha_parts/mecha_equipment/generator/nuclear"
+datum/design/mech_generator_nuclear
+ name = "Exosuit Module Design (ExoNuclear Reactor)"
+ desc = "Compact nuclear reactor module"
+ id = "mech_generator_nuclear"
+ build_type = MECHFAB
+ req_tech = list("powerstorage"= 3, "engineering" = 3, "materials" = 3)
+ build_path = "/obj/item/mecha_parts/mecha_equipment/generator/nuclear"
////////////////////////////////////////
//////////Disk Construction Disks///////
////////////////////////////////////////
- design_disk
- name = "Design Storage Disk"
- desc = "Produce additional disks for storing device designs."
- id = "design_disk"
- req_tech = list("programming" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 30, "$glass" = 10)
- build_path = "/obj/item/weapon/disk/design_disk"
+datum/design/design_disk
+ name = "Design Storage Disk"
+ desc = "Produce additional disks for storing device designs."
+ id = "design_disk"
+ req_tech = list("programming" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 30, "$glass" = 10)
+ build_path = "/obj/item/weapon/disk/design_disk"
- tech_disk
- name = "Technology Data Storage Disk"
- desc = "Produce additional disks for storing technology data."
- id = "tech_disk"
- req_tech = list("programming" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 30, "$glass" = 10)
- build_path = "/obj/item/weapon/disk/tech_disk"
+datum/design/tech_disk
+ name = "Technology Data Storage Disk"
+ desc = "Produce additional disks for storing technology data."
+ id = "tech_disk"
+ req_tech = list("programming" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 30, "$glass" = 10)
+ build_path = "/obj/item/weapon/disk/tech_disk"
////////////////////////////////////////
/////////////Stock Parts////////////////
////////////////////////////////////////
- basic_capacitor
- name = "Basic Capacitor"
- desc = "A stock part used in the construction of various devices."
- id = "basic_capacitor"
- req_tech = list("powerstorage" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/weapon/stock_parts/capacitor"
+datum/design/basic_capacitor
+ name = "Basic Capacitor"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_capacitor"
+ req_tech = list("powerstorage" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = "/obj/item/weapon/stock_parts/capacitor"
- basic_sensor
- name = "Basic Sensor Module"
- desc = "A stock part used in the construction of various devices."
- id = "basic_sensor"
- req_tech = list("magnets" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 50, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/scanning_module"
+datum/design/basic_sensor
+ name = "Basic Sensor Module"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_sensor"
+ req_tech = list("magnets" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20)
+ build_path = "/obj/item/weapon/stock_parts/scanning_module"
- micro_mani
- name = "Micro Manipulator"
- desc = "A stock part used in the construction of various devices."
- id = "micro_mani"
- req_tech = list("materials" = 1, "programming" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 30)
- build_path = "/obj/item/weapon/stock_parts/manipulator"
+datum/design/micro_mani
+ name = "Micro Manipulator"
+ desc = "A stock part used in the construction of various devices."
+ id = "micro_mani"
+ req_tech = list("materials" = 1, "programming" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 30)
+ build_path = "/obj/item/weapon/stock_parts/manipulator"
- basic_micro_laser
- name = "Basic Micro-Laser"
- desc = "A stock part used in the construction of various devices."
- id = "basic_micro_laser"
- req_tech = list("magnets" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 10, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/micro_laser"
+datum/design/basic_micro_laser
+ name = "Basic Micro-Laser"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_micro_laser"
+ req_tech = list("magnets" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 10, "$glass" = 20)
+ build_path = "/obj/item/weapon/stock_parts/micro_laser"
- basic_matter_bin
- name = "Basic Matter Bin"
- desc = "A stock part used in the construction of various devices."
- id = "basic_matter_bin"
- req_tech = list("materials" = 1)
- build_type = PROTOLATHE | AUTOLATHE
- materials = list("$metal" = 80)
- build_path = "/obj/item/weapon/stock_parts/matter_bin"
+datum/design/basic_matter_bin
+ name = "Basic Matter Bin"
+ desc = "A stock part used in the construction of various devices."
+ id = "basic_matter_bin"
+ req_tech = list("materials" = 1)
+ build_type = PROTOLATHE | AUTOLATHE
+ materials = list("$metal" = 80)
+ build_path = "/obj/item/weapon/stock_parts/matter_bin"
- adv_capacitor
- name = "Advanced Capacitor"
- desc = "A stock part used in the construction of various devices."
- id = "adv_capacitor"
- req_tech = list("powerstorage" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/weapon/stock_parts/capacitor/adv"
+datum/design/adv_capacitor
+ name = "Advanced Capacitor"
+ desc = "A stock part used in the construction of various devices."
+ id = "adv_capacitor"
+ req_tech = list("powerstorage" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = "/obj/item/weapon/stock_parts/capacitor/adv"
- adv_sensor
- name = "Advanced Sensor Module"
- desc = "A stock part used in the construction of various devices."
- id = "adv_sensor"
- req_tech = list("magnets" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/scanning_module/adv"
+datum/design/adv_sensor
+ name = "Advanced Sensor Module"
+ desc = "A stock part used in the construction of various devices."
+ id = "adv_sensor"
+ req_tech = list("magnets" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20)
+ build_path = "/obj/item/weapon/stock_parts/scanning_module/adv"
- nano_mani
- name = "Nano Manipulator"
- desc = "A stock part used in the construction of various devices."
- id = "nano_mani"
- req_tech = list("materials" = 3, "programming" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 30)
- build_path = "/obj/item/weapon/stock_parts/manipulator/nano"
+datum/design/nano_mani
+ name = "Nano Manipulator"
+ desc = "A stock part used in the construction of various devices."
+ id = "nano_mani"
+ req_tech = list("materials" = 3, "programming" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30)
+ build_path = "/obj/item/weapon/stock_parts/manipulator/nano"
- high_micro_laser
- name = "High-Power Micro-Laser"
- desc = "A stock part used in the construction of various devices."
- id = "high_micro_laser"
- req_tech = list("magnets" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 10, "$glass" = 20)
- build_path = "/obj/item/weapon/stock_parts/micro_laser/high"
+datum/design/high_micro_laser
+ name = "High-Power Micro-Laser"
+ desc = "A stock part used in the construction of various devices."
+ id = "high_micro_laser"
+ req_tech = list("magnets" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 10, "$glass" = 20)
+ build_path = "/obj/item/weapon/stock_parts/micro_laser/high"
- adv_matter_bin
- name = "Advanced Matter Bin"
- desc = "A stock part used in the construction of various devices."
- id = "adv_matter_bin"
- req_tech = list("materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 80)
- build_path = "/obj/item/weapon/stock_parts/matter_bin/adv"
+datum/design/adv_matter_bin
+ name = "Advanced Matter Bin"
+ desc = "A stock part used in the construction of various devices."
+ id = "adv_matter_bin"
+ req_tech = list("materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 80)
+ build_path = "/obj/item/weapon/stock_parts/matter_bin/adv"
- super_capacitor
- name = "Super Capacitor"
- desc = "A stock part used in the construction of various devices."
- id = "super_capacitor"
- req_tech = list("powerstorage" = 5, "materials" = 4)
- build_type = PROTOLATHE
- reliability_base = 71
- materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20)
- build_path = "/obj/item/weapon/stock_parts/capacitor/super"
+datum/design/super_capacitor
+ name = "Super Capacitor"
+ desc = "A stock part used in the construction of various devices."
+ id = "super_capacitor"
+ req_tech = list("powerstorage" = 5, "materials" = 4)
+ build_type = PROTOLATHE
+ reliability_base = 71
+ materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20)
+ build_path = "/obj/item/weapon/stock_parts/capacitor/super"
- phasic_sensor
- name = "Phasic Sensor Module"
- desc = "A stock part used in the construction of various devices."
- id = "phasic_sensor"
- req_tech = list("magnets" = 5, "materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10)
- reliability_base = 72
- build_path = "/obj/item/weapon/stock_parts/scanning_module/phasic"
+datum/design/phasic_sensor
+ name = "Phasic Sensor Module"
+ desc = "A stock part used in the construction of various devices."
+ id = "phasic_sensor"
+ req_tech = list("magnets" = 5, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10)
+ reliability_base = 72
+ build_path = "/obj/item/weapon/stock_parts/scanning_module/phasic"
- pico_mani
- name = "Pico Manipulator"
- desc = "A stock part used in the construction of various devices."
- id = "pico_mani"
- req_tech = list("materials" = 5, "programming" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 30)
- reliability_base = 73
- build_path = "/obj/item/weapon/stock_parts/manipulator/pico"
+datum/design/pico_mani
+ name = "Pico Manipulator"
+ desc = "A stock part used in the construction of various devices."
+ id = "pico_mani"
+ req_tech = list("materials" = 5, "programming" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30)
+ reliability_base = 73
+ build_path = "/obj/item/weapon/stock_parts/manipulator/pico"
- ultra_micro_laser
- name = "Ultra-High-Power Micro-Laser"
- desc = "A stock part used in the construction of various devices."
- id = "ultra_micro_laser"
- req_tech = list("magnets" = 5, "materials" = 5)
- build_type = PROTOLATHE
- materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10)
- reliability_base = 70
- build_path = "/obj/item/weapon/stock_parts/micro_laser/ultra"
+datum/design/ultra_micro_laser
+ name = "Ultra-High-Power Micro-Laser"
+ desc = "A stock part used in the construction of various devices."
+ id = "ultra_micro_laser"
+ req_tech = list("magnets" = 5, "materials" = 5)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10)
+ reliability_base = 70
+ build_path = "/obj/item/weapon/stock_parts/micro_laser/ultra"
- super_matter_bin
- name = "Super Matter Bin"
- desc = "A stock part used in the construction of various devices."
- id = "super_matter_bin"
- req_tech = list("materials" = 5)
- build_type = PROTOLATHE
- materials = list("$metal" = 80)
- reliability_base = 75
- build_path = "/obj/item/weapon/stock_parts/matter_bin/super"
+datum/design/super_matter_bin
+ name = "Super Matter Bin"
+ desc = "A stock part used in the construction of various devices."
+ id = "super_matter_bin"
+ req_tech = list("materials" = 5)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 80)
+ 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"
+datum/design/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"
+datum/design/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"
+datum/design/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"
+datum/design/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"
+datum/design/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"
+datum/design/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"
+datum/design/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/////////////////
////////////////////////////////////////
- basic_cell
- name = "Basic Power Cell"
- desc = "A basic power cell that holds 1000 units of energy"
- id = "basic_cell"
- req_tech = list("powerstorage" = 1)
- build_type = PROTOLATHE | AUTOLATHE |MECHFAB
- materials = list("$metal" = 700, "$glass" = 50)
- build_path = "/obj/item/weapon/cell"
+datum/design/basic_cell
+ name = "Basic Power Cell"
+ desc = "A basic power cell that holds 1000 units of energy"
+ id = "basic_cell"
+ req_tech = list("powerstorage" = 1)
+ build_type = PROTOLATHE | AUTOLATHE |MECHFAB
+ materials = list("$metal" = 700, "$glass" = 50)
+ build_path = "/obj/item/weapon/cell"
- high_cell
- name = "High-Capacity Power Cell"
- desc = "A power cell that holds 10000 units of energy"
- id = "high_cell"
- req_tech = list("powerstorage" = 2)
- build_type = PROTOLATHE | AUTOLATHE | MECHFAB
- materials = list("$metal" = 700, "$glass" = 60)
- build_path = "/obj/item/weapon/cell/high"
+datum/design/high_cell
+ name = "High-Capacity Power Cell"
+ desc = "A power cell that holds 10000 units of energy"
+ id = "high_cell"
+ req_tech = list("powerstorage" = 2)
+ build_type = PROTOLATHE | AUTOLATHE | MECHFAB
+ materials = list("$metal" = 700, "$glass" = 60)
+ build_path = "/obj/item/weapon/cell/high"
- super_cell
- name = "Super-Capacity Power Cell"
- desc = "A power cell that holds 20000 units of energy"
- id = "super_cell"
- req_tech = list("powerstorage" = 3, "materials" = 2)
- reliability_base = 75
- build_type = PROTOLATHE | MECHFAB
- materials = list("$metal" = 700, "$glass" = 70)
- build_path = "/obj/item/weapon/cell/super"
+datum/design/super_cell
+ name = "Super-Capacity Power Cell"
+ desc = "A power cell that holds 20000 units of energy"
+ id = "super_cell"
+ req_tech = list("powerstorage" = 3, "materials" = 2)
+ reliability_base = 75
+ build_type = PROTOLATHE | MECHFAB
+ materials = list("$metal" = 700, "$glass" = 70)
+ build_path = "/obj/item/weapon/cell/super"
- hyper_cell
- name = "Hyper-Capacity Power Cell"
- desc = "A power cell that holds 30000 units of energy"
- id = "hyper_cell"
- req_tech = list("powerstorage" = 5, "materials" = 4)
- reliability_base = 70
- build_type = PROTOLATHE | MECHFAB
- materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 70)
- build_path = "/obj/item/weapon/cell/hyper"
+datum/design/hyper_cell
+ name = "Hyper-Capacity Power Cell"
+ desc = "A power cell that holds 30000 units of energy"
+ id = "hyper_cell"
+ req_tech = list("powerstorage" = 5, "materials" = 4)
+ reliability_base = 70
+ build_type = PROTOLATHE | MECHFAB
+ materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 70)
+ build_path = "/obj/item/weapon/cell/hyper"
- light_replacer
- name = "Light Replacer"
- desc = "A device to automatically replace lights. Refill with working lightbulbs."
- id = "light_replacer"
- req_tech = list("magnets" = 3, "materials" = 4)
- build_type = PROTOLATHE
- materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000)
- build_path = "/obj/item/device/lightreplacer"
+datum/design/light_replacer
+ name = "Light Replacer"
+ desc = "A device to automatically replace lights. Refill with working lightbulbs."
+ id = "light_replacer"
+ req_tech = list("magnets" = 3, "materials" = 4)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000)
+ build_path = "/obj/item/device/lightreplacer"
////////////////////////////////////////
//////////////MISC Boards///////////////
////////////////////////////////////////
- destructive_analyzer
- name = "Destructive Analyzer Board"
- desc = "The circuit board for a destructive analyzer."
- id = "destructive_analyzer"
- req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/destructive_analyzer"
+datum/design/destructive_analyzer
+ name = "Destructive Analyzer Board"
+ desc = "The circuit board for a destructive analyzer."
+ id = "destructive_analyzer"
+ req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/destructive_analyzer"
- protolathe
- name = "Protolathe Board"
- desc = "The circuit board for a protolathe."
- id = "protolathe"
- req_tech = list("programming" = 2, "engineering" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/protolathe"
+datum/design/protolathe
+ name = "Protolathe Board"
+ desc = "The circuit board for a protolathe."
+ id = "protolathe"
+ req_tech = list("programming" = 2, "engineering" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/protolathe"
- circuit_imprinter
- name = "Circuit Imprinter Board"
- desc = "The circuit board for a circuit imprinter."
- id = "circuit_imprinter"
- req_tech = list("programming" = 2, "engineering" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/circuit_imprinter"
+datum/design/circuit_imprinter
+ name = "Circuit Imprinter Board"
+ desc = "The circuit board for a circuit imprinter."
+ id = "circuit_imprinter"
+ req_tech = list("programming" = 2, "engineering" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/circuit_imprinter"
- autolathe
- name = "Autolathe Board"
- desc = "The circuit board for a autolathe."
- id = "autolathe"
- req_tech = list("programming" = 2, "engineering" = 2)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/autolathe"
+datum/design/autolathe
+ name = "Autolathe Board"
+ desc = "The circuit board for a autolathe."
+ id = "autolathe"
+ req_tech = list("programming" = 2, "engineering" = 2)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/autolathe"
- rdservercontrol
- name = "R&D Server Control Console Board"
- desc = "The circuit board for a R&D Server Control Console"
- id = "rdservercontrol"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/rdservercontrol"
+datum/design/rdservercontrol
+ name = "R&D Server Control Console Board"
+ desc = "The circuit board for a R&D Server Control Console"
+ id = "rdservercontrol"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/rdservercontrol"
- rdserver
- name = "R&D Server Board"
- desc = "The circuit board for an R&D Server"
- id = "rdserver"
- req_tech = list("programming" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/rdserver"
+datum/design/rdserver
+ name = "R&D Server Board"
+ desc = "The circuit board for an R&D Server"
+ id = "rdserver"
+ req_tech = list("programming" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/rdserver"
- mechfab
- name = "Exosuit Fabricator Board"
- desc = "The circuit board for an Exosuit Fabricator"
- id = "mechfab"
- req_tech = list("programming" = 3, "engineering" = 3)
- build_type = IMPRINTER
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/mechfab"
+datum/design/mechfab
+ name = "Exosuit Fabricator Board"
+ desc = "The circuit board for an Exosuit Fabricator"
+ id = "mechfab"
+ req_tech = list("programming" = 3, "engineering" = 3)
+ build_type = IMPRINTER
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/mechfab"
/////////////////////////////////////////
////////////Power Stuff//////////////////
/////////////////////////////////////////
- pacman
- name = "PACMAN-type Generator Board"
- desc = "The circuit board that for a PACMAN-type portable generator."
- id = "pacman"
- req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)
- build_type = IMPRINTER
- reliability_base = 79
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pacman"
+datum/design/pacman
+ name = "PACMAN-type Generator Board"
+ desc = "The circuit board that for a PACMAN-type portable generator."
+ id = "pacman"
+ req_tech = list("programming" = 3, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)
+ build_type = IMPRINTER
+ reliability_base = 79
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/pacman"
- superpacman
- name = "SUPERPACMAN-type Generator Board"
- desc = "The circuit board that for a SUPERPACMAN-type portable generator."
- id = "superpacman"
- req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4)
- build_type = IMPRINTER
- reliability_base = 76
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pacman/super"
+datum/design/superpacman
+ name = "SUPERPACMAN-type Generator Board"
+ desc = "The circuit board that for a SUPERPACMAN-type portable generator."
+ id = "superpacman"
+ req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4)
+ build_type = IMPRINTER
+ reliability_base = 76
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/pacman/super"
- mrspacman
- name = "MRSPACMAN-type Generator Board"
- desc = "The circuit board that for a MRSPACMAN-type portable generator."
- id = "mrspacman"
- req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5)
- build_type = IMPRINTER
- reliability_base = 74
- materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/item/weapon/circuitboard/pacman/mrs"
+datum/design/mrspacman
+ name = "MRSPACMAN-type Generator Board"
+ desc = "The circuit board that for a MRSPACMAN-type portable generator."
+ id = "mrspacman"
+ req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 5)
+ build_type = IMPRINTER
+ reliability_base = 74
+ materials = list("$glass" = 2000, "acid" = 20)
+ build_path = "/obj/item/weapon/circuitboard/pacman/mrs"
/////////////////////////////////////////
////////////Medical Tools////////////////
/////////////////////////////////////////
- mass_spectrometer
- name = "Mass-Spectrometer"
- desc = "A device for analyzing chemicals in the blood."
- id = "mass_spectrometer"
- req_tech = list("biotech" = 2, "magnets" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 30, "$glass" = 20)
- reliability_base = 76
- build_path = "/obj/item/device/mass_spectrometer"
+datum/design/mass_spectrometer
+ name = "Mass-Spectrometer"
+ desc = "A device for analyzing chemicals in the blood."
+ id = "mass_spectrometer"
+ req_tech = list("biotech" = 2, "magnets" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30, "$glass" = 20)
+ reliability_base = 76
+ build_path = "/obj/item/device/mass_spectrometer"
- adv_mass_spectrometer
- name = "Advanced Mass-Spectrometer"
- desc = "A device for analyzing chemicals in the blood and their quantities."
- id = "adv_mass_spectrometer"
- req_tech = list("biotech" = 2, "magnets" = 4)
- build_type = PROTOLATHE
- materials = list("$metal" = 30, "$glass" = 20)
- reliability_base = 74
- build_path = "/obj/item/device/mass_spectrometer/adv"
+datum/design/adv_mass_spectrometer
+ name = "Advanced Mass-Spectrometer"
+ desc = "A device for analyzing chemicals in the blood and their quantities."
+ id = "adv_mass_spectrometer"
+ req_tech = list("biotech" = 2, "magnets" = 4)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 30, "$glass" = 20)
+ reliability_base = 74
+ build_path = "/obj/item/device/mass_spectrometer/adv"
- mmi
- name = "Man-Machine Interface"
- desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity."
- id = "mmi"
- req_tech = list("programming" = 2, "biotech" = 3)
- build_type = PROTOLATHE | MECHFAB
- materials = list("$metal" = 1000, "$glass" = 500)
- reliability_base = 76
- build_path = "/obj/item/device/mmi"
+datum/design/mmi
+ name = "Man-Machine Interface"
+ desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity."
+ id = "mmi"
+ req_tech = list("programming" = 2, "biotech" = 3)
+ build_type = PROTOLATHE | MECHFAB
+ materials = list("$metal" = 1000, "$glass" = 500)
+ reliability_base = 76
+ build_path = "/obj/item/device/mmi"
- mmi_radio
- name = "Radio-enabled Man-Machine Interface"
- desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity. This one comes with a built-in radio."
- id = "mmi_radio"
- req_tech = list("programming" = 2, "biotech" = 4)
- build_type = PROTOLATHE | MECHFAB
- materials = list("$metal" = 1200, "$glass" = 500)
- reliability_base = 74
- build_path = "/obj/item/device/mmi/radio_enabled"
+datum/design/mmi_radio
+ name = "Radio-enabled Man-Machine Interface"
+ desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity. This one comes with a built-in radio."
+ id = "mmi_radio"
+ req_tech = list("programming" = 2, "biotech" = 4)
+ build_type = PROTOLATHE | MECHFAB
+ materials = list("$metal" = 1200, "$glass" = 500)
+ reliability_base = 74
+ build_path = "/obj/item/device/mmi/radio_enabled"
- synthetic_flash
- name = "Synthetic Flash"
- desc = "When a problem arises, SCIENCE is the solution."
- id = "sflash"
- req_tech = list("magnets" = 3, "combat" = 2)
- build_type = MECHFAB
- materials = list("$metal" = 750, "$glass" = 750)
- reliability_base = 76
- build_path = "/obj/item/device/flash/synthetic"
+datum/design/synthetic_flash
+ name = "Synthetic Flash"
+ desc = "When a problem arises, SCIENCE is the solution."
+ id = "sflash"
+ req_tech = list("magnets" = 3, "combat" = 2)
+ build_type = MECHFAB
+ materials = list("$metal" = 750, "$glass" = 750)
+ reliability_base = 76
+ build_path = "/obj/item/device/flash/synthetic"
/////////////////////////////////////////
/////////////////Weapons/////////////////
/////////////////////////////////////////
- nuclear_gun
- name = "Advanced Energy Gun"
- desc = "An energy gun with an experimental miniaturized reactor."
- id = "nuclear_gun"
- req_tech = list("combat" = 3, "materials" = 5, "powerstorage" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 500)
- reliability_base = 76
- build_path = "/obj/item/weapon/gun/energy/gun/nuclear"
- locked = 1
+datum/design/nuclear_gun
+ name = "Advanced Energy Gun"
+ desc = "An energy gun with an experimental miniaturized reactor."
+ id = "nuclear_gun"
+ req_tech = list("combat" = 3, "materials" = 5, "powerstorage" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 500)
+ reliability_base = 76
+ build_path = "/obj/item/weapon/gun/energy/gun/nuclear"
+ locked = 1
- stunrevolver
- name = "Stun Revolver"
- desc = "The prize of the Head of Security."
- id = "stunrevolver"
- req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 4000)
- build_path = "/obj/item/weapon/gun/energy/stunrevolver"
- locked = 1
+datum/design/stunrevolver
+ name = "Stun Revolver"
+ desc = "The prize of the Head of Security."
+ id = "stunrevolver"
+ req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 4000)
+ build_path = "/obj/item/weapon/gun/energy/stunrevolver"
+ locked = 1
- lasercannon
- name = "Laser Cannon"
- desc = "A heavy duty laser cannon."
- id = "lasercannon"
- req_tech = list("combat" = 4, "materials" = 3, "powerstorage" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 10000, "$glass" = 1000, "$diamond" = 2000)
- build_path = "/obj/item/weapon/gun/energy/lasercannon"
- locked = 1
+datum/design/lasercannon
+ name = "Laser Cannon"
+ desc = "A heavy duty laser cannon."
+ id = "lasercannon"
+ req_tech = list("combat" = 4, "materials" = 3, "powerstorage" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 10000, "$glass" = 1000, "$diamond" = 2000)
+ build_path = "/obj/item/weapon/gun/energy/lasercannon"
+ locked = 1
- decloner
- name = "Decloner"
- desc = "Your opponent will bubble into a messy pile of goop."
- id = "decloner"
- req_tech = list("combat" = 8, "materials" = 7, "biotech" = 5, "powerstorage" = 6)
- build_type = PROTOLATHE
- materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40)
- build_path = "/obj/item/weapon/gun/energy/decloner"
- locked = 1
+datum/design/decloner
+ name = "Decloner"
+ desc = "Your opponent will bubble into a messy pile of goop."
+ id = "decloner"
+ req_tech = list("combat" = 8, "materials" = 7, "biotech" = 5, "powerstorage" = 6)
+ build_type = PROTOLATHE
+ materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40)
+ build_path = "/obj/item/weapon/gun/energy/decloner"
+ locked = 1
/*
- chemsprayer
- name = "Chem Sprayer"
- desc = "An advanced chem spraying device."
- id = "chemsprayer"
- req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 5000, "$glass" = 1000)
- reliability_base = 100
- build_path = "/obj/item/weapon/chemsprayer"
+datum/design/chemsprayer
+ name = "Chem Sprayer"
+ desc = "An advanced chem spraying device."
+ id = "chemsprayer"
+ req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 1000)
+ reliability_base = 100
+ build_path = "/obj/item/weapon/chemsprayer"
*/
- rapidsyringe
- name = "Rapid Syringe Gun"
- desc = "A gun that fires many syringes."
- id = "rapidsyringe"
- req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 5000, "$glass" = 1000)
- build_path = "/obj/item/weapon/gun/syringe/rapidsyringe"
+datum/design/rapidsyringe
+ name = "Rapid Syringe Gun"
+ desc = "A gun that fires many syringes."
+ id = "rapidsyringe"
+ req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 1000)
+ build_path = "/obj/item/weapon/gun/syringe/rapidsyringe"
/*
- largecrossbow
- name = "Energy Crossbow"
- desc = "A weapon favoured by syndicate infiltration teams."
- id = "largecrossbow"
- req_tech = list("combat" = 4, "materials" = 5, "engineering" = 3, "biotech" = 4, "syndicate" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 1000, "$silver" = 1000)
- build_path = "/obj/item/weapon/gun/energy/crossbow/largecrossbow"
+datum/design/largecrossbow
+ name = "Energy Crossbow"
+ desc = "A weapon favoured by syndicate infiltration teams."
+ id = "largecrossbow"
+ req_tech = list("combat" = 4, "materials" = 5, "engineering" = 3, "biotech" = 4, "syndicate" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 1000, "$silver" = 1000)
+ build_path = "/obj/item/weapon/gun/energy/crossbow/largecrossbow"
*/
- temp_gun
- name = "Temperature Gun"
- desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
- id = "temp_gun"
- req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000)
- build_path = "/obj/item/weapon/gun/energy/temperature"
- locked = 1
+datum/design/temp_gun
+ name = "Temperature Gun"
+ desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
+ id = "temp_gun"
+ req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000)
+ build_path = "/obj/item/weapon/gun/energy/temperature"
+ locked = 1
- flora_gun
- name = "Floral Somatoray"
- desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life."
- id = "flora_gun"
- req_tech = list("materials" = 2, "biotech" = 3, "powerstorage" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 2000, "$glass" = 500, "$uranium" = 500)
- build_path = "/obj/item/weapon/gun/energy/floragun"
+datum/design/flora_gun
+ name = "Floral Somatoray"
+ desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life."
+ id = "flora_gun"
+ req_tech = list("materials" = 2, "biotech" = 3, "powerstorage" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 2000, "$glass" = 500, "$uranium" = 500)
+ build_path = "/obj/item/weapon/gun/energy/floragun"
- large_grenade
- name = "Large Grenade"
- desc = "A grenade that affects a larger area and use larger containers."
- id = "large_Grenade"
- req_tech = list("combat" = 3, "materials" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 3000)
- reliability_base = 79
- build_path = "/obj/item/weapon/grenade/chem_grenade/large"
+datum/design/large_grenade
+ name = "Large Grenade"
+ desc = "A grenade that affects a larger area and use larger containers."
+ id = "large_Grenade"
+ req_tech = list("combat" = 3, "materials" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 3000)
+ reliability_base = 79
+ build_path = "/obj/item/weapon/grenade/chem_grenade/large"
- smg
- name = "Submachine Gun"
- desc = "A lightweight, fast firing gun."
- id = "smg"
- req_tech = list("combat" = 4, "materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000)
- build_path = "/obj/item/weapon/gun/projectile/automatic"
- locked = 1
+datum/design/smg
+ name = "Submachine Gun"
+ desc = "A lightweight, fast firing gun."
+ id = "smg"
+ req_tech = list("combat" = 4, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000)
+ build_path = "/obj/item/weapon/gun/projectile/automatic"
+ locked = 1
- ammo_9mm
- name = "Ammunition Box (9mm)"
- desc = "A box of prototype 9mm ammunition."
- id = "ammo_9mm"
- req_tech = list("combat" = 4, "materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 3750, "$silver" = 100)
- build_path = "/obj/item/ammo_magazine/c9mm"
+datum/design/ammo_9mm
+ name = "Ammunition Box (9mm)"
+ desc = "A box of prototype 9mm ammunition."
+ id = "ammo_9mm"
+ req_tech = list("combat" = 4, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 3750, "$silver" = 100)
+ build_path = "/obj/item/ammo_magazine/c9mm"
- stunshell
- name = "Stun Shell"
- desc = "A stunning shell for a shotgun."
- id = "stunshell"
- req_tech = list("combat" = 3, "materials" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 4000)
- build_path = "/obj/item/ammo_casing/shotgun/stunshell"
+datum/design/stunshell
+ name = "Stun Shell"
+ desc = "A stunning shell for a shotgun."
+ id = "stunshell"
+ req_tech = list("combat" = 3, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 4000)
+ build_path = "/obj/item/ammo_casing/shotgun/stunshell"
/////////////////////////////////////////
/////////////////Mining//////////////////
/////////////////////////////////////////
- jackhammer
- name = "Sonic Jackhammer"
- desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards."
- id = "jackhammer"
- req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500)
- build_path = "/obj/item/weapon/pickaxe/jackhammer"
+datum/design/jackhammer
+ name = "Sonic Jackhammer"
+ desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards."
+ id = "jackhammer"
+ req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500)
+ build_path = "/obj/item/weapon/pickaxe/jackhammer"
- drill
- name = "Mining Drill"
- desc = "Yours is the drill that will pierce through the rock walls."
- id = "drill"
- req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners.
- build_path = "/obj/item/weapon/pickaxe/drill"
+datum/design/drill
+ name = "Mining Drill"
+ desc = "Yours is the drill that will pierce through the rock walls."
+ id = "drill"
+ req_tech = list("materials" = 2, "powerstorage" = 3, "engineering" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners.
+ build_path = "/obj/item/weapon/pickaxe/drill"
- plasmacutter
- name = "Plasma Cutter"
- desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
- id = "plasmacutter"
- req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500)
- reliability_base = 79
- build_path = "/obj/item/weapon/pickaxe/plasmacutter"
+datum/design/plasmacutter
+ name = "Plasma Cutter"
+ desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
+ id = "plasmacutter"
+ req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500)
+ reliability_base = 79
+ build_path = "/obj/item/weapon/pickaxe/plasmacutter"
- pick_diamond
- name = "Diamond Pickaxe"
- desc = "A pickaxe with a diamond pick head, this is just like minecraft."
- id = "pick_diamond"
- req_tech = list("materials" = 6)
- build_type = PROTOLATHE
- materials = list("$diamond" = 3000)
- build_path = "/obj/item/weapon/pickaxe/diamond"
+datum/design/pick_diamond
+ name = "Diamond Pickaxe"
+ desc = "A pickaxe with a diamond pick head, this is just like minecraft."
+ id = "pick_diamond"
+ req_tech = list("materials" = 6)
+ build_type = PROTOLATHE
+ materials = list("$diamond" = 3000)
+ build_path = "/obj/item/weapon/pickaxe/diamond"
- drill_diamond
- name = "Diamond Mining Drill"
- desc = "Yours is the drill that will pierce the heavens!"
- id = "drill_diamond"
- req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4)
- build_type = PROTOLATHE
- materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed.
- reliability_base = 79
- build_path = "/obj/item/weapon/pickaxe/diamonddrill"
+datum/design/drill_diamond
+ name = "Diamond Mining Drill"
+ desc = "Yours is the drill that will pierce the heavens!"
+ id = "drill_diamond"
+ req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed.
+ reliability_base = 79
+ build_path = "/obj/item/weapon/pickaxe/diamonddrill"
- mesons
- name = "Optical Meson Scanners"
- desc = "Used for seeing walls, floors, and stuff through anything."
- id = "mesons"
- req_tech = list("magnets" = 2, "engineering" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/clothing/glasses/meson"
+datum/design/mesons
+ name = "Optical Meson Scanners"
+ desc = "Used for seeing walls, floors, and stuff through anything."
+ id = "mesons"
+ req_tech = list("magnets" = 2, "engineering" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = "/obj/item/clothing/glasses/meson"
/////////////////////////////////////////
//////////////Blue Space/////////////////
/////////////////////////////////////////
- beacon
- name = "Tracking Beacon"
- desc = "A blue space tracking beacon."
- id = "beacon"
- req_tech = list("bluespace" = 1)
- build_type = PROTOLATHE
- materials = list ("$metal" = 20, "$glass" = 10)
- build_path = "/obj/item/device/radio/beacon"
+datum/design/beacon
+ name = "Tracking Beacon"
+ desc = "A blue space tracking beacon."
+ id = "beacon"
+ req_tech = list("bluespace" = 1)
+ build_type = PROTOLATHE
+ materials = list ("$metal" = 20, "$glass" = 10)
+ build_path = "/obj/item/device/radio/beacon"
- bag_holding
- name = "Bag of Holding"
- desc = "A backpack that opens into a localized pocket of Blue Space."
- id = "bag_holding"
- req_tech = list("bluespace" = 4, "materials" = 6)
- build_type = PROTOLATHE
- materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250)
- reliability_base = 80
- build_path = "/obj/item/weapon/storage/backpack/holding"
+datum/design/bag_holding
+ name = "Bag of Holding"
+ desc = "A backpack that opens into a localized pocket of Blue Space."
+ id = "bag_holding"
+ req_tech = list("bluespace" = 4, "materials" = 6)
+ build_type = PROTOLATHE
+ materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250)
+ reliability_base = 80
+ build_path = "/obj/item/weapon/storage/backpack/holding"
/////////////////////////////////////////
/////////////////HUDs////////////////////
/////////////////////////////////////////
- health_hud
- name = "Health Scanner HUD"
- desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
- id = "health_hud"
- req_tech = list("biotech" = 2, "magnets" = 3)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/clothing/glasses/hud/health"
+datum/design/health_hud
+ name = "Health Scanner HUD"
+ desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
+ id = "health_hud"
+ req_tech = list("biotech" = 2, "magnets" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = "/obj/item/clothing/glasses/hud/health"
- security_hud
- name = "Security HUD"
- desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status."
- id = "security_hud"
- req_tech = list("magnets" = 3, "combat" = 2)
- build_type = PROTOLATHE
- materials = list("$metal" = 50, "$glass" = 50)
- build_path = "/obj/item/clothing/glasses/hud/security"
- locked = 1
+datum/design/security_hud
+ name = "Security HUD"
+ desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status."
+ id = "security_hud"
+ req_tech = list("magnets" = 3, "combat" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 50, "$glass" = 50)
+ build_path = "/obj/item/clothing/glasses/hud/security"
+ locked = 1
/////////////////////////////////////////
//////////////////Test///////////////////
@@ -1543,8 +1541,9 @@ datum
m_amt = 30
g_amt = 10
var/datum/design/blueprint
- New()
- src.pixel_x = rand(-5.0, 5)
- src.pixel_y = rand(-5.0, 5)
+
+/obj/item/weapon/disk/design_disk/New()
+ src.pixel_x = rand(-5.0, 5)
+ src.pixel_y = rand(-5.0, 5)
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 1a2a880a56a..e3253c2d128 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -13,91 +13,91 @@ Note: Must be placed within 3 tiles of the R&D Console
var/obj/item/weapon/loaded_item = null
var/decon_mod = 1
- New()
- ..()
- component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(src)
- component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
- RefreshParts()
-
+/obj/machinery/r_n_d/destructive_analyzer/New()
+ ..()
+ component_parts = list()
+ component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(src)
+ component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
+ component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
RefreshParts()
- var/T = 0
- for(var/obj/item/weapon/stock_parts/S in src)
- T += S.rating * 0.1
- T = between (0, T, 1)
- decon_mod = T
- meteorhit()
- del(src)
+/obj/machinery/r_n_d/destructive_analyzer/RefreshParts()
+ var/T = 0
+ for(var/obj/item/weapon/stock_parts/S in src)
+ T += S.rating * 0.1
+ T = between (0, T, 1)
+ decon_mod = T
+
+/obj/machinery/r_n_d/destructive_analyzer/meteorhit()
+ del(src)
+ return
+
+/obj/machinery/r_n_d/destructive_analyzer/proc/ConvertReqString2List(var/list/source_list)
+ var/list/temp_list = params2list(source_list)
+ for(var/O in temp_list)
+ temp_list[O] = text2num(temp_list[O])
+ return temp_list
+
+
+/obj/machinery/r_n_d/destructive_analyzer/attackby(var/obj/O as obj, var/mob/user as mob)
+ if (shocked)
+ shock(user,50)
+ if (istype(O, /obj/item/weapon/screwdriver))
+ if (!opened)
+ opened = 1
+ if(linked_console)
+ linked_console.linked_destroy = null
+ linked_console = null
+ icon_state = "d_analyzer_t"
+ user << "You open the maintenance hatch of [src]."
+ else
+ opened = 0
+ icon_state = "d_analyzer"
+ user << "You close the maintenance hatch of [src]."
return
-
- proc/ConvertReqString2List(var/list/source_list)
- var/list/temp_list = params2list(source_list)
- for(var/O in temp_list)
- temp_list[O] = text2num(temp_list[O])
- return temp_list
-
-
- attackby(var/obj/O as obj, var/mob/user as mob)
- if (shocked)
- shock(user,50)
- if (istype(O, /obj/item/weapon/screwdriver))
- if (!opened)
- opened = 1
- if(linked_console)
- linked_console.linked_destroy = null
- linked_console = null
- icon_state = "d_analyzer_t"
- user << "You open the maintenance hatch of [src]."
- else
- opened = 0
- icon_state = "d_analyzer"
- user << "You close the maintenance hatch of [src]."
- return
- if (opened)
- if(istype(O, /obj/item/weapon/crowbar))
- playsound(src.loc, 'Crowbar.ogg', 50, 1)
- var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
- M.state = 2
- M.icon_state = "box_1"
- for(var/obj/I in component_parts)
- I.loc = src.loc
- del(src)
- return 1
- else
- user << "\red You can't load the [src.name] while it's opened."
- return 1
- if (disabled)
- return
- if (!linked_console)
- user << "\red The protolathe must be linked to an R&D console first!"
- return
- if (busy)
- user << "\red The protolathe is busy right now."
- return
- if (istype(O, /obj/item) && !loaded_item)
- if(!O.origin_tech)
- user << "\red This doesn't seem to have a tech origin!"
- return
- var/list/temp_tech = ConvertReqString2List(O.origin_tech)
- if (temp_tech.len == 0)
- user << "\red You cannot deconstruct this item!"
- return
- if(O.reliability < 90 && O.crit_fail == 0)
- usr << "\red Item is neither reliable enough or broken enough to learn from."
- return
- busy = 1
- loaded_item = O
- user.drop_item()
- O.loc = src
- user << "\blue You add the [O.name] to the machine!"
- flick("d_analyzer_la", src)
- spawn(10)
- icon_state = "d_analyzer_l"
- busy = 0
+ if (opened)
+ if(istype(O, /obj/item/weapon/crowbar))
+ playsound(src.loc, 'Crowbar.ogg', 50, 1)
+ var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
+ M.state = 2
+ M.icon_state = "box_1"
+ for(var/obj/I in component_parts)
+ I.loc = src.loc
+ del(src)
+ return 1
+ else
+ user << "\red You can't load the [src.name] while it's opened."
+ return 1
+ if (disabled)
return
+ if (!linked_console)
+ user << "\red The protolathe must be linked to an R&D console first!"
+ return
+ if (busy)
+ user << "\red The protolathe is busy right now."
+ return
+ if (istype(O, /obj/item) && !loaded_item)
+ if(!O.origin_tech)
+ user << "\red This doesn't seem to have a tech origin!"
+ return
+ var/list/temp_tech = ConvertReqString2List(O.origin_tech)
+ if (temp_tech.len == 0)
+ user << "\red You cannot deconstruct this item!"
+ return
+ if(O.reliability < 90 && O.crit_fail == 0)
+ usr << "\red Item is neither reliable enough or broken enough to learn from."
+ return
+ busy = 1
+ loaded_item = O
+ user.drop_item()
+ O.loc = src
+ user << "\blue You add the [O.name] to the machine!"
+ flick("d_analyzer_la", src)
+ spawn(10)
+ icon_state = "d_analyzer_l"
+ busy = 0
+ return
//For testing purposes only.
/*/obj/item/weapon/deconstruction_test
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 85ac38bf83d..534fa761db5 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -118,56 +118,56 @@ var/global/list/obj/machinery/message_server/message_servers = list()
var/value
var/details
- New(var/param_variable,var/param_value = 0)
- variable = param_variable
- value = param_value
+/datum/feedback_variable/New(var/param_variable,var/param_value = 0)
+ variable = param_variable
+ value = param_value
- proc/inc(var/num = 1)
+/datum/feedback_variable/proc/inc(var/num = 1)
+ if(isnum(value))
+ value += num
+ else
+ value = text2num(value)
if(isnum(value))
value += num
else
- value = text2num(value)
- if(isnum(value))
- value += num
- else
- value = num
+ value = num
- proc/dec(var/num = 1)
+/datum/feedback_variable/proc/dec(var/num = 1)
+ if(isnum(value))
+ value -= num
+ else
+ value = text2num(value)
if(isnum(value))
value -= num
else
- value = text2num(value)
- if(isnum(value))
- value -= num
- else
- value = -num
+ value = -num
- proc/set_value(var/num)
- if(isnum(num))
- value = num
+/datum/feedback_variable/proc/set_value(var/num)
+ if(isnum(num))
+ value = num
- proc/get_value()
- return value
+/datum/feedback_variable/proc/get_value()
+ return value
- proc/get_variable()
- return variable
+/datum/feedback_variable/proc/get_variable()
+ return variable
- proc/set_details(var/text)
- if(istext(text))
+/datum/feedback_variable/proc/set_details(var/text)
+ if(istext(text))
+ details = text
+
+/datum/feedback_variable/proc/add_details(var/text)
+ if(istext(text))
+ if(!details)
details = text
+ else
+ details += " [text]"
- proc/add_details(var/text)
- if(istext(text))
- if(!details)
- details = text
- else
- details += " [text]"
+/datum/feedback_variable/proc/get_details()
+ return details
- proc/get_details()
- return details
-
- proc/get_parsed()
- return list(variable,value,details)
+/datum/feedback_variable/proc/get_parsed()
+ return list(variable,value,details)
var/obj/machinery/blackbox_recorder/blackbox
@@ -197,109 +197,109 @@ var/obj/machinery/blackbox_recorder/blackbox
var/list/datum/feedback_variable/feedback = new()
//Only one can exsist in the world!
- New()
- if(blackbox)
- if(istype(blackbox,/obj/machinery/blackbox_recorder))
- del(src)
- blackbox = src
+/obj/machinery/blackbox_recorder/New()
+ if(blackbox)
+ if(istype(blackbox,/obj/machinery/blackbox_recorder))
+ del(src)
+ blackbox = src
- Del()
- var/turf/T = locate(1,1,2)
- if(T)
- blackbox = null
- var/obj/machinery/blackbox_recorder/BR = new/obj/machinery/blackbox_recorder(T)
- BR.msg_common = msg_common
- BR.msg_science = msg_science
- BR.msg_command = msg_command
- BR.msg_medical = msg_medical
- BR.msg_engineering = msg_engineering
- BR.msg_security = msg_security
- BR.msg_deathsquad = msg_deathsquad
- BR.msg_syndicate = msg_syndicate
- BR.msg_mining = msg_mining
- BR.msg_cargo = msg_cargo
- BR.feedback = feedback
- BR.messages = messages
- BR.messages_admin = messages_admin
- if(blackbox != BR)
- blackbox = BR
- ..()
+/obj/machinery/blackbox_recorder/Del()
+ var/turf/T = locate(1,1,2)
+ if(T)
+ blackbox = null
+ var/obj/machinery/blackbox_recorder/BR = new/obj/machinery/blackbox_recorder(T)
+ BR.msg_common = msg_common
+ BR.msg_science = msg_science
+ BR.msg_command = msg_command
+ BR.msg_medical = msg_medical
+ BR.msg_engineering = msg_engineering
+ BR.msg_security = msg_security
+ BR.msg_deathsquad = msg_deathsquad
+ BR.msg_syndicate = msg_syndicate
+ BR.msg_mining = msg_mining
+ BR.msg_cargo = msg_cargo
+ BR.feedback = feedback
+ BR.messages = messages
+ BR.messages_admin = messages_admin
+ if(blackbox != BR)
+ blackbox = BR
+ ..()
- proc/find_feedback_datum(var/variable)
- for(var/datum/feedback_variable/FV in feedback)
- if(FV.get_variable() == variable)
- return FV
- var/datum/feedback_variable/FV = new(variable)
- feedback += FV
- return FV
+/obj/machinery/blackbox_recorder/proc/find_feedback_datum(var/variable)
+ for(var/datum/feedback_variable/FV in feedback)
+ if(FV.get_variable() == variable)
+ return FV
+ var/datum/feedback_variable/FV = new(variable)
+ feedback += FV
+ return FV
- proc/get_round_feedback()
- return feedback
+/obj/machinery/blackbox_recorder/proc/get_round_feedback()
+ return feedback
- proc/round_end_data_gathering()
+/obj/machinery/blackbox_recorder/proc/round_end_data_gathering()
- var/pda_msg_amt = 0
- var/rc_msg_amt = 0
+ var/pda_msg_amt = 0
+ var/rc_msg_amt = 0
- for(var/obj/machinery/message_server/MS in world)
- if(MS.pda_msgs.len > pda_msg_amt)
- pda_msg_amt = MS.pda_msgs.len
- if(MS.rc_msgs.len > rc_msg_amt)
- rc_msg_amt = MS.rc_msgs.len
+ for(var/obj/machinery/message_server/MS in world)
+ if(MS.pda_msgs.len > pda_msg_amt)
+ pda_msg_amt = MS.pda_msgs.len
+ if(MS.rc_msgs.len > rc_msg_amt)
+ rc_msg_amt = MS.rc_msgs.len
- feedback_set_details("radio_usage","")
+ feedback_set_details("radio_usage","")
- feedback_add_details("radio_usage","COM-[msg_common.len]")
- feedback_add_details("radio_usage","SCI-[msg_science.len]")
- feedback_add_details("radio_usage","HEA-[msg_command.len]")
- feedback_add_details("radio_usage","MED-[msg_medical.len]")
- feedback_add_details("radio_usage","ENG-[msg_engineering.len]")
- feedback_add_details("radio_usage","SEC-[msg_security.len]")
- feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]")
- feedback_add_details("radio_usage","SYN-[msg_syndicate.len]")
- feedback_add_details("radio_usage","MIN-[msg_mining.len]")
- feedback_add_details("radio_usage","CAR-[msg_cargo.len]")
- feedback_add_details("radio_usage","OTH-[messages.len]")
- feedback_add_details("radio_usage","PDA-[pda_msg_amt]")
- feedback_add_details("radio_usage","RC-[rc_msg_amt]")
+ feedback_add_details("radio_usage","COM-[msg_common.len]")
+ feedback_add_details("radio_usage","SCI-[msg_science.len]")
+ feedback_add_details("radio_usage","HEA-[msg_command.len]")
+ feedback_add_details("radio_usage","MED-[msg_medical.len]")
+ feedback_add_details("radio_usage","ENG-[msg_engineering.len]")
+ feedback_add_details("radio_usage","SEC-[msg_security.len]")
+ feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]")
+ feedback_add_details("radio_usage","SYN-[msg_syndicate.len]")
+ feedback_add_details("radio_usage","MIN-[msg_mining.len]")
+ feedback_add_details("radio_usage","CAR-[msg_cargo.len]")
+ feedback_add_details("radio_usage","OTH-[messages.len]")
+ feedback_add_details("radio_usage","PDA-[pda_msg_amt]")
+ feedback_add_details("radio_usage","RC-[rc_msg_amt]")
- feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set.
+ feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set.
- //This proc is only to be called at round end.
- proc/save_all_data_to_sql()
- if(!feedback) return
+//This proc is only to be called at round end.
+/obj/machinery/blackbox_recorder/proc/save_all_data_to_sql()
+ if(!feedback) return
- round_end_data_gathering() //round_end time logging and some other data processing
+ round_end_data_gathering() //round_end time logging and some other data processing
- var/user = sqlfdbklogin
- var/pass = sqlfdbkpass
- var/db = sqlfdbkdb
- var/address = sqladdress
- var/port = sqlport
+ var/user = sqlfdbklogin
+ var/pass = sqlfdbkpass
+ var/db = sqlfdbkdb
+ var/address = sqladdress
+ var/port = sqlport
- var/DBConnection/dbcon = new()
+ var/DBConnection/dbcon = new()
- dbcon.Connect("dbi:mysql:[db]:[address]:[port]","[user]","[pass]")
- if(!dbcon.IsConnected()) return
- var/round_id
+ dbcon.Connect("dbi:mysql:[db]:[address]:[port]","[user]","[pass]")
+ if(!dbcon.IsConnected()) return
+ var/round_id
- var/DBQuery/query = dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM erro_feedback")
- query.Execute()
- while(query.NextRow())
- round_id = query.item[1]
+ var/DBQuery/query = dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM erro_feedback")
+ query.Execute()
+ while(query.NextRow())
+ round_id = query.item[1]
- if(!isnum(round_id))
- round_id = text2num(round_id)
- round_id++
+ if(!isnum(round_id))
+ round_id = text2num(round_id)
+ round_id++
- for(var/datum/feedback_variable/FV in feedback)
- var/sql = "INSERT INTO erro_feedback VALUES (null, Now(), [round_id], \"[FV.get_variable()]\", [FV.get_value()], \"[FV.get_details()]\")"
- var/DBQuery/query_insert = dbcon.NewQuery(sql)
- query_insert.Execute()
+ for(var/datum/feedback_variable/FV in feedback)
+ var/sql = "INSERT INTO erro_feedback VALUES (null, Now(), [round_id], \"[FV.get_variable()]\", [FV.get_value()], \"[FV.get_details()]\")"
+ var/DBQuery/query_insert = dbcon.NewQuery(sql)
+ query_insert.Execute()
- dbcon.Disconnect()
+ dbcon.Disconnect()
// Sanitize inputs to avoid SQL injection attacks
proc/sql_sanitize_text(var/text)
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index 4f3221a5512..f600b26ac63 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -24,154 +24,154 @@ Note: Must be placed west/left of and R&D console to function.
var/adamantine_amount = 0.0
- New()
- ..()
- component_parts = list()
- component_parts += new /obj/item/weapon/circuitboard/protolathe(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
- component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
- component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
- RefreshParts()
-
- proc/TotalMaterials() //returns the total of all the stored materials. Makes code neater.
- return m_amount + g_amount + gold_amount + silver_amount + plasma_amount + uranium_amount + diamond_amount + clown_amount
-
+/obj/machinery/r_n_d/protolathe/New()
+ ..()
+ component_parts = list()
+ component_parts += new /obj/item/weapon/circuitboard/protolathe(src)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
+ component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
+ component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
+ component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
+ component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
RefreshParts()
- var/T = 0
- for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
- T += G.reagents.maximum_volume
- var/datum/reagents/R = new/datum/reagents(T) //Holder for the reagents used as materials.
- reagents = R
- R.my_atom = src
- T = 0
- for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
- T += M.rating
- max_material_storage = T * 75000
- attackby(var/obj/item/O as obj, var/mob/user as mob)
- if (shocked)
- shock(user,50)
- if (O.is_open_container())
- return 1
- if (istype(O, /obj/item/weapon/screwdriver))
- if (!opened)
- opened = 1
- if(linked_console)
- linked_console.linked_lathe = null
- linked_console = null
- icon_state = "protolathe_t"
- user << "You open the maintenance hatch of [src]."
- else
- opened = 0
- icon_state = "protolathe"
- user << "You close the maintenance hatch of [src]."
- return
- if (opened)
- if(istype(O, /obj/item/weapon/crowbar))
- playsound(src.loc, 'Crowbar.ogg', 50, 1)
- var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
- M.state = 2
- M.icon_state = "box_1"
- for(var/obj/I in component_parts)
- if(istype(I, /obj/item/weapon/reagent_containers/glass/beaker))
- reagents.trans_to(I, reagents.total_volume)
- if(I.reliability != 100 && crit_fail)
- I.crit_fail = 1
- I.loc = src.loc
- if(m_amount >= 3750)
- var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)
- G.amount = round(m_amount / G.perunit)
- if(g_amount >= 3750)
- var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
- G.amount = round(g_amount / G.perunit)
- if(plasma_amount >= 2000)
- var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
- G.amount = round(plasma_amount / G.perunit)
- if(silver_amount >= 2000)
- var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
- G.amount = round(silver_amount / G.perunit)
- if(gold_amount >= 2000)
- var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
- G.amount = round(gold_amount / G.perunit)
- if(uranium_amount >= 2000)
- var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
- G.amount = round(uranium_amount / G.perunit)
- if(diamond_amount >= 2000)
- var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
- G.amount = round(diamond_amount / G.perunit)
- if(clown_amount >= 2000)
- var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
- G.amount = round(clown_amount / G.perunit)
- if(adamantine_amount >= 2000)
- var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine(src.loc)
- G.amount = round(adamantine_amount / G.perunit)
- del(src)
- return 1
- else
- user << "\red You can't load the [src.name] while it's opened."
- return 1
- if (disabled)
- return
- if (!linked_console)
- user << "\The protolathe must be linked to an R&D console first!"
- return 1
- if (busy)
- user << "\red The protolathe is busy. Please wait for completion of previous operation."
- return 1
- if (!istype(O, /obj/item/stack/sheet))
- user << "\red You cannot insert this item into the protolathe!"
- return 1
- if (stat)
- return 1
- if(istype(O,/obj/item/stack/sheet))
- var/obj/item/stack/sheet/S = O
- if (TotalMaterials() + S.perunit > max_material_storage)
- user << "\red The protolathe's material bin is full. Please remove material before adding more."
- return 1
+/obj/machinery/r_n_d/protolathe/proc/TotalMaterials() //returns the total of all the stored materials. Makes code neater.
+ return m_amount + g_amount + gold_amount + silver_amount + plasma_amount + uranium_amount + diamond_amount + clown_amount
- var/obj/item/stack/sheet/stack = O
- var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
- if(amount < 0)//No negative numbers
- amount = 0
- if(amount == 0)
- return
- if(amount > stack.amount)
- amount = stack.amount
- if(max_material_storage - TotalMaterials() < (amount*stack.perunit))//Can't overfill
- amount = min(stack.amount, round((max_material_storage-TotalMaterials())/stack.perunit))
+/obj/machinery/r_n_d/protolathe/RefreshParts()
+ var/T = 0
+ for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
+ T += G.reagents.maximum_volume
+ var/datum/reagents/R = new/datum/reagents(T) //Holder for the reagents used as materials.
+ reagents = R
+ R.my_atom = src
+ T = 0
+ for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
+ T += M.rating
+ max_material_storage = T * 75000
- src.overlays += "protolathe_[stack.name]"
- sleep(10)
- src.overlays -= "protolathe_[stack.name]"
-
- icon_state = "protolathe"
- busy = 1
- use_power(max(1000, (3750*amount/10)))
- spawn(16)
- user << "\blue You add [amount] sheets to the [src.name]."
+/obj/machinery/r_n_d/protolathe/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if (shocked)
+ shock(user,50)
+ if (O.is_open_container())
+ return 1
+ if (istype(O, /obj/item/weapon/screwdriver))
+ if (!opened)
+ opened = 1
+ if(linked_console)
+ linked_console.linked_lathe = null
+ linked_console = null
+ icon_state = "protolathe_t"
+ user << "You open the maintenance hatch of [src]."
+ else
+ opened = 0
icon_state = "protolathe"
- if(istype(stack, /obj/item/stack/sheet/metal))
- m_amount += amount * 3750
- else if(istype(stack, /obj/item/stack/sheet/glass))
- g_amount += amount * 3750
- else if(istype(stack, /obj/item/stack/sheet/gold))
- gold_amount += amount * 2000
- else if(istype(stack, /obj/item/stack/sheet/silver))
- silver_amount += amount * 2000
- else if(istype(stack, /obj/item/stack/sheet/plasma))
- plasma_amount += amount * 2000
- else if(istype(stack, /obj/item/stack/sheet/uranium))
- uranium_amount += amount * 2000
- else if(istype(stack, /obj/item/stack/sheet/diamond))
- diamond_amount += amount * 2000
- else if(istype(stack, /obj/item/stack/sheet/clown))
- clown_amount += amount * 2000
- else if(istype(stack, /obj/item/stack/sheet/adamantine))
- adamantine_amount += amount * 2000
- stack.use(amount)
- busy = 0
- src.updateUsrDialog()
- return
\ No newline at end of file
+ user << "You close the maintenance hatch of [src]."
+ return
+ if (opened)
+ if(istype(O, /obj/item/weapon/crowbar))
+ playsound(src.loc, 'Crowbar.ogg', 50, 1)
+ var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc)
+ M.state = 2
+ M.icon_state = "box_1"
+ for(var/obj/I in component_parts)
+ if(istype(I, /obj/item/weapon/reagent_containers/glass/beaker))
+ reagents.trans_to(I, reagents.total_volume)
+ if(I.reliability != 100 && crit_fail)
+ I.crit_fail = 1
+ I.loc = src.loc
+ if(m_amount >= 3750)
+ var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)
+ G.amount = round(m_amount / G.perunit)
+ if(g_amount >= 3750)
+ var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
+ G.amount = round(g_amount / G.perunit)
+ if(plasma_amount >= 2000)
+ var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
+ G.amount = round(plasma_amount / G.perunit)
+ if(silver_amount >= 2000)
+ var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
+ G.amount = round(silver_amount / G.perunit)
+ if(gold_amount >= 2000)
+ var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
+ G.amount = round(gold_amount / G.perunit)
+ if(uranium_amount >= 2000)
+ var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
+ G.amount = round(uranium_amount / G.perunit)
+ if(diamond_amount >= 2000)
+ var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
+ G.amount = round(diamond_amount / G.perunit)
+ if(clown_amount >= 2000)
+ var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
+ G.amount = round(clown_amount / G.perunit)
+ if(adamantine_amount >= 2000)
+ var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine(src.loc)
+ G.amount = round(adamantine_amount / G.perunit)
+ del(src)
+ return 1
+ else
+ user << "\red You can't load the [src.name] while it's opened."
+ return 1
+ if (disabled)
+ return
+ if (!linked_console)
+ user << "\The protolathe must be linked to an R&D console first!"
+ return 1
+ if (busy)
+ user << "\red The protolathe is busy. Please wait for completion of previous operation."
+ return 1
+ if (!istype(O, /obj/item/stack/sheet))
+ user << "\red You cannot insert this item into the protolathe!"
+ return 1
+ if (stat)
+ return 1
+ if(istype(O,/obj/item/stack/sheet))
+ var/obj/item/stack/sheet/S = O
+ if (TotalMaterials() + S.perunit > max_material_storage)
+ user << "\red The protolathe's material bin is full. Please remove material before adding more."
+ return 1
+
+ var/obj/item/stack/sheet/stack = O
+ var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
+ if(amount < 0)//No negative numbers
+ amount = 0
+ if(amount == 0)
+ return
+ if(amount > stack.amount)
+ amount = stack.amount
+ if(max_material_storage - TotalMaterials() < (amount*stack.perunit))//Can't overfill
+ amount = min(stack.amount, round((max_material_storage-TotalMaterials())/stack.perunit))
+
+ src.overlays += "protolathe_[stack.name]"
+ sleep(10)
+ src.overlays -= "protolathe_[stack.name]"
+
+ icon_state = "protolathe"
+ busy = 1
+ use_power(max(1000, (3750*amount/10)))
+ spawn(16)
+ user << "\blue You add [amount] sheets to the [src.name]."
+ icon_state = "protolathe"
+ if(istype(stack, /obj/item/stack/sheet/metal))
+ m_amount += amount * 3750
+ else if(istype(stack, /obj/item/stack/sheet/glass))
+ g_amount += amount * 3750
+ else if(istype(stack, /obj/item/stack/sheet/gold))
+ gold_amount += amount * 2000
+ else if(istype(stack, /obj/item/stack/sheet/silver))
+ silver_amount += amount * 2000
+ else if(istype(stack, /obj/item/stack/sheet/plasma))
+ plasma_amount += amount * 2000
+ else if(istype(stack, /obj/item/stack/sheet/uranium))
+ uranium_amount += amount * 2000
+ else if(istype(stack, /obj/item/stack/sheet/diamond))
+ diamond_amount += amount * 2000
+ else if(istype(stack, /obj/item/stack/sheet/clown))
+ clown_amount += amount * 2000
+ else if(istype(stack, /obj/item/stack/sheet/adamantine))
+ adamantine_amount += amount * 2000
+ stack.use(amount)
+ busy = 0
+ src.updateUsrDialog()
+ return
\ No newline at end of file
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 679e4c34f19..f68a3304e83 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -48,840 +48,840 @@ won't update every console in existence) but it's more of a hassle to do. Also,
req_access = list(access_tox) //Data and setting manipulation requires scientist access.
- proc
- CallTechName(var/ID) //A simple helper proc to find the name of a tech with a given ID.
- var/datum/tech/check_tech
- var/return_name = null
- for(var/T in typesof(/datum/tech) - /datum/tech)
- check_tech = null
- check_tech = new T()
- if(check_tech.id == ID)
- return_name = check_tech.name
- del(check_tech)
- check_tech = null
- break
- return return_name
+/obj/machinery/computer/rdconsole/proc/CallTechName(var/ID) //A simple helper proc to find the name of a tech with a given ID.
+ var/datum/tech/check_tech
+ var/return_name = null
+ for(var/T in typesof(/datum/tech) - /datum/tech)
+ check_tech = null
+ check_tech = new T()
+ if(check_tech.id == ID)
+ return_name = check_tech.name
+ del(check_tech)
+ check_tech = null
+ break
- CallMaterialName(var/ID)
- var/datum/reagent/temp_reagent
- var/return_name = null
- if (copytext(ID, 1, 2) == "$")
- return_name = copytext(ID, 2)
- switch(return_name)
- if("metal")
- return_name = "Metal"
- if("glass")
- return_name = "Glass"
- if("gold")
- return_name = "Gold"
- if("silver")
- return_name = "Silver"
- if("plasma")
- return_name = "Solid Plasma"
- if("uranium")
- return_name = "Uranium"
- if("diamond")
- return_name = "Diamond"
- if("clown")
- return_name = "Bananium"
- else
- for(var/R in typesof(/datum/reagent) - /datum/reagent)
- temp_reagent = null
- temp_reagent = new R()
- if(temp_reagent.id == ID)
- return_name = temp_reagent.name
- del(temp_reagent)
- temp_reagent = null
- break
- return return_name
+ return return_name
- SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any).
- for(var/obj/machinery/r_n_d/D in oview(3,src))
- if(D.linked_console != null || D.disabled || D.opened)
- continue
- if(istype(D, /obj/machinery/r_n_d/destructive_analyzer))
- if(linked_destroy == null)
- linked_destroy = D
- D.linked_console = src
- else if(istype(D, /obj/machinery/r_n_d/protolathe))
- if(linked_lathe == null)
- linked_lathe = D
- D.linked_console = src
- else if(istype(D, /obj/machinery/r_n_d/circuit_imprinter))
- if(linked_imprinter == null)
- linked_imprinter = D
- D.linked_console = src
- return
-
- //Have it automatically push research to the centcomm server so wild griffins can't fuck up R&D's work --NEO
- griefProtection()
- for(var/obj/machinery/r_n_d/server/centcom/C in world)
- for(var/datum/tech/T in files.known_tech)
- C.files.AddTech2Known(T)
- for(var/datum/design/D in files.known_designs)
- C.files.AddDesign2Known(D)
- C.files.RefreshResearch()
-
-
- New()
- ..()
- files = new /datum/research(src) //Setup the research data holder.
- if(!id)
- for(var/obj/machinery/r_n_d/server/centcom/S in world)
- S.initialize()
+/obj/machinery/computer/rdconsole/proc/CallMaterialName(var/ID)
+ var/datum/reagent/temp_reagent
+ var/return_name = null
+ if (copytext(ID, 1, 2) == "$")
+ return_name = copytext(ID, 2)
+ switch(return_name)
+ if("metal")
+ return_name = "Metal"
+ if("glass")
+ return_name = "Glass"
+ if("gold")
+ return_name = "Gold"
+ if("silver")
+ return_name = "Silver"
+ if("plasma")
+ return_name = "Solid Plasma"
+ if("uranium")
+ return_name = "Uranium"
+ if("diamond")
+ return_name = "Diamond"
+ if("clown")
+ return_name = "Bananium"
+ else
+ for(var/R in typesof(/datum/reagent) - /datum/reagent)
+ temp_reagent = null
+ temp_reagent = new R()
+ if(temp_reagent.id == ID)
+ return_name = temp_reagent.name
+ del(temp_reagent)
+ temp_reagent = null
break
+ return return_name
- initialize()
- SyncRDevices()
+/obj/machinery/computer/rdconsole/proc/SyncRDevices() //Makes sure it is properly sync'ed up with the devices attached to it (if any).
+ for(var/obj/machinery/r_n_d/D in oview(3,src))
+ if(D.linked_console != null || D.disabled || D.opened)
+ continue
+ if(istype(D, /obj/machinery/r_n_d/destructive_analyzer))
+ if(linked_destroy == null)
+ linked_destroy = D
+ D.linked_console = src
+ else if(istype(D, /obj/machinery/r_n_d/protolathe))
+ if(linked_lathe == null)
+ linked_lathe = D
+ D.linked_console = src
+ else if(istype(D, /obj/machinery/r_n_d/circuit_imprinter))
+ if(linked_imprinter == null)
+ linked_imprinter = D
+ D.linked_console = src
+ return
+
+//Have it automatically push research to the centcomm server so wild griffins can't fuck up R&D's work --NEO
+/obj/machinery/computer/rdconsole/proc/griefProtection()
+ for(var/obj/machinery/r_n_d/server/centcom/C in world)
+ for(var/datum/tech/T in files.known_tech)
+ C.files.AddTech2Known(T)
+ for(var/datum/design/D in files.known_designs)
+ C.files.AddDesign2Known(D)
+ C.files.RefreshResearch()
+
+
+/obj/machinery/computer/rdconsole/New()
+ ..()
+ files = new /datum/research(src) //Setup the research data holder.
+ if(!id)
+ for(var/obj/machinery/r_n_d/server/centcom/S in world)
+ S.initialize()
+ break
+
+/obj/machinery/computer/rdconsole/initialize()
+ SyncRDevices()
/* Instead of calling this every tick, it is only being called when needed
- process()
- griefProtection()
+/obj/machinery/computer/rdconsole/process()
+ griefProtection()
*/
- attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
- //The construction/deconstruction of the console code.
- if(istype(D, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'Screwdriver.ogg', 50, 1)
- if(do_after(user, 20))
- if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
- var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
- new /obj/item/weapon/shard( src.loc )
- var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A )
- for (var/obj/C in src)
- C.loc = src.loc
- A.circuit = M
- A.state = 3
- A.icon_state = "3"
- A.anchored = 1
- del(src)
- else
- user << "\blue You disconnect the monitor."
- var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
- var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A )
- for (var/obj/C in src)
- C.loc = src.loc
- A.circuit = M
- A.state = 4
- A.icon_state = "4"
- A.anchored = 1
- del(src)
- //Loading a disk into it.
- else if(istype(D, /obj/item/weapon/disk))
- if(t_disk || d_disk)
- user << "A disk is already loaded into the machine."
- return
-
- if(istype(D, /obj/item/weapon/disk/tech_disk)) t_disk = D
- else if (istype(D, /obj/item/weapon/disk/design_disk)) d_disk = D
+/obj/machinery/computer/rdconsole/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
+ //The construction/deconstruction of the console code.
+ if(istype(D, /obj/item/weapon/screwdriver))
+ playsound(src.loc, 'Screwdriver.ogg', 50, 1)
+ if(do_after(user, 20))
+ if (src.stat & BROKEN)
+ user << "\blue The broken glass falls out."
+ var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
+ new /obj/item/weapon/shard( src.loc )
+ var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A )
+ for (var/obj/C in src)
+ C.loc = src.loc
+ A.circuit = M
+ A.state = 3
+ A.icon_state = "3"
+ A.anchored = 1
+ del(src)
else
- user << "\red Machine cannot accept disks in that format."
- return
- user.drop_item()
- D.loc = src
- user << "\blue You add the disk to the machine!"
- else if(istype(D, /obj/item/weapon/card/emag) && !emagged)
- playsound(src.loc, 'sparks4.ogg', 75, 1)
- emagged = 1
- user << "\blue You you disable the security protocols"
- src.updateUsrDialog()
- return
-
- Topic(href, href_list)
- if(..())
+ user << "\blue You disconnect the monitor."
+ var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
+ var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A )
+ for (var/obj/C in src)
+ C.loc = src.loc
+ A.circuit = M
+ A.state = 4
+ A.icon_state = "4"
+ A.anchored = 1
+ del(src)
+ //Loading a disk into it.
+ else if(istype(D, /obj/item/weapon/disk))
+ if(t_disk || d_disk)
+ user << "A disk is already loaded into the machine."
return
- add_fingerprint(usr)
+ if(istype(D, /obj/item/weapon/disk/tech_disk)) t_disk = D
+ else if (istype(D, /obj/item/weapon/disk/design_disk)) d_disk = D
+ else
+ user << "\red Machine cannot accept disks in that format."
+ return
+ user.drop_item()
+ D.loc = src
+ user << "\blue You add the disk to the machine!"
+ else if(istype(D, /obj/item/weapon/card/emag) && !emagged)
+ playsound(src.loc, 'sparks4.ogg', 75, 1)
+ emagged = 1
+ user << "\blue You you disable the security protocols"
+ src.updateUsrDialog()
+ return
- usr.machine = src
- if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code.
- var/temp_screen = text2num(href_list["menu"])
- if(temp_screen <= 1.1 || (3 <= temp_screen && 4.9 >= temp_screen) || src.allowed(usr) || emagged) //Unless you are making something, you need access.
- screen = temp_screen
- else
- usr << "Unauthorized Access."
+/obj/machinery/computer/rdconsole/Topic(href, href_list)
+ if(..())
+ return
- else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk.
- screen = 0.0
- spawn(50)
- screen = 1.2
- files.AddTech2Known(t_disk.stored)
- updateUsrDialog()
- griefProtection() //Update centcomm too
+ add_fingerprint(usr)
- else if(href_list["clear_tech"]) //Erase data on the technology disk.
- t_disk.stored = null
+ usr.machine = src
+ if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code.
+ var/temp_screen = text2num(href_list["menu"])
+ if(temp_screen <= 1.1 || (3 <= temp_screen && 4.9 >= temp_screen) || src.allowed(usr) || emagged) //Unless you are making something, you need access.
+ screen = temp_screen
+ else
+ usr << "Unauthorized Access."
- else if(href_list["eject_tech"]) //Eject the technology disk.
- t_disk:loc = src.loc
- t_disk = null
- screen = 1.0
-
- else if(href_list["copy_tech"]) //Copys some technology data from the research holder to the disk.
- for(var/datum/tech/T in files.known_tech)
- if(href_list["copy_tech_ID"] == T.id)
- t_disk.stored = T
- break
+ else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk.
+ screen = 0.0
+ spawn(50)
screen = 1.2
+ files.AddTech2Known(t_disk.stored)
+ updateUsrDialog()
+ griefProtection() //Update centcomm too
- else if(href_list["updt_design"]) //Updates the research holder with design data from the design disk.
- screen = 0.0
- spawn(50)
- screen = 1.4
- files.AddDesign2Known(d_disk.blueprint)
- updateUsrDialog()
- griefProtection() //Update centcomm too
+ else if(href_list["clear_tech"]) //Erase data on the technology disk.
+ t_disk.stored = null
- else if(href_list["clear_design"]) //Erases data on the design disk.
- d_disk.blueprint = null
+ else if(href_list["eject_tech"]) //Eject the technology disk.
+ t_disk:loc = src.loc
+ t_disk = null
+ screen = 1.0
- else if(href_list["eject_design"]) //Eject the design disk.
- d_disk:loc = src.loc
- d_disk = null
- screen = 1.0
+ else if(href_list["copy_tech"]) //Copys some technology data from the research holder to the disk.
+ for(var/datum/tech/T in files.known_tech)
+ if(href_list["copy_tech_ID"] == T.id)
+ t_disk.stored = T
+ break
+ screen = 1.2
- else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk.
- for(var/datum/design/D in files.known_designs)
- if(href_list["copy_design_ID"] == D.id)
- d_disk.blueprint = D
- break
+ else if(href_list["updt_design"]) //Updates the research holder with design data from the design disk.
+ screen = 0.0
+ spawn(50)
screen = 1.4
+ files.AddDesign2Known(d_disk.blueprint)
+ updateUsrDialog()
+ griefProtection() //Update centcomm too
- else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer.
- if(linked_destroy)
- if(linked_destroy.busy)
- usr << "\red The destructive analyzer is busy at the moment."
+ else if(href_list["clear_design"]) //Erases data on the design disk.
+ d_disk.blueprint = null
- else if(linked_destroy.loaded_item)
- linked_destroy.loaded_item.loc = linked_destroy.loc
- linked_destroy.loaded_item = null
- linked_destroy.icon_state = "d_analyzer"
- screen = 2.1
+ else if(href_list["eject_design"]) //Eject the design disk.
+ d_disk:loc = src.loc
+ d_disk = null
+ screen = 1.0
- else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder.
- if(linked_destroy)
- if(linked_destroy.busy)
- usr << "\red The destructive analyzer is busy at the moment."
- else
- var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel")
- if(choice == "Cancel") return
- linked_destroy.busy = 1
- screen = 0.1
- updateUsrDialog()
- flick("d_analyzer_process", linked_destroy)
- spawn(24)
- if(linked_destroy)
- linked_destroy.busy = 0
- if(!linked_destroy.hacked)
- if(!linked_destroy.loaded_item)
- usr <<"\red The destructive analyzer appears to be empty."
- screen = 1.0
- return
- if(linked_destroy.loaded_item.reliability >= 90)
- var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
- for(var/T in temp_tech)
- files.UpdateTech(T, temp_tech[T])
- if(linked_destroy.loaded_item.reliability < 100 && linked_destroy.loaded_item.crit_fail)
- files.UpdateDesign(linked_destroy.loaded_item.type)
- if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
- linked_lathe.m_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*linked_destroy.decon_mod))
- linked_lathe.g_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*linked_destroy.decon_mod))
- linked_destroy.loaded_item = null
- for(var/obj/I in linked_destroy.contents)
- for(var/mob/M in I.contents)
- M.death()
- del(I)
- use_power(250)
- linked_destroy.icon_state = "d_analyzer"
- screen = 1.0
- updateUsrDialog()
+ else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk.
+ for(var/datum/design/D in files.known_designs)
+ if(href_list["copy_design_ID"] == D.id)
+ d_disk.blueprint = D
+ break
+ screen = 1.4
- else if(href_list["lock"]) //Lock the console from use by anyone without tox access.
- if(src.allowed(usr))
- screen = text2num(href_list["lock"])
+ else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer.
+ if(linked_destroy)
+ if(linked_destroy.busy)
+ usr << "\red The destructive analyzer is busy at the moment."
+
+ else if(linked_destroy.loaded_item)
+ linked_destroy.loaded_item.loc = linked_destroy.loc
+ linked_destroy.loaded_item = null
+ linked_destroy.icon_state = "d_analyzer"
+ screen = 2.1
+
+ else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder.
+ if(linked_destroy)
+ if(linked_destroy.busy)
+ usr << "\red The destructive analyzer is busy at the moment."
else
- usr << "Unauthorized Access."
-
- else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected.
- screen = 0.0
- if(!sync)
- usr << "\red You must connect to the network first!"
- else
- griefProtection() //Putting this here because I dont trust the sync process
- spawn(30)
- if(src)
- for(var/obj/machinery/r_n_d/server/S in world)
- var/server_processed = 0
- if(S.disabled)
- continue
- if((id in S.id_with_upload) || istype(S, /obj/machinery/r_n_d/server/centcom))
- for(var/datum/tech/T in files.known_tech)
- S.files.AddTech2Known(T)
- for(var/datum/design/D in files.known_designs)
- S.files.AddDesign2Known(D)
- S.files.RefreshResearch()
- server_processed = 1
- if(((id in S.id_with_download) && !istype(S, /obj/machinery/r_n_d/server/centcom)) || S.hacked)
- for(var/datum/tech/T in S.files.known_tech)
- files.AddTech2Known(T)
- for(var/datum/design/D in S.files.known_designs)
- files.AddDesign2Known(D)
- files.RefreshResearch()
- server_processed = 1
- if(!istype(S, /obj/machinery/r_n_d/server/centcom) && server_processed)
- S.produce_heat(100)
- screen = 1.6
+ var/choice = input("Proceeding will destroy loaded item.") in list("Proceed", "Cancel")
+ if(choice == "Cancel") return
+ linked_destroy.busy = 1
+ screen = 0.1
+ updateUsrDialog()
+ flick("d_analyzer_process", linked_destroy)
+ spawn(24)
+ if(linked_destroy)
+ linked_destroy.busy = 0
+ if(!linked_destroy.hacked)
+ if(!linked_destroy.loaded_item)
+ usr <<"\red The destructive analyzer appears to be empty."
+ screen = 1.0
+ return
+ if(linked_destroy.loaded_item.reliability >= 90)
+ var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
+ for(var/T in temp_tech)
+ files.UpdateTech(T, temp_tech[T])
+ if(linked_destroy.loaded_item.reliability < 100 && linked_destroy.loaded_item.crit_fail)
+ files.UpdateDesign(linked_destroy.loaded_item.type)
+ if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
+ linked_lathe.m_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*linked_destroy.decon_mod))
+ linked_lathe.g_amount += min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*linked_destroy.decon_mod))
+ linked_destroy.loaded_item = null
+ for(var/obj/I in linked_destroy.contents)
+ for(var/mob/M in I.contents)
+ M.death()
+ del(I)
+ use_power(250)
+ linked_destroy.icon_state = "d_analyzer"
+ screen = 1.0
updateUsrDialog()
- else if(href_list["togglesync"]) //Prevents the console from being synced by other consoles. Can still send data.
- sync = !sync
+ else if(href_list["lock"]) //Lock the console from use by anyone without tox access.
+ if(src.allowed(usr))
+ screen = text2num(href_list["lock"])
+ else
+ usr << "Unauthorized Access."
- else if(href_list["build"]) //Causes the Protolathe to build something.
- if(linked_lathe)
- var/datum/design/being_built = null
- for(var/datum/design/D in files.known_designs)
- if(D.id == href_list["build"])
- being_built = D
- break
- var/power = 2000
- for(var/M in being_built.materials)
- power += round(being_built.materials[M] / 5)
- power = max(2000, power)
- screen = 0.3
- linked_lathe.busy = 1
- flick("protolathe_n",linked_lathe)
- var/key = usr.key //so we don't lose the info during the spawn delay
- spawn(16)
- use_power(power)
- spawn(16)
- for(var/M in being_built.materials)
- switch(M)
- if("$metal")
- linked_lathe.m_amount = max(0, (linked_lathe.m_amount-being_built.materials[M]))
- if("$glass")
- linked_lathe.g_amount = max(0, (linked_lathe.g_amount-being_built.materials[M]))
- if("$gold")
- linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-being_built.materials[M]))
- if("$silver")
- linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-being_built.materials[M]))
- if("$plasma")
- linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-being_built.materials[M]))
- if("$uranium")
- linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
- if("$diamond")
- linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
- if("$clown")
- linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
- else
- linked_lathe.reagents.remove_reagent(M, being_built.materials[M])
-
- if(being_built.build_path)
- var/obj/new_item = new being_built.build_path(src)
- if( new_item.type == /obj/item/weapon/storage/backpack/holding )
- new_item.investigate_log("built by [key]","singulo")
- new_item.reliability = being_built.reliability
- if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0)
- if(being_built.locked)
- var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc)
- new_item.loc = L
- L.name += " ([new_item.name])"
- else
- new_item.loc = linked_lathe.loc
- linked_lathe.busy = 0
- screen = 3.1
- updateUsrDialog()
-
- else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
- if(linked_imprinter)
- var/datum/design/being_built = null
- for(var/datum/design/D in files.known_designs)
- if(D.id == href_list["imprint"])
- being_built = D
- break
- var/power = 2000
- for(var/M in being_built.materials)
- power += round(being_built.materials[M] / 5)
- power = max(2000, power)
- screen = 0.4
- linked_imprinter.busy = 1
- flick("circuit_imprinter_ani",linked_imprinter)
- spawn(16)
- use_power(power)
- for(var/M in being_built.materials)
- switch(M)
- if("$glass")
- linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]))
- if("$gold")
- linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]))
- if("$diamond")
- linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]))
- else
- linked_imprinter.reagents.remove_reagent(M, being_built.materials[M])
- var/obj/new_item = new being_built.build_path(src)
- new_item.reliability = being_built.reliability
- if(linked_imprinter.hacked) being_built.reliability = max((reliability / 2), 0)
- new_item.loc = linked_imprinter.loc
- linked_imprinter.busy = 0
- screen = 4.1
- updateUsrDialog()
-
- else if(href_list["disposeI"] && linked_imprinter) //Causes the circuit imprinter to dispose of a single reagent (all of it)
- linked_imprinter.reagents.del_reagent(href_list["dispose"])
-
- else if(href_list["disposeallI"] && linked_imprinter) //Causes the circuit imprinter to dispose of all it's reagents.
- linked_imprinter.reagents.clear_reagents()
-
- else if(href_list["disposeP"] && linked_lathe) //Causes the protolathe to dispose of a single reagent (all of it)
- linked_lathe.reagents.del_reagent(href_list["dispose"])
-
- else if(href_list["disposeallP"] && linked_lathe) //Causes the protolathe to dispose of all it's reagents.
- linked_lathe.reagents.clear_reagents()
-
- else if(href_list["lathe_ejectsheet"] && linked_lathe) //Causes the protolathe to eject a sheet of material
- var/desired_num_sheets = text2num(href_list["lathe_ejectsheet_amt"])
- var/res_amount, type
- switch(href_list["lathe_ejectsheet"])
- if("metal")
- type = /obj/item/stack/sheet/metal
- res_amount = "m_amount"
- if("glass")
- type = /obj/item/stack/sheet/glass
- res_amount = "g_amount"
- if("gold")
- type = /obj/item/stack/sheet/gold
- res_amount = "gold_amount"
- if("silver")
- type = /obj/item/stack/sheet/silver
- res_amount = "silver_amount"
- if("plasma")
- type = /obj/item/stack/sheet/plasma
- res_amount = "plasma_amount"
- if("uranium")
- type = /obj/item/stack/sheet/uranium
- res_amount = "uranium_amount"
- if("diamond")
- type = /obj/item/stack/sheet/diamond
- res_amount = "diamond_amount"
- if("clown")
- type = /obj/item/stack/sheet/clown
- res_amount = "clown_amount"
- if(ispath(type) && hasvar(linked_lathe, res_amount))
- var/obj/item/stack/sheet/sheet = new type(linked_lathe.loc)
- var/available_num_sheets = round(linked_lathe.vars[res_amount]/sheet.perunit)
- if(available_num_sheets>0)
- sheet.amount = min(available_num_sheets, desired_num_sheets)
- linked_lathe.vars[res_amount] = max(0, (linked_lathe.vars[res_amount]-sheet.amount * sheet.perunit))
- else
- del sheet
- else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the protolathe to eject a sheet of material
- var/desired_num_sheets = text2num(href_list["imprinter_ejectsheet_amt"])
- var/res_amount, type
- switch(href_list["imprinter_ejectsheet"])
- if("glass")
- type = /obj/item/stack/sheet/glass
- res_amount = "g_amount"
- if("gold")
- type = /obj/item/stack/sheet/gold
- res_amount = "gold_amount"
- if("diamond")
- type = /obj/item/stack/sheet/diamond
- res_amount = "diamond_amount"
- if(ispath(type) && hasvar(linked_imprinter, res_amount))
- var/obj/item/stack/sheet/sheet = new type(linked_imprinter.loc)
- var/available_num_sheets = round(linked_imprinter.vars[res_amount]/sheet.perunit)
- if(available_num_sheets>0)
- sheet.amount = min(available_num_sheets, desired_num_sheets)
- linked_imprinter.vars[res_amount] = max(0, (linked_imprinter.vars[res_amount]-sheet.amount * sheet.perunit))
- else
- del sheet
-
- else if(href_list["find_device"]) //The R&D console looks for devices nearby to link up with.
- screen = 0.0
- spawn(20)
- SyncRDevices()
- screen = 1.7
- updateUsrDialog()
-
- else if(href_list["disconnect"]) //The R&D console disconnects with a specific device.
- switch(href_list["disconnect"])
- if("destroy")
- linked_destroy.linked_console = null
- linked_destroy = null
- if("lathe")
- linked_lathe.linked_console = null
- linked_lathe = null
- if("imprinter")
- linked_imprinter.linked_console = null
- linked_imprinter = null
-
- else if(href_list["reset"]) //Reset the R&D console's database.
- griefProtection()
- var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel")
- if(choice == "Continue")
- screen = 0.0
- del(files)
- files = new /datum/research(src)
- spawn(20)
+ else if(href_list["sync"]) //Sync the research holder with all the R&D consoles in the game that aren't sync protected.
+ screen = 0.0
+ if(!sync)
+ usr << "\red You must connect to the network first!"
+ else
+ griefProtection() //Putting this here because I dont trust the sync process
+ spawn(30)
+ if(src)
+ for(var/obj/machinery/r_n_d/server/S in world)
+ var/server_processed = 0
+ if(S.disabled)
+ continue
+ if((id in S.id_with_upload) || istype(S, /obj/machinery/r_n_d/server/centcom))
+ for(var/datum/tech/T in files.known_tech)
+ S.files.AddTech2Known(T)
+ for(var/datum/design/D in files.known_designs)
+ S.files.AddDesign2Known(D)
+ S.files.RefreshResearch()
+ server_processed = 1
+ if(((id in S.id_with_download) && !istype(S, /obj/machinery/r_n_d/server/centcom)) || S.hacked)
+ for(var/datum/tech/T in S.files.known_tech)
+ files.AddTech2Known(T)
+ for(var/datum/design/D in S.files.known_designs)
+ files.AddDesign2Known(D)
+ files.RefreshResearch()
+ server_processed = 1
+ if(!istype(S, /obj/machinery/r_n_d/server/centcom) && server_processed)
+ S.produce_heat(100)
screen = 1.6
updateUsrDialog()
- updateUsrDialog()
+
+ else if(href_list["togglesync"]) //Prevents the console from being synced by other consoles. Can still send data.
+ sync = !sync
+
+ else if(href_list["build"]) //Causes the Protolathe to build something.
+ if(linked_lathe)
+ var/datum/design/being_built = null
+ for(var/datum/design/D in files.known_designs)
+ if(D.id == href_list["build"])
+ being_built = D
+ break
+ var/power = 2000
+ for(var/M in being_built.materials)
+ power += round(being_built.materials[M] / 5)
+ power = max(2000, power)
+ screen = 0.3
+ linked_lathe.busy = 1
+ flick("protolathe_n",linked_lathe)
+ var/key = usr.key //so we don't lose the info during the spawn delay
+ spawn(16)
+ use_power(power)
+ spawn(16)
+ for(var/M in being_built.materials)
+ switch(M)
+ if("$metal")
+ linked_lathe.m_amount = max(0, (linked_lathe.m_amount-being_built.materials[M]))
+ if("$glass")
+ linked_lathe.g_amount = max(0, (linked_lathe.g_amount-being_built.materials[M]))
+ if("$gold")
+ linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-being_built.materials[M]))
+ if("$silver")
+ linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-being_built.materials[M]))
+ if("$plasma")
+ linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-being_built.materials[M]))
+ if("$uranium")
+ linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
+ if("$diamond")
+ linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
+ if("$clown")
+ linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
+ else
+ linked_lathe.reagents.remove_reagent(M, being_built.materials[M])
+
+ if(being_built.build_path)
+ var/obj/new_item = new being_built.build_path(src)
+ if( new_item.type == /obj/item/weapon/storage/backpack/holding )
+ new_item.investigate_log("built by [key]","singulo")
+ new_item.reliability = being_built.reliability
+ if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0)
+ if(being_built.locked)
+ var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc)
+ new_item.loc = L
+ L.name += " ([new_item.name])"
+ else
+ new_item.loc = linked_lathe.loc
+ linked_lathe.busy = 0
+ screen = 3.1
+ updateUsrDialog()
+
+ else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
+ if(linked_imprinter)
+ var/datum/design/being_built = null
+ for(var/datum/design/D in files.known_designs)
+ if(D.id == href_list["imprint"])
+ being_built = D
+ break
+ var/power = 2000
+ for(var/M in being_built.materials)
+ power += round(being_built.materials[M] / 5)
+ power = max(2000, power)
+ screen = 0.4
+ linked_imprinter.busy = 1
+ flick("circuit_imprinter_ani",linked_imprinter)
+ spawn(16)
+ use_power(power)
+ for(var/M in being_built.materials)
+ switch(M)
+ if("$glass")
+ linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]))
+ if("$gold")
+ linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]))
+ if("$diamond")
+ linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]))
+ else
+ linked_imprinter.reagents.remove_reagent(M, being_built.materials[M])
+ var/obj/new_item = new being_built.build_path(src)
+ new_item.reliability = being_built.reliability
+ if(linked_imprinter.hacked) being_built.reliability = max((reliability / 2), 0)
+ new_item.loc = linked_imprinter.loc
+ linked_imprinter.busy = 0
+ screen = 4.1
+ updateUsrDialog()
+
+ else if(href_list["disposeI"] && linked_imprinter) //Causes the circuit imprinter to dispose of a single reagent (all of it)
+ linked_imprinter.reagents.del_reagent(href_list["dispose"])
+
+ else if(href_list["disposeallI"] && linked_imprinter) //Causes the circuit imprinter to dispose of all it's reagents.
+ linked_imprinter.reagents.clear_reagents()
+
+ else if(href_list["disposeP"] && linked_lathe) //Causes the protolathe to dispose of a single reagent (all of it)
+ linked_lathe.reagents.del_reagent(href_list["dispose"])
+
+ else if(href_list["disposeallP"] && linked_lathe) //Causes the protolathe to dispose of all it's reagents.
+ linked_lathe.reagents.clear_reagents()
+
+ else if(href_list["lathe_ejectsheet"] && linked_lathe) //Causes the protolathe to eject a sheet of material
+ var/desired_num_sheets = text2num(href_list["lathe_ejectsheet_amt"])
+ var/res_amount, type
+ switch(href_list["lathe_ejectsheet"])
+ if("metal")
+ type = /obj/item/stack/sheet/metal
+ res_amount = "m_amount"
+ if("glass")
+ type = /obj/item/stack/sheet/glass
+ res_amount = "g_amount"
+ if("gold")
+ type = /obj/item/stack/sheet/gold
+ res_amount = "gold_amount"
+ if("silver")
+ type = /obj/item/stack/sheet/silver
+ res_amount = "silver_amount"
+ if("plasma")
+ type = /obj/item/stack/sheet/plasma
+ res_amount = "plasma_amount"
+ if("uranium")
+ type = /obj/item/stack/sheet/uranium
+ res_amount = "uranium_amount"
+ if("diamond")
+ type = /obj/item/stack/sheet/diamond
+ res_amount = "diamond_amount"
+ if("clown")
+ type = /obj/item/stack/sheet/clown
+ res_amount = "clown_amount"
+ if(ispath(type) && hasvar(linked_lathe, res_amount))
+ var/obj/item/stack/sheet/sheet = new type(linked_lathe.loc)
+ var/available_num_sheets = round(linked_lathe.vars[res_amount]/sheet.perunit)
+ if(available_num_sheets>0)
+ sheet.amount = min(available_num_sheets, desired_num_sheets)
+ linked_lathe.vars[res_amount] = max(0, (linked_lathe.vars[res_amount]-sheet.amount * sheet.perunit))
+ else
+ del sheet
+ else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the protolathe to eject a sheet of material
+ var/desired_num_sheets = text2num(href_list["imprinter_ejectsheet_amt"])
+ var/res_amount, type
+ switch(href_list["imprinter_ejectsheet"])
+ if("glass")
+ type = /obj/item/stack/sheet/glass
+ res_amount = "g_amount"
+ if("gold")
+ type = /obj/item/stack/sheet/gold
+ res_amount = "gold_amount"
+ if("diamond")
+ type = /obj/item/stack/sheet/diamond
+ res_amount = "diamond_amount"
+ if(ispath(type) && hasvar(linked_imprinter, res_amount))
+ var/obj/item/stack/sheet/sheet = new type(linked_imprinter.loc)
+ var/available_num_sheets = round(linked_imprinter.vars[res_amount]/sheet.perunit)
+ if(available_num_sheets>0)
+ sheet.amount = min(available_num_sheets, desired_num_sheets)
+ linked_imprinter.vars[res_amount] = max(0, (linked_imprinter.vars[res_amount]-sheet.amount * sheet.perunit))
+ else
+ del sheet
+
+ else if(href_list["find_device"]) //The R&D console looks for devices nearby to link up with.
+ screen = 0.0
+ spawn(20)
+ SyncRDevices()
+ screen = 1.7
+ updateUsrDialog()
+
+ else if(href_list["disconnect"]) //The R&D console disconnects with a specific device.
+ switch(href_list["disconnect"])
+ if("destroy")
+ linked_destroy.linked_console = null
+ linked_destroy = null
+ if("lathe")
+ linked_lathe.linked_console = null
+ linked_lathe = null
+ if("imprinter")
+ linked_imprinter.linked_console = null
+ linked_imprinter = null
+
+ else if(href_list["reset"]) //Reset the R&D console's database.
+ griefProtection()
+ var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel")
+ if(choice == "Continue")
+ screen = 0.0
+ del(files)
+ files = new /datum/research(src)
+ spawn(20)
+ screen = 1.6
+ updateUsrDialog()
+ updateUsrDialog()
+ return
+
+/obj/machinery/computer/rdconsole/attack_hand(mob/user as mob)
+ if(stat & (BROKEN|NOPOWER))
return
- attack_hand(mob/user as mob)
- if(stat & (BROKEN|NOPOWER))
+ if(ishuman(user))
+ if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
+ call(/obj/item/clothing/gloves/space_ninja/proc/drain)("RESEARCH",src,user:wear_suit)
return
- if(ishuman(user))
- if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
- call(/obj/item/clothing/gloves/space_ninja/proc/drain)("RESEARCH",src,user:wear_suit)
- return
+ user.machine = src
+ var/dat = ""
+ files.RefreshResearch()
+ switch(screen) //A quick check to make sure you get the right screen when a device is disconnected.
+ if(2 to 2.9)
+ if(linked_destroy == null)
+ screen = 2.0
+ else if(linked_destroy.loaded_item == null)
+ screen = 2.1
+ else
+ screen = 2.2
+ if(3 to 3.9)
+ if(linked_lathe == null)
+ screen = 3.0
+ if(4 to 4.9)
+ if(linked_imprinter == null)
+ screen = 4.0
- user.machine = src
- var/dat = ""
- files.RefreshResearch()
- switch(screen) //A quick check to make sure you get the right screen when a device is disconnected.
- if(2 to 2.9)
- if(linked_destroy == null)
- screen = 2.0
- else if(linked_destroy.loaded_item == null)
- screen = 2.1
+ switch(screen)
+
+ //////////////////////R&D CONSOLE SCREENS//////////////////
+ if(0.0) dat += "Updating Database...."
+
+ if(0.1) dat += "Processing and Updating Database..."
+
+ if(0.2)
+ dat += "SYSTEM LOCKED
"
+ dat += "Unlock"
+
+ if(0.3)
+ dat += "Constructing Prototype. Please Wait..."
+
+ if(0.4)
+ dat += "Imprinting Circuit. Please Wait..."
+
+ if(1.0) //Main Menu
+ dat += "Main Menu:
"
+ dat += "Current Research Levels
"
+ if(t_disk) dat += "Disk Operations
"
+ else if(d_disk) dat += "Disk Operations
"
+ else dat += "(Please Insert Disk)
"
+ if(linked_destroy != null) dat += "Destructive Analyzer Menu
"
+ if(linked_lathe != null) dat += "Protolathe Construction Menu
"
+ if(linked_imprinter != null) dat += "Circuit Construction Menu
"
+ dat += "Settings"
+
+ if(1.1) //Research viewer
+ dat += "Current Research Levels:
"
+ for(var/datum/tech/T in files.known_tech)
+ dat += "[T.name]
"
+ dat += "* Level: [T.level]
"
+ dat += "* Summary: [T.desc]