mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 17:14:47 +01:00
R&D machinery refactor (#18295)
* RnD machinery refactor * Small changes * Removed designs selling
This commit is contained in:
@@ -17,27 +17,3 @@
|
||||
var/obj/item/weapon/disk/tech_disk/D = O
|
||||
var/datum/tech/tech = D.stored
|
||||
techLevels[tech.id] = tech.level
|
||||
|
||||
|
||||
|
||||
// Sell designs
|
||||
/datum/export/design
|
||||
cost = 2500
|
||||
unit_name = "design data disk"
|
||||
export_types = list(/obj/item/weapon/disk/design_disk)
|
||||
var/list/researchDesigns = list()
|
||||
|
||||
/datum/export/design/get_cost(obj/O)
|
||||
var/obj/item/weapon/disk/design_disk/disk = O
|
||||
if(!disk.blueprint)
|
||||
return 0
|
||||
var/datum/design/design = disk.blueprint
|
||||
if(design.id in researchDesigns)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/datum/export/design/sell_object(obj/O)
|
||||
..()
|
||||
var/obj/item/weapon/disk/design_disk/disk = O
|
||||
var/datum/design/design = disk.blueprint
|
||||
researchDesigns += design.id
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/New()
|
||||
..()
|
||||
bananium = new/datum/material_container(src,list(MAT_BANANIUM=1),200000)
|
||||
bananium = new/datum/material_container(src,list(MAT_BANANIUM),200000)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action()
|
||||
if(on)
|
||||
|
||||
@@ -10,12 +10,8 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
icon_state = "circuit_imprinter"
|
||||
flags = OPENCONTAINER
|
||||
|
||||
var/g_amount = 0
|
||||
var/gold_amount = 0
|
||||
var/diamond_amount = 0
|
||||
var/max_material_amount = 75000
|
||||
var/datum/material_container/materials
|
||||
var/efficiency_coeff
|
||||
reagents = new(0)
|
||||
|
||||
var/list/categories = list(
|
||||
"AI Modules",
|
||||
@@ -32,9 +28,14 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/New()
|
||||
..()
|
||||
materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND))
|
||||
create_reagents(0)
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null)
|
||||
B.apply_default_parts(src)
|
||||
reagents.my_atom = src
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/Destroy()
|
||||
qdel(materials)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/circuit_imprinter
|
||||
name = "circuit board (Circuit Imprinter)"
|
||||
@@ -52,7 +53,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
G.reagents.trans_to(src, G.reagents.total_volume)
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
|
||||
T += M.rating
|
||||
max_material_amount = T * 75000
|
||||
materials.max_amount = T * 75000
|
||||
T = 0
|
||||
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
|
||||
T += M.rating
|
||||
@@ -62,72 +63,55 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
if (prob(50))
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material
|
||||
var/list/all_materials = being_built.reagents + being_built.materials
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, M)
|
||||
switch(M)
|
||||
if(MAT_GLASS)
|
||||
return (g_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
|
||||
if(MAT_GOLD)
|
||||
return (gold_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
|
||||
if(MAT_DIAMOND)
|
||||
return (diamond_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
|
||||
else
|
||||
return (reagents.has_reagent(M, (being_built.materials[M]/efficiency_coeff)) != 0)
|
||||
var/A = materials.amount(M)
|
||||
if(!A)
|
||||
A = reagents.get_reagent_amount(M)
|
||||
|
||||
return round(A / max(1, (all_materials[M]/efficiency_coeff)))
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/proc/TotalMaterials()
|
||||
return g_amount + gold_amount + diamond_amount
|
||||
|
||||
//we drop the minerals in the machine onto the ground when deconstructed.
|
||||
//we eject the materials upon deconstruction.
|
||||
/obj/machinery/r_n_d/circuit_imprinter/deconstruction()
|
||||
for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
|
||||
reagents.trans_to(G, G.reagents.maximum_volume)
|
||||
if(g_amount >= MINERAL_MATERIAL_AMOUNT)
|
||||
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
|
||||
G.amount = round(g_amount / MINERAL_MATERIAL_AMOUNT)
|
||||
if(gold_amount >= MINERAL_MATERIAL_AMOUNT)
|
||||
var/obj/item/stack/sheet/mineral/gold/G = new /obj/item/stack/sheet/mineral/gold(src.loc)
|
||||
G.amount = round(gold_amount / MINERAL_MATERIAL_AMOUNT)
|
||||
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT)
|
||||
var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc)
|
||||
G.amount = round(diamond_amount / MINERAL_MATERIAL_AMOUNT)
|
||||
materials.retrieve_all()
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/disconnect_console()
|
||||
linked_console.linked_imprinter = null
|
||||
..()
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/Insert_Item(obj/item/O, mob/user)
|
||||
|
||||
if (istype(O, /obj/item/stack/sheet/glass) || istype(O, /obj/item/stack/sheet/mineral/gold) || istype(O, /obj/item/stack/sheet/mineral/diamond))
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
. = 1
|
||||
if(!is_insertion_ready(user))
|
||||
return
|
||||
var/sheet_material = materials.get_item_material_amount(O)
|
||||
if(!sheet_material)
|
||||
return
|
||||
|
||||
if(!materials.has_space(sheet_material))
|
||||
user << "<span class='warning'>The [src.name]'s material bin is full! Please remove material before adding more.</span>"
|
||||
return 1
|
||||
|
||||
var/obj/item/stack/sheet/stack = O
|
||||
if ((TotalMaterials() + stack.perunit) > max_material_amount)
|
||||
user << "<span class='warning'>The [name] is full! Please remove glass from the protolathe in order to insert more.</span>"
|
||||
var/amount = round(input("How many sheets do you want to add?") as num)//No decimals
|
||||
if(!in_range(src, stack) || !user.Adjacent(src))
|
||||
return
|
||||
|
||||
var/amount = round(input("How many sheets do you want to add?") as num)
|
||||
if(amount <= 0 || stack.amount <= 0)
|
||||
return
|
||||
if(amount > stack.amount)
|
||||
amount = min(stack.amount, round((max_material_amount-TotalMaterials())/stack.perunit))
|
||||
|
||||
busy = 1
|
||||
use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount/10)))
|
||||
user << "<span class='notice'>You add [amount] sheets to the [src.name].</span>"
|
||||
if(istype(stack, /obj/item/stack/sheet/glass))
|
||||
g_amount += amount * MINERAL_MATERIAL_AMOUNT
|
||||
else if(istype(stack, /obj/item/stack/sheet/mineral/gold))
|
||||
gold_amount += amount * MINERAL_MATERIAL_AMOUNT
|
||||
else if(istype(stack, /obj/item/stack/sheet/mineral/diamond))
|
||||
diamond_amount += amount * MINERAL_MATERIAL_AMOUNT
|
||||
stack.use(amount)
|
||||
busy = 0
|
||||
src.updateUsrDialog()
|
||||
var/amount_inserted = materials.insert_stack(O,amount)
|
||||
if(!amount_inserted)
|
||||
return 1
|
||||
else
|
||||
use_power(max(1000, (MINERAL_MATERIAL_AMOUNT*amount_inserted/10)))
|
||||
user << "<span class='notice'>You add [amount_inserted] sheets to the [src.name].</span>"
|
||||
updateUsrDialog()
|
||||
|
||||
else if(user.a_intent != "harm")
|
||||
user << "<span class='warning'>You cannot insert this item into the [name]!</span>"
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
return 0
|
||||
@@ -2,154 +2,139 @@
|
||||
//////////AI Module Disks//////////
|
||||
///////////////////////////////////
|
||||
|
||||
/datum/design/aicore
|
||||
/datum/design/board/aicore
|
||||
name = "AI Design (AI Core)"
|
||||
desc = "Allows for the construction of circuit boards used to build new AI cores."
|
||||
id = "aicore"
|
||||
req_tech = list("programming" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/aicore
|
||||
category = list("AI Modules")
|
||||
|
||||
|
||||
/datum/design/safeguard_module
|
||||
/datum/design/board/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" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/aiModule/supplied/safeguard
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/onehuman_module
|
||||
/datum/design/board/onehuman_module
|
||||
name = "Module Design (OneHuman)"
|
||||
desc = "Allows for the construction of a OneHuman AI Module."
|
||||
id = "onehuman_module"
|
||||
req_tech = list("programming" = 6, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/zeroth/oneHuman
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/protectstation_module
|
||||
/datum/design/board/protectstation_module
|
||||
name = "Module Design (ProtectStation)"
|
||||
desc = "Allows for the construction of a ProtectStation AI Module."
|
||||
id = "protectstation_module"
|
||||
req_tech = list("programming" = 5, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/aiModule/supplied/protectStation
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/quarantine_module
|
||||
/datum/design/board/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(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/aiModule/supplied/quarantine
|
||||
category = list("AI Modules")
|
||||
|
||||
|
||||
/datum/design/oxygen_module
|
||||
/datum/design/board/oxygen_module
|
||||
name = "Module Design (OxygenIsToxicToHumans)"
|
||||
desc = "Allows for the construction of a Safeguard AI Module."
|
||||
id = "oxygen_module"
|
||||
req_tech = list("programming" = 4, "biotech" = 2, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/aiModule/supplied/oxygen
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/freeform_module
|
||||
/datum/design/board/freeform_module
|
||||
name = "Module Design (Freeform)"
|
||||
desc = "Allows for the construction of a Freeform AI Module."
|
||||
id = "freeform_module"
|
||||
req_tech = list("programming" = 5, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/aiModule/supplied/freeform
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/reset_module
|
||||
/datum/design/board/reset_module
|
||||
name = "Module Design (Reset)"
|
||||
desc = "Allows for the construction of a Reset AI Module."
|
||||
id = "reset_module"
|
||||
req_tech = list("programming" = 4, "materials" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/aiModule/reset
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/purge_module
|
||||
/datum/design/board/purge_module
|
||||
name = "Module Design (Purge)"
|
||||
desc = "Allows for the construction of a Purge AI Module."
|
||||
id = "purge_module"
|
||||
req_tech = list("programming" = 5, "materials" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/reset/purge
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/freeformcore_module
|
||||
/datum/design/board/freeformcore_module
|
||||
name = "AI Core Module (Freeform)"
|
||||
desc = "Allows for the construction of a Freeform AI Core Module."
|
||||
id = "freeformcore_module"
|
||||
req_tech = list("programming" = 6, "materials" = 6)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/core/freeformcore
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/asimov
|
||||
/datum/design/board/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" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/core/full/asimov
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/paladin_module
|
||||
/datum/design/board/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" = 5, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/core/full/paladin
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/tyrant_module
|
||||
/datum/design/board/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" = 5, "syndicate" = 2, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/core/full/tyrant
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/corporate_module
|
||||
/datum/design/board/corporate_module
|
||||
name = "Core Module Design (Corporate)"
|
||||
desc = "Allows for the construction of a Corporate AI Core Module."
|
||||
id = "corporate_module"
|
||||
req_tech = list("programming" = 5, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/core/full/corp
|
||||
category = list("AI Modules")
|
||||
|
||||
/datum/design/custom_module
|
||||
/datum/design/board/custom_module
|
||||
name = "Core Module Design (Custom)"
|
||||
desc = "Allows for the construction of a Custom AI Core Module."
|
||||
id = "custom_module"
|
||||
req_tech = list("programming" = 5, "materials" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_DIAMOND = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/aiModule/core/full/custom
|
||||
category = list("AI Modules")
|
||||
|
||||
@@ -1,311 +1,253 @@
|
||||
///////////////////Computer Boards///////////////////////////////////
|
||||
|
||||
/datum/design/seccamera
|
||||
/datum/design/board
|
||||
name = "Computer Design (Battle Arcade Machine)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new arcade machine."
|
||||
id = "arcade_battle"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000)
|
||||
reagents = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/arcade/battle
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/board/orion_trail
|
||||
name = "Computer Design (Orion Trail Arcade Machine)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine."
|
||||
id = "arcade_orion"
|
||||
req_tech = list("programming" = 1)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/arcade/orion_trail
|
||||
category = list("Computer Boards")
|
||||
|
||||
|
||||
/datum/design/board/seccamera
|
||||
name = "Computer Design (Security)"
|
||||
desc = "Allows for the construction of circuit boards used to build security camera computers."
|
||||
id = "seccamera"
|
||||
req_tech = list("programming" = 2, "combat" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/security
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/aiupload
|
||||
/datum/design/board/aiupload
|
||||
name = "Computer Design (AI Upload)"
|
||||
desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
|
||||
id = "aiupload"
|
||||
req_tech = list("programming" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/aiupload
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/borgupload
|
||||
/datum/design/board/borgupload
|
||||
name = "Computer Design (Cyborg Upload)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console."
|
||||
id = "borgupload"
|
||||
req_tech = list("programming" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/borgupload
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/med_data
|
||||
/datum/design/board/med_data
|
||||
name = "Computer 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, "biotech" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/med_data
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/operating
|
||||
/datum/design/board/operating
|
||||
name = "Computer 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" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/operating
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/pandemic
|
||||
/datum/design/board/pandemic
|
||||
name = "Computer 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" = 3, "biotech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/pandemic
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/scan_console
|
||||
/datum/design/board/scan_console
|
||||
name = "Computer 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" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/scan_consolenew
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/comconsole
|
||||
/datum/design/board/comconsole
|
||||
name = "Computer Design (Communications)"
|
||||
desc = "Allows for the construction of circuit boards used to build a communications console."
|
||||
id = "comconsole"
|
||||
req_tech = list("programming" = 3, "magnets" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/communications
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/idcardconsole
|
||||
/datum/design/board/idcardconsole
|
||||
name = "Computer Design (ID Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build an ID computer."
|
||||
id = "idcardconsole"
|
||||
req_tech = list("programming" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/card
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/crewconsole
|
||||
/datum/design/board/crewconsole
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/crew
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/secdata
|
||||
/datum/design/board/secdata
|
||||
name = "Computer 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, "combat" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/secure_data
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/atmosalerts
|
||||
/datum/design/board/atmosalerts
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/atmos_alert
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/atmos_control
|
||||
/datum/design/board/atmos_control
|
||||
name = "Computer Design (Atmospheric Monitor)"
|
||||
desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor."
|
||||
id = "atmos_control"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/atmos_control
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/robocontrol
|
||||
/datum/design/board/robocontrol
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/robotics
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/arcadebattle
|
||||
name = "Computer Design (Battle 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/arcade/battle
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/orion_trail
|
||||
name = "Computer Design (Orion Trail Arcade Machine)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine."
|
||||
id = "arcademachine"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/arcade/orion_trail
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/slot_machine
|
||||
/datum/design/board/slot_machine
|
||||
name = "Computer Design (Slot Machine)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new slot machine."
|
||||
id = "slotmachine"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/slot_machine
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/powermonitor
|
||||
/datum/design/board/powermonitor
|
||||
name = "Computer 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, "powerstorage" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/powermonitor
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/solarcontrol
|
||||
/datum/design/board/solarcontrol
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/solar_control
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/prisonmanage
|
||||
/datum/design/board/prisonmanage
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/prisoner
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/mechacontrol
|
||||
/datum/design/board/mechacontrol
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/mecha_control
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/mechapower
|
||||
/datum/design/board/mechapower
|
||||
name = "Computer 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" = 3, "powerstorage" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/mech_bay_power_console
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/rdconsole
|
||||
/datum/design/board/rdconsole
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/rdconsole
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/cargo
|
||||
/datum/design/board/cargo
|
||||
name = "Computer Design (Supply Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Supply Console."
|
||||
id = "cargo"
|
||||
req_tech = list("programming" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/cargo
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/cargorequest
|
||||
/datum/design/board/cargorequest
|
||||
name = "Computer Design (Supply Request Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Supply Request Console."
|
||||
id = "cargorequest"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/cargo/request
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/mining
|
||||
/datum/design/board/mining
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/mining
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/comm_monitor
|
||||
/datum/design/board/comm_monitor
|
||||
name = "Computer 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, "magnets" = 3, "bluespace" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/comm_monitor
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/comm_server
|
||||
/datum/design/board/comm_server
|
||||
name = "Computer 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, "magnets" = 3, "bluespace" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/comm_server
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/message_monitor
|
||||
/datum/design/board/message_monitor
|
||||
name = "Computer 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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/message_monitor
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/aifixer
|
||||
/datum/design/board/aifixer
|
||||
name = "Computer 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" = 4, "magnets" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/aifixer
|
||||
category = list("Computer Boards")
|
||||
|
||||
/datum/design/libraryconsole
|
||||
/datum/design/board/libraryconsole
|
||||
name = "Computer Design (Library Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a new library console."
|
||||
id = "libraryconsole"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/libraryconsole
|
||||
category = list("Computer Boards")
|
||||
|
||||
@@ -2,482 +2,387 @@
|
||||
//////////////MISC Boards///////////////
|
||||
////////////////////////////////////////
|
||||
|
||||
/datum/design/smes
|
||||
/datum/design/board/smes
|
||||
name = "Machine Design (SMES Board)"
|
||||
desc = "The circuit board for a SMES."
|
||||
id = "smes"
|
||||
req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/smes
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/announcement_system
|
||||
/datum/design/board/announcement_system
|
||||
name = "Machine Design (Automated Announcement System Board)"
|
||||
desc = "The circuit board for an automated announcement system."
|
||||
id = "automated_announcement"
|
||||
req_tech = list("programming" = 3, "bluespace" = 3, "magnets" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/announcement_system
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/turbine_computer
|
||||
/datum/design/board/turbine_computer
|
||||
name = "Computer Design (Power Turbine Console Board)"
|
||||
desc = "The circuit board for a power turbine console."
|
||||
id = "power_turbine_console"
|
||||
req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/turbine_computer
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/emitter
|
||||
/datum/design/board/emitter
|
||||
name = "Machine Design (Emitter Board)"
|
||||
desc = "The circuit board for an emitter."
|
||||
id = "emitter"
|
||||
req_tech = list("programming" = 3, "powerstorage" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/emitter
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/power_compressor
|
||||
/datum/design/board/power_compressor
|
||||
name = "Machine Design (Power Compressor Board)"
|
||||
desc = "The circuit board for a power compressor."
|
||||
id = "power_compressor"
|
||||
req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/power_compressor
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/power_turbine
|
||||
/datum/design/board/power_turbine
|
||||
name = "Machine Design (Power Turbine Board)"
|
||||
desc = "The circuit board for a power turbine."
|
||||
id = "power_turbine"
|
||||
req_tech = list("programming" = 4, "powerstorage" = 4, "engineering" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/power_turbine
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/thermomachine
|
||||
/datum/design/board/thermomachine
|
||||
name = "Machine Design (Freezer/Heater Board)"
|
||||
desc = "The circuit board for a freezer/heater."
|
||||
id = "thermomachine"
|
||||
req_tech = list("programming" = 3, "plasmatech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/thermomachine
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/space_heater
|
||||
/datum/design/board/space_heater
|
||||
name = "Machine Design (Space Heater Board)"
|
||||
desc = "The circuit board for a space heater."
|
||||
id = "space_heater"
|
||||
req_tech = list("programming" = 2, "engineering" = 2, "plasmatech" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/space_heater
|
||||
category = list ("Engineering Machinery")
|
||||
|
||||
/datum/design/teleport_station
|
||||
/datum/design/board/teleport_station
|
||||
name = "Machine Design (Teleportation Station Board)"
|
||||
desc = "The circuit board for a teleportation station."
|
||||
id = "tele_station"
|
||||
req_tech = list("programming" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/teleporter_station
|
||||
category = list ("Teleportation Machinery")
|
||||
|
||||
/datum/design/teleport_hub
|
||||
/datum/design/board/teleport_hub
|
||||
name = "Machine Design (Teleportation Hub Board)"
|
||||
desc = "The circuit board for a teleportation hub."
|
||||
id = "tele_hub"
|
||||
req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/teleporter_hub
|
||||
category = list ("Teleportation Machinery")
|
||||
|
||||
/datum/design/telepad
|
||||
/datum/design/board/telepad
|
||||
name = "Machine Design (Telepad Board)"
|
||||
desc = "The circuit board for a telescience telepad."
|
||||
id = "telepad"
|
||||
req_tech = list("programming" = 4, "bluespace" = 5, "plasmatech" = 4, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telesci_pad
|
||||
category = list ("Teleportation Machinery")
|
||||
|
||||
/datum/design/teleconsole
|
||||
/datum/design/board/teleconsole
|
||||
name = "Computer 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" = 3, "plasmatech" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/teleporter
|
||||
category = list("Teleportation Machinery")
|
||||
|
||||
/datum/design/telesci_console
|
||||
/datum/design/board/telesci_console
|
||||
name = "Computer Design (Telepad Control Console Board)"
|
||||
desc = "Allows for the construction of circuit boards used to build a telescience console."
|
||||
id = "telesci_console"
|
||||
req_tech = list("programming" = 3, "bluespace" = 3, "plasmatech" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/telesci_console
|
||||
category = list("Teleportation Machinery")
|
||||
|
||||
/datum/design/sleeper
|
||||
/datum/design/board/sleeper
|
||||
name = "Machine Design (Sleeper Board)"
|
||||
desc = "The circuit board for a sleeper."
|
||||
id = "sleeper"
|
||||
req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/sleeper
|
||||
category = list ("Medical Machinery")
|
||||
|
||||
/datum/design/cryotube
|
||||
/datum/design/board/cryotube
|
||||
name = "Machine Design (Cryotube Board)"
|
||||
desc = "The circuit board for a cryotube."
|
||||
id = "cryotube"
|
||||
req_tech = list("programming" = 5, "biotech" = 3, "engineering" = 4, "plasmatech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/cryo_tube
|
||||
category = list ("Medical Machinery")
|
||||
|
||||
/datum/design/chem_dispenser
|
||||
/datum/design/board/chem_dispenser
|
||||
name = "Machine Design (Portable Chem Dispenser Board)"
|
||||
desc = "The circuit board for a portable chem dispenser."
|
||||
id = "chem_dispenser"
|
||||
req_tech = list("programming" = 5, "biotech" = 3, "materials" = 4, "plasmatech" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/chem_dispenser
|
||||
category = list ("Medical Machinery")
|
||||
|
||||
/datum/design/chem_master
|
||||
/datum/design/board/chem_master
|
||||
name = "Machine Design (Chem Master Board)"
|
||||
desc = "The circuit board for a Chem Master 2999."
|
||||
desc = "The circuit board for a Chem Master 3000."
|
||||
id = "chem_master"
|
||||
req_tech = list("biotech" = 3, "materials" = 3, "programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/chem_master
|
||||
category = list ("Medical Machinery")
|
||||
|
||||
/datum/design/chem_heater
|
||||
/datum/design/board/chem_heater
|
||||
name = "Machine Design (Chemical Heater Board)"
|
||||
desc = "The circuit board for a chemical heater."
|
||||
id = "chem_heater"
|
||||
req_tech = list("engineering" = 2, "biotech" = 2, "programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/chem_heater
|
||||
category = list ("Medical Machinery")
|
||||
|
||||
/datum/design/clonecontrol
|
||||
/datum/design/board/clonecontrol
|
||||
name = "Computer 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" = 4, "biotech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/cloning
|
||||
category = list("Medical Machinery")
|
||||
|
||||
/datum/design/clonepod
|
||||
/datum/design/board/clonepod
|
||||
name = "Machine Design (Clone Pod)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Cloning Pod."
|
||||
id = "clonepod"
|
||||
req_tech = list("programming" = 4, "biotech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/clonepod
|
||||
category = list("Medical Machinery")
|
||||
|
||||
/datum/design/clonescanner
|
||||
/datum/design/board/clonescanner
|
||||
name = "Machine Design (Cloning Scanner)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Cloning Scanner."
|
||||
id = "clonescanner"
|
||||
req_tech = list("programming" = 4, "biotech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/clonescanner
|
||||
category = list("Medical Machinery")
|
||||
|
||||
/datum/design/biogenerator
|
||||
/datum/design/board/biogenerator
|
||||
name = "Machine Design (Biogenerator Board)"
|
||||
desc = "The circuit board for a biogenerator."
|
||||
id = "biogenerator"
|
||||
req_tech = list("programming" = 2, "biotech" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/biogenerator
|
||||
category = list ("Hydroponics Machinery")
|
||||
|
||||
/datum/design/hydroponics
|
||||
/datum/design/board/hydroponics
|
||||
name = "Machine Design (Hydroponics Tray Board)"
|
||||
desc = "The circuit board for a hydroponics tray."
|
||||
id = "hydro_tray"
|
||||
req_tech = list("biotech" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/hydroponics
|
||||
category = list ("Hydroponics Machinery")
|
||||
|
||||
/datum/design/destructive_analyzer
|
||||
/datum/design/board/destructive_analyzer
|
||||
name = "Machine Design (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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/destructive_analyzer
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/experimentor
|
||||
/datum/design/board/experimentor
|
||||
name = "Machine Design (E.X.P.E.R.I-MENTOR Board)"
|
||||
desc = "The circuit board for an E.X.P.E.R.I-MENTOR."
|
||||
id = "experimentor"
|
||||
req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2, "bluespace" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/experimentor
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/protolathe
|
||||
/datum/design/board/protolathe
|
||||
name = "Machine Design (Protolathe Board)"
|
||||
desc = "The circuit board for a protolathe."
|
||||
id = "protolathe"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/protolathe
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/circuit_imprinter
|
||||
/datum/design/board/circuit_imprinter
|
||||
name = "Machine Design (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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/circuit_imprinter
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/rdservercontrol
|
||||
/datum/design/board/rdservercontrol
|
||||
name = "Computer Design (R&D Server Control Console Board)"
|
||||
desc = "The circuit board for an R&D Server Control Console."
|
||||
id = "rdservercontrol"
|
||||
req_tech = list("programming" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/rdservercontrol
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/rdserver
|
||||
/datum/design/board/rdserver
|
||||
name = "Machine Design (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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/rdserver
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/mechfab
|
||||
/datum/design/board/mechfab
|
||||
name = "Machine Design (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(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/mechfab
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/cyborgrecharger
|
||||
/datum/design/board/cyborgrecharger
|
||||
name = "Machine Design (Cyborg Recharger Board)"
|
||||
desc = "The circuit board for a Cyborg Recharger."
|
||||
id = "cyborgrecharger"
|
||||
req_tech = list("powerstorage" = 3, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/cyborgrecharger
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/mech_recharger
|
||||
/datum/design/board/mech_recharger
|
||||
name = "Machine Design (Mechbay Recharger Board)"
|
||||
desc = "The circuit board for a Mechbay Recharger."
|
||||
id = "mech_recharger"
|
||||
req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/mech_recharger
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/microwave
|
||||
/datum/design/board/microwave
|
||||
name = "Machine Design (Microwave Board)"
|
||||
desc = "The circuit board for a microwave."
|
||||
id = "microwave"
|
||||
req_tech = list("programming" = 2, "magnets" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/microwave
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/gibber
|
||||
/datum/design/board/gibber
|
||||
name = "Machine Design (Gibber Board)"
|
||||
desc = "The circuit board for a gibber."
|
||||
id = "gibber"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/gibber
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/smartfridge
|
||||
/datum/design/board/smartfridge
|
||||
name = "Machine Design (Smartfridge Board)"
|
||||
desc = "The circuit board for a smartfridge."
|
||||
id = "smartfridge"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/smartfridge
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/monkey_recycler
|
||||
/datum/design/board/monkey_recycler
|
||||
name = "Machine Design (Monkey Recycler Board)"
|
||||
desc = "The circuit board for a monkey recycler."
|
||||
id = "smartfridge"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/monkey_recycler
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/seed_extractor
|
||||
/datum/design/board/seed_extractor
|
||||
name = "Machine Design (Seed Extractor Board)"
|
||||
desc = "The circuit board for a seed extractor."
|
||||
id = "seed_extractor"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/seed_extractor
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/processor
|
||||
/datum/design/board/processor
|
||||
name = "Machine Design (Processor Board)"
|
||||
desc = "The circuit board for a processor."
|
||||
id = "processor"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/processor
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/recycler
|
||||
/datum/design/board/recycler
|
||||
name = "Machine Design (Recycler Board)"
|
||||
desc = "The circuit board for a recycler."
|
||||
id = "recycler"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/recycler
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/holopad
|
||||
/datum/design/board/holopad
|
||||
name = "Machine Design (AI Holopad Board)"
|
||||
desc = "The circuit board for a holopad."
|
||||
id = "holopad"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/holopad
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/autolathe
|
||||
/datum/design/board/autolathe
|
||||
name = "Machine Design (Autolathe Board)"
|
||||
desc = "The circuit board for an autolathe."
|
||||
id = "autolathe"
|
||||
req_tech = list("programming" = 3, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/autolathe
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/recharger
|
||||
/datum/design/board/recharger
|
||||
name = "Machine Design (Weapon Recharger Board)"
|
||||
desc = "The circuit board for a Weapon Recharger."
|
||||
id = "recharger"
|
||||
req_tech = list("powerstorage" = 4, "engineering" = 3, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100)
|
||||
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/recharger
|
||||
category = list("Misc. Machinery")
|
||||
|
||||
/datum/design/vendor
|
||||
/datum/design/board/vendor
|
||||
name = "Machine Design (Vendor Board)"
|
||||
desc = "The circuit board for a Vendor."
|
||||
id = "vendor"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/vendor
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/ore_redemption
|
||||
/datum/design/board/ore_redemption
|
||||
name = "Machine Design (Ore Redemption Board)"
|
||||
desc = "The circuit board for an Ore Redemption machine."
|
||||
id = "ore_redemption"
|
||||
req_tech = list("programming" = 2, "engineering" = 2, "plasmatech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/ore_redemption
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/mining_equipment_vendor
|
||||
/datum/design/board/mining_equipment_vendor
|
||||
name = "Machine Design (Mining Rewards Vender Board)"
|
||||
desc = "The circuit board for a Mining Rewards Vender."
|
||||
id = "mining_equipment_vendor"
|
||||
req_tech = list("engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/tesla_coil
|
||||
/datum/design/board/tesla_coil
|
||||
name = "Machine Design (Tesla Coil Board)"
|
||||
desc = "The circuit board for a tesla coil."
|
||||
id = "tesla_coil"
|
||||
req_tech = list("programming" = 3, "powerstorage" = 3, "magnets" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/tesla_coil
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/grounding_rod
|
||||
/datum/design/board/grounding_rod
|
||||
name = "Machine Design (Grounding Rod Board)"
|
||||
desc = "The circuit board for a grounding rod."
|
||||
id = "grounding_rod"
|
||||
req_tech = list("programming" = 3, "powerstorage" = 3, "magnets" = 3, "plasmatech" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/grounding_rod
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/plantgenes
|
||||
/datum/design/board/plantgenes
|
||||
name = "Machine Design (Plant DNA Manipulator Board)"
|
||||
desc = "The circuit board for a plant DNA manipulator."
|
||||
id = "plantgenes"
|
||||
req_tech = list("programming" = 4, "biotech" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/plantgenes
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
@@ -2,163 +2,136 @@
|
||||
//////////Mecha Module Disks///////
|
||||
///////////////////////////////////
|
||||
|
||||
/datum/design/ripley_main
|
||||
/datum/design/board/ripley_main
|
||||
name = "APLU \"Ripley\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Ripley\" Central Control module."
|
||||
id = "ripley_main"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/ripley/main
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/ripley_peri
|
||||
/datum/design/board/ripley_peri
|
||||
name = "APLU \"Ripley\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Ripley\" Peripheral Control module."
|
||||
id = "ripley_peri"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/odysseus_main
|
||||
|
||||
/datum/design/board/odysseus_main
|
||||
name = "\"Odysseus\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Odysseus\" Central Control module."
|
||||
id = "odysseus_main"
|
||||
req_tech = list("programming" = 3,"biotech" = 3, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/odysseus_peri
|
||||
/datum/design/board/odysseus_peri
|
||||
name = "\"Odysseus\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Odysseus\" Peripheral Control module."
|
||||
id = "odysseus_peri"
|
||||
req_tech = list("programming" = 3,"biotech" = 3, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/gygax_main
|
||||
|
||||
/datum/design/board/gygax_main
|
||||
name = "\"Gygax\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Gygax\" Central Control module."
|
||||
id = "gygax_main"
|
||||
req_tech = list("programming" = 4, "combat" = 3, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/gygax/main
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/gygax_peri
|
||||
/datum/design/board/gygax_peri
|
||||
name = "\"Gygax\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Gygax\" Peripheral Control module."
|
||||
id = "gygax_peri"
|
||||
req_tech = list("programming" = 4, "combat" = 3, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/gygax_targ
|
||||
/datum/design/board/gygax_targ
|
||||
name = "\"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" = 4, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/durand_main
|
||||
|
||||
/datum/design/board/durand_main
|
||||
name = "\"Durand\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Durand\" Central Control module."
|
||||
id = "durand_main"
|
||||
req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/durand/main
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/durand_peri
|
||||
/datum/design/board/durand_peri
|
||||
name = "\"Durand\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Durand\" Peripheral Control module."
|
||||
id = "durand_peri"
|
||||
req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/durand_targ
|
||||
/datum/design/board/durand_targ
|
||||
name = "\"Durand\" Weapons & Targeting Control module"
|
||||
desc = "Allows for the construction of a \"Durand\" Weapons & Targeting Control module."
|
||||
id = "durand_targ"
|
||||
req_tech = list("programming" = 5, "combat" = 4, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/honker_main
|
||||
|
||||
/datum/design/board/honker_main
|
||||
name = "\"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, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/honker/main
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/honker_peri
|
||||
/datum/design/board/honker_peri
|
||||
name = "\"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, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/honker_targ
|
||||
/datum/design/board/honker_targ
|
||||
name = "\"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, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/phazon_main
|
||||
|
||||
/datum/design/board/phazon_main
|
||||
name = "\"Phazon\" Central Control module"
|
||||
desc = "Allows for the construction of a \"Phazon\" Central Control module."
|
||||
id = "phazon_main"
|
||||
req_tech = list("programming" = 6, "materials" = 6, "plasmatech" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/phazon/main
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/phazon_peri
|
||||
/datum/design/board/phazon_peri
|
||||
name = "\"Phazon\" Peripherals Control module"
|
||||
desc = "Allows for the construction of a \"Phazon\" Peripheral Control module."
|
||||
id = "phazon_peri"
|
||||
req_tech = list("programming" = 6, "bluespace" = 5, "plasmatech" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
/datum/design/phazon_targ
|
||||
/datum/design/board/phazon_targ
|
||||
name = "\"Phazon\" Weapons & Targeting Control module"
|
||||
desc = "Allows for the construction of a \"Phazon\" Weapons & Targeting Control module."
|
||||
id = "phazon_targ"
|
||||
req_tech = list("programming" = 6, "magnets" = 5, "plasmatech" = 5)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting
|
||||
category = list("Exosuit Modules")
|
||||
|
||||
|
||||
@@ -68,32 +68,24 @@
|
||||
build_path = /obj/item/device/lightreplacer
|
||||
category = list("Power Designs")
|
||||
|
||||
/datum/design/pacman
|
||||
/datum/design/board/pacman
|
||||
name = "Machine Design (PACMAN-type Generator Board)"
|
||||
desc = "The circuit board that for a PACMAN-type portable generator."
|
||||
id = "pacman"
|
||||
req_tech = list("programming" = 2, "plasmatech" = 3, "powerstorage" = 3, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/pacman
|
||||
category = list("Engineering Machinery")
|
||||
|
||||
/datum/design/superpacman
|
||||
/datum/design/board/pacman/super
|
||||
name = "Machine Design (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
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/pacman/super
|
||||
category = list("Engineering Machinery")
|
||||
|
||||
/datum/design/mrspacman
|
||||
/datum/design/board/pacman/mrs
|
||||
name = "Machine Design (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, "plasmatech" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/pacman/mrs
|
||||
category = list("Engineering Machinery")
|
||||
|
||||
@@ -2,72 +2,58 @@
|
||||
/////Subspace Telecomms////////////
|
||||
///////////////////////////////////
|
||||
|
||||
/datum/design/subspace_receiver
|
||||
/datum/design/board/subspace_receiver
|
||||
name = "Machine Design (Subspace Receiver)"
|
||||
desc = "Allows for the construction of Subspace Receiver equipment."
|
||||
id = "s-receiver"
|
||||
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/receiver
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/telecomms_bus
|
||||
/datum/design/board/telecomms_bus
|
||||
name = "Machine Design (Bus Mainframe)"
|
||||
desc = "Allows for the construction of Telecommunications Bus Mainframes."
|
||||
id = "s-bus"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/bus
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/telecomms_hub
|
||||
/datum/design/board/telecomms_hub
|
||||
name = "Machine Design (Hub Mainframe)"
|
||||
desc = "Allows for the construction of Telecommunications Hub Mainframes."
|
||||
id = "s-hub"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/hub
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/telecomms_relay
|
||||
/datum/design/board/telecomms_relay
|
||||
name = "Machine Design (Relay Mainframe)"
|
||||
desc = "Allows for the construction of Telecommunications Relay Mainframes."
|
||||
id = "s-relay"
|
||||
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/relay
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/telecomms_processor
|
||||
/datum/design/board/telecomms_processor
|
||||
name = "Machine Design (Processor Unit)"
|
||||
desc = "Allows for the construction of Telecommunications Processor equipment."
|
||||
id = "s-processor"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/processor
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/telecomms_server
|
||||
/datum/design/board/telecomms_server
|
||||
name = "Machine Design (Server Mainframe)"
|
||||
desc = "Allows for the construction of Telecommunications Servers."
|
||||
id = "s-server"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/server
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/subspace_broadcaster
|
||||
/datum/design/board/subspace_broadcaster
|
||||
name = "Machine Design (Subspace Broadcaster)"
|
||||
desc = "Allows for the construction of Subspace Broadcasting equipment."
|
||||
id = "s-broadcaster"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000, "sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/telecomms/broadcaster
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
//WT550 Mags
|
||||
|
||||
/datum/design/mag_oldsmg
|
||||
name = "WT-550 Auto Gun Magazine (4.6×30mm)"
|
||||
name = "WT-550 Auto Gun Magazine (4.6x30mm)"
|
||||
desc = "A 20 round magazine for the out of date security WT-550 Auto Rifle"
|
||||
id = "mag_oldsmg"
|
||||
req_tech = list("combat" = 1, "materials" = 1)
|
||||
@@ -210,21 +210,21 @@
|
||||
category = list("Ammo")
|
||||
|
||||
/datum/design/mag_oldsmg/ap_mag
|
||||
name = "WT-550 Auto Gun Armour Piercing Magazine (4.6×30mm AP)"
|
||||
name = "WT-550 Auto Gun Armour Piercing Magazine (4.6x30mm AP)"
|
||||
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
|
||||
id = "mag_oldsmg_ap"
|
||||
materials = list(MAT_METAL = 6000, MAT_SILVER = 600)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
|
||||
|
||||
/datum/design/mag_oldsmg/ic_mag
|
||||
name = "WT-550 Auto Gun Incendiary Magazine (4.6×30mm IC)"
|
||||
name = "WT-550 Auto Gun Incendiary Magazine (4.6x30mm IC)"
|
||||
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
|
||||
id = "mag_oldsmg_ic"
|
||||
materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
|
||||
|
||||
/datum/design/mag_oldsmg/tx_mag
|
||||
name = "WT-550 Auto Gun Uranium Magazine (4.6×30mm TX)"
|
||||
name = "WT-550 Auto Gun Uranium Magazine (4.6x30mm TX)"
|
||||
desc = "A 20 round uranium tipped magazine for the out of date security WT-550 Auto Rifle"
|
||||
id = "mag_oldsmg_tx"
|
||||
materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_URANIUM = 2000)
|
||||
@@ -268,4 +268,4 @@
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_SILVER = 7000, MAT_GOLD = 7000, MAT_URANIUM = 6000, MAT_GLASS = 6000, MAT_METAL = 6000, MAT_DIAMOND = 3000)
|
||||
build_path = /obj/item/weapon/gun/energy/gravity_gun
|
||||
category = list("Weapons")
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -29,17 +29,14 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
"Firing Pins"
|
||||
)
|
||||
|
||||
reagents = new()
|
||||
|
||||
|
||||
/obj/machinery/r_n_d/protolathe/New()
|
||||
..()
|
||||
materials = new(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1))
|
||||
create_reagents(0)
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
reagents.my_atom = src
|
||||
|
||||
/obj/item/weapon/circuitboard/machine/protolathe
|
||||
name = "circuit board (Protolathe)"
|
||||
build_path = /obj/machinery/r_n_d/protolathe
|
||||
@@ -66,13 +63,13 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
efficiency_coeff = min(max(0, T), 1)
|
||||
|
||||
/obj/machinery/r_n_d/protolathe/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material
|
||||
var/list/all_materials = being_built.reagents + being_built.materials
|
||||
|
||||
var/A = materials.amount(M)
|
||||
if(!A)
|
||||
A = reagents.get_reagent_amount(M)
|
||||
A = A / max(1, (being_built.reagents[M]))
|
||||
else
|
||||
A = A / max(1, (being_built.materials[M]))
|
||||
return A
|
||||
|
||||
return round(A / max(1, (all_materials[M]*efficiency_coeff)))
|
||||
|
||||
//we eject the materials upon deconstruction.
|
||||
/obj/machinery/r_n_d/protolathe/deconstruction()
|
||||
@@ -88,11 +85,15 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
|
||||
/obj/machinery/r_n_d/protolathe/Insert_Item(obj/item/O, mob/user)
|
||||
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
if(istype(O, /obj/item/stack/sheet))
|
||||
. = 1
|
||||
if(!is_insertion_ready(user) || busy)
|
||||
if(!is_insertion_ready(user))
|
||||
return
|
||||
if(!materials.has_space( materials.get_item_material_amount(O) ))
|
||||
var/sheet_material = materials.get_item_material_amount(O)
|
||||
if(!sheet_material)
|
||||
return
|
||||
|
||||
if(!materials.has_space(sheet_material))
|
||||
user << "<span class='warning'>The [src.name]'s material bin is full! Please remove material before adding more.</span>"
|
||||
return 1
|
||||
|
||||
@@ -116,5 +117,6 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
|
||||
else if(user.a_intent != "harm")
|
||||
user << "<span class='warning'>You cannot insert this item into the [name]!</span>"
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
+265
-350
@@ -45,6 +45,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/screen = 1.0 //Which screen is currently showing.
|
||||
var/id = 0 //ID of the computer (for server restrictions).
|
||||
var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console
|
||||
var/first_use = 1 //If first_use = 1, it will try to auto-connect with nearby devices
|
||||
|
||||
req_access = list(access_tox) //Data and setting manipulation requires scientist access.
|
||||
|
||||
@@ -53,37 +54,20 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
|
||||
|
||||
/proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID.
|
||||
for(var/T in subtypesof(/datum/tech))
|
||||
var/datum/tech/tt = T
|
||||
if(initial(tt.id) == ID)
|
||||
return initial(tt.name)
|
||||
if(tech_list[ID])
|
||||
var/datum/tech/tech = tech_list[ID]
|
||||
return tech.name
|
||||
return "ERROR: Report This"
|
||||
|
||||
proc/CallMaterialName(ID)
|
||||
if (copytext(ID, 1, 2) == "$")
|
||||
var/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"
|
||||
return return_name
|
||||
else
|
||||
for(var/R in subtypesof(/datum/reagent))
|
||||
var/datum/reagent/rr = R
|
||||
if(initial(rr.id) == ID)
|
||||
return initial(rr.name)
|
||||
/proc/CallMaterialName(ID)
|
||||
if (copytext(ID, 1, 2) == "$" && materials_list[ID])
|
||||
var/datum/material/material = materials_list[ID]
|
||||
return material.name
|
||||
|
||||
else if(chemical_reagents_list[ID])
|
||||
var/datum/reagent/reagent = chemical_reagents_list[ID]
|
||||
return reagent.name
|
||||
return "ERROR: Report This"
|
||||
|
||||
/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))
|
||||
@@ -101,7 +85,7 @@ proc/CallMaterialName(ID)
|
||||
if(linked_imprinter == null)
|
||||
linked_imprinter = D
|
||||
D.linked_console = src
|
||||
return
|
||||
first_use = 0
|
||||
|
||||
//Have it automatically push research to the centcom server so wild griffins can't fuck up R&D's work --NEO
|
||||
/obj/machinery/computer/rdconsole/proc/griefProtection()
|
||||
@@ -124,9 +108,6 @@ proc/CallMaterialName(ID)
|
||||
S.initialize()
|
||||
break
|
||||
|
||||
/obj/machinery/computer/rdconsole/initialize()
|
||||
SyncRDevices()
|
||||
|
||||
/* Instead of calling this every tick, it is only being called when needed
|
||||
/obj/machinery/computer/rdconsole/process()
|
||||
griefProtection()
|
||||
@@ -231,10 +212,15 @@ proc/CallMaterialName(ID)
|
||||
var/datum/design/D = files.known_designs[href_list["copy_design_ID"]]
|
||||
if(D)
|
||||
var/autolathe_friendly = 1
|
||||
for(var/x in D.materials)
|
||||
if( !(x in list(MAT_METAL, MAT_GLASS)))
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
if(D.reagents.len)
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
else
|
||||
for(var/x in D.materials)
|
||||
if( !(x in list(MAT_METAL, MAT_GLASS)))
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
|
||||
if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab
|
||||
D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type
|
||||
D.category |= "Imported"
|
||||
@@ -253,60 +239,59 @@ proc/CallMaterialName(ID)
|
||||
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 << "<span class='danger'>The destructive analyzer is busy at the moment.</span>"
|
||||
return
|
||||
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
var/cancontinue = FALSE
|
||||
for(var/T in temp_tech)
|
||||
if(files.IsTechHigher(T, temp_tech[T]))
|
||||
cancontinue = TRUE
|
||||
break
|
||||
if(!cancontinue)
|
||||
var/choice = input("This item does not raise tech levels. Proceed destroying loaded item anyway?") in list("Proceed", "Cancel")
|
||||
if(choice == "Cancel" || !linked_destroy) return
|
||||
linked_destroy.busy = 1
|
||||
screen = 0.1
|
||||
if(!linked_destroy || linked_destroy.busy || !linked_destroy.loaded_item)
|
||||
updateUsrDialog()
|
||||
flick("d_analyzer_process", linked_destroy)
|
||||
spawn(24)
|
||||
if(linked_destroy)
|
||||
linked_destroy.busy = 0
|
||||
if(!linked_destroy.loaded_item)
|
||||
usr <<"<span class='danger'>The destructive analyzer appears to be empty.</span>"
|
||||
screen = 1.0
|
||||
return
|
||||
return
|
||||
|
||||
for(var/T in temp_tech)
|
||||
var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels
|
||||
if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels
|
||||
feedback_add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get
|
||||
files.UpdateTech(T, temp_tech[T])
|
||||
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
var/cancontinue = FALSE
|
||||
for(var/T in temp_tech)
|
||||
if(files.IsTechHigher(T, temp_tech[T]))
|
||||
cancontinue = TRUE
|
||||
break
|
||||
if(!cancontinue)
|
||||
var/choice = input("This item does not raise tech levels. Proceed destroying loaded item anyway?") in list("Proceed", "Cancel")
|
||||
if(choice == "Cancel" || !linked_destroy || !linked_destroy.loaded_item) 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.loaded_item)
|
||||
screen = 1.0
|
||||
return
|
||||
|
||||
if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
|
||||
for(var/material in linked_destroy.loaded_item.materials)
|
||||
linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material)
|
||||
feedback_add_details("item_deconstructed","[linked_destroy.loaded_item.type]")
|
||||
linked_destroy.loaded_item = null
|
||||
for(var/obj/I in linked_destroy.contents)
|
||||
for(var/mob/M in I.contents)
|
||||
M.death()
|
||||
if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack
|
||||
var/obj/item/stack/sheet/S = I
|
||||
if(S.amount > 1)
|
||||
S.amount--
|
||||
linked_destroy.loaded_item = S
|
||||
else
|
||||
qdel(S)
|
||||
linked_destroy.icon_state = "d_analyzer"
|
||||
for(var/T in temp_tech)
|
||||
var/datum/tech/KT = files.known_tech[T] //For stat logging of high levels
|
||||
if(files.IsTechHigher(T, temp_tech[T]) && KT.level >= 5) //For stat logging of high levels
|
||||
feedback_add_details("high_research_level","[KT][KT.level + 1]") //+1 to show the level which we're about to get
|
||||
files.UpdateTech(T, temp_tech[T])
|
||||
|
||||
if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any.
|
||||
for(var/material in linked_destroy.loaded_item.materials)
|
||||
linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material)
|
||||
feedback_add_details("item_deconstructed","[linked_destroy.loaded_item.type]")
|
||||
linked_destroy.loaded_item = null
|
||||
for(var/obj/I in linked_destroy.contents)
|
||||
for(var/mob/M in I.contents)
|
||||
M.death()
|
||||
if(istype(I,/obj/item/stack/sheet))//Only deconsturcts one sheet at a time instead of the entire stack
|
||||
var/obj/item/stack/sheet/S = I
|
||||
if(S.amount > 1)
|
||||
S.amount--
|
||||
linked_destroy.loaded_item = S
|
||||
else
|
||||
if(!(I in linked_destroy.component_parts))
|
||||
qdel(I)
|
||||
linked_destroy.icon_state = "d_analyzer"
|
||||
screen = 1.0
|
||||
use_power(250)
|
||||
updateUsrDialog()
|
||||
qdel(S)
|
||||
linked_destroy.icon_state = "d_analyzer"
|
||||
else
|
||||
if(!(I in linked_destroy.component_parts))
|
||||
qdel(I)
|
||||
linked_destroy.icon_state = "d_analyzer"
|
||||
screen = 1.0
|
||||
use_power(250)
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["lock"]) //Lock the console from use by anyone without tox access.
|
||||
if(src.allowed(usr))
|
||||
@@ -353,183 +338,166 @@ proc/CallMaterialName(ID)
|
||||
sync = !sync
|
||||
|
||||
else if(href_list["build"]) //Causes the Protolathe to build something.
|
||||
if(linked_lathe)
|
||||
if(linked_lathe.busy)
|
||||
usr << "<span class='danger'>Protolathe is busy at the moment.</span>"
|
||||
return
|
||||
var/coeff = linked_lathe.efficiency_coeff
|
||||
var/g2g = 1
|
||||
var/datum/design/being_built = files.known_designs[href_list["build"]]
|
||||
if(being_built)
|
||||
var/power = 2000
|
||||
var/amount=text2num(href_list["amount"])
|
||||
var/old_screen = screen
|
||||
amount = max(1, min(10, amount))
|
||||
for(var/M in being_built.materials)
|
||||
power += round(being_built.materials[M] * amount / 5)
|
||||
power = max(2000, power)
|
||||
screen = 0.3
|
||||
var/key = usr.key //so we don't lose the info during the spawn delay
|
||||
if (!(being_built.build_type & PROTOLATHE))
|
||||
var/datum/design/being_built = files.known_designs[href_list["build"]]
|
||||
var/amount = text2num(href_list["amount"])
|
||||
|
||||
if(!linked_lathe || !being_built || !amount)
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
if(linked_lathe.busy)
|
||||
usr << "<span class='danger'>Protolathe is busy at the moment.</span>"
|
||||
return
|
||||
|
||||
var/coeff = linked_lathe.efficiency_coeff
|
||||
var/power = 1000
|
||||
var/old_screen = screen
|
||||
|
||||
amount = max(1, min(10, amount))
|
||||
for(var/M in being_built.materials)
|
||||
power += round(being_built.materials[M] * amount / 5)
|
||||
power = max(3000, power)
|
||||
screen = 0.3
|
||||
var/key = usr.key //so we don't lose the info during the spawn delay
|
||||
if (!(being_built.build_type & PROTOLATHE))
|
||||
message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!")
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
var/g2g = 1
|
||||
var/enough_materials = 1
|
||||
linked_lathe.busy = 1
|
||||
flick("protolathe_n",linked_lathe)
|
||||
use_power(power)
|
||||
|
||||
var/list/efficient_mats = list()
|
||||
for(var/MAT in being_built.materials)
|
||||
efficient_mats[MAT] = being_built.materials[MAT]*coeff
|
||||
|
||||
if(!linked_lathe.materials.has_materials(efficient_mats, amount))
|
||||
linked_lathe.say("Not enough materials to complete prototype.")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
else
|
||||
for(var/R in being_built.reagents)
|
||||
if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R]*coeff))
|
||||
linked_lathe.say("Not enough reagents to complete prototype.")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!")
|
||||
|
||||
if (g2g) //If input is incorrect, nothing happens
|
||||
var/enough_materials = 1
|
||||
linked_lathe.busy = 1
|
||||
flick("protolathe_n",linked_lathe)
|
||||
use_power(power)
|
||||
if(enough_materials)
|
||||
linked_lathe.materials.use_amount(efficient_mats, amount)
|
||||
for(var/R in being_built.reagents)
|
||||
linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]*coeff)
|
||||
|
||||
var/list/efficient_mats = list()
|
||||
for(var/MAT in being_built.materials)
|
||||
efficient_mats[MAT] = being_built.materials[MAT]*coeff
|
||||
|
||||
if(!linked_lathe.materials.has_materials(efficient_mats, amount))
|
||||
src.visible_message("<span class='notice'>The [src.name] beeps, \"Not enough materials to complete prototype.\"</span>")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
else
|
||||
for(var/R in being_built.reagents)
|
||||
if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R])*coeff)
|
||||
src.visible_message("<span class='notice'>The [src.name] beeps, \"Not enough reagents to complete prototype.\"</span>")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
|
||||
if(enough_materials)
|
||||
linked_lathe.materials.use_amount(efficient_mats, amount)
|
||||
for(var/R in being_built.reagents)
|
||||
linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]*coeff)
|
||||
|
||||
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
|
||||
spawn(32*coeff*amount**0.8)
|
||||
if(linked_lathe)
|
||||
if(g2g) //And if we only fail the material requirements, we still spend time and power
|
||||
var/already_logged = 0
|
||||
for(var/i = 0, i<amount, i++)
|
||||
var/obj/item/new_item = new P(src)
|
||||
if( new_item.type == /obj/item/weapon/storage/backpack/holding )
|
||||
new_item.investigate_log("built by [key]","singulo")
|
||||
if(!istype(new_item, /obj/item/stack/sheet)) // To avoid materials dupe glitches
|
||||
new_item.materials = efficient_mats.Copy()
|
||||
new_item.loc = linked_lathe.loc
|
||||
if(!already_logged)
|
||||
feedback_add_details("item_printed","[new_item.type]|[amount]")
|
||||
already_logged = 1
|
||||
screen = old_screen
|
||||
linked_lathe.busy = 0
|
||||
else
|
||||
src.visible_message("<span class='notice'>The [src.name] beeps, \"Something went wrong, production halted!\"</span>")
|
||||
screen = 1.0
|
||||
updateUsrDialog()
|
||||
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
|
||||
spawn(32*coeff*amount**0.8)
|
||||
if(linked_lathe)
|
||||
if(g2g) //And if we only fail the material requirements, we still spend time and power
|
||||
var/already_logged = 0
|
||||
for(var/i = 0, i<amount, i++)
|
||||
var/obj/item/new_item = new P(src)
|
||||
if( new_item.type == /obj/item/weapon/storage/backpack/holding )
|
||||
new_item.investigate_log("built by [key]","singulo")
|
||||
if(!istype(new_item, /obj/item/stack/sheet)) // To avoid materials dupe glitches
|
||||
new_item.materials = efficient_mats.Copy()
|
||||
new_item.loc = linked_lathe.loc
|
||||
if(!already_logged)
|
||||
feedback_add_details("item_printed","[new_item.type]|[amount]")
|
||||
already_logged = 1
|
||||
screen = old_screen
|
||||
linked_lathe.busy = 0
|
||||
else
|
||||
say("Protolathe connection failed. Production halted.")
|
||||
screen = 1.0
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something.
|
||||
var/datum/design/being_built = files.known_designs[href_list["imprint"]]
|
||||
|
||||
if(!linked_imprinter || !being_built)
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
if(linked_imprinter.busy)
|
||||
usr << "<span class='danger'>Circuit Imprinter is busy at the moment.</span>"
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
var/coeff = linked_imprinter.efficiency_coeff
|
||||
|
||||
var/power = 1000
|
||||
var/old_screen = screen
|
||||
for(var/M in being_built.materials)
|
||||
power += round(being_built.materials[M] / 5)
|
||||
power = max(4000, power)
|
||||
screen = 0.4
|
||||
if (!(being_built.build_type & IMPRINTER))
|
||||
message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!")
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
var/g2g = 1
|
||||
if(linked_imprinter)
|
||||
if(linked_imprinter.busy)
|
||||
usr << "<span class='danger'>Circuit Imprinter is busy at the moment.</span>"
|
||||
return
|
||||
var/datum/design/being_built = files.known_designs[href_list["imprint"]]
|
||||
if(being_built)
|
||||
var/power = 2000
|
||||
var/old_screen = screen
|
||||
for(var/M in being_built.materials)
|
||||
power += round(being_built.materials[M] / 5)
|
||||
power = max(2000, power)
|
||||
screen = 0.4
|
||||
if (!(being_built.build_type & IMPRINTER))
|
||||
var/enough_materials = 1
|
||||
linked_imprinter.busy = 1
|
||||
flick("circuit_imprinter_ani", linked_imprinter)
|
||||
use_power(power)
|
||||
|
||||
var/list/efficient_mats = list()
|
||||
for(var/MAT in being_built.materials)
|
||||
efficient_mats[MAT] = being_built.materials[MAT]/coeff
|
||||
|
||||
if(!linked_imprinter.materials.has_materials(efficient_mats))
|
||||
linked_imprinter.say("Not enough materials to complete prototype.")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
else
|
||||
for(var/R in being_built.reagents)
|
||||
if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents[R]/coeff))
|
||||
linked_imprinter.say("Not enough reagents to complete prototype.")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!")
|
||||
|
||||
if (g2g) //Again, if input is wrong, do nothing
|
||||
linked_imprinter.busy = 1
|
||||
flick("circuit_imprinter_ani",linked_imprinter)
|
||||
use_power(power)
|
||||
if(enough_materials)
|
||||
linked_imprinter.materials.use_amount(efficient_mats)
|
||||
for(var/R in being_built.reagents)
|
||||
linked_imprinter.reagents.remove_reagent(R, being_built.reagents[R]/coeff)
|
||||
|
||||
for(var/M in being_built.materials)
|
||||
if(!linked_imprinter.check_mat(being_built, M))
|
||||
src.visible_message("<span class='notice'>The [src.name] beeps, \"Not enough materials to complete prototype.\"</span>")
|
||||
g2g = 0
|
||||
break
|
||||
switch(M)
|
||||
if(MAT_GLASS)
|
||||
linked_imprinter.g_amount = max(0, (linked_imprinter.g_amount-being_built.materials[M]/coeff))
|
||||
if(MAT_GOLD)
|
||||
linked_imprinter.gold_amount = max(0, (linked_imprinter.gold_amount-being_built.materials[M]/coeff))
|
||||
if(MAT_DIAMOND)
|
||||
linked_imprinter.diamond_amount = max(0, (linked_imprinter.diamond_amount-being_built.materials[M]/coeff))
|
||||
else
|
||||
linked_imprinter.reagents.remove_reagent(M, being_built.materials[M]/coeff)
|
||||
|
||||
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
|
||||
spawn(16)
|
||||
if(linked_imprinter)
|
||||
if(g2g)
|
||||
var/obj/item/new_item = new P(src)
|
||||
new_item.loc = linked_imprinter.loc
|
||||
feedback_add_details("circuit_printed","[new_item.type]")
|
||||
screen = old_screen
|
||||
linked_imprinter.busy = 0
|
||||
else
|
||||
src.visible_message("<span class='notice'>The [src.name] beeps, \"Something went wrong, production halted!\"</span>")
|
||||
screen = 1.0
|
||||
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["disposeI"])
|
||||
|
||||
else if(href_list["disposeallI"] && linked_imprinter) //Causes the circuit imprinter to dispose of all it's reagents.
|
||||
linked_imprinter.reagents.clear_reagents()
|
||||
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
|
||||
spawn(16)
|
||||
if(linked_imprinter)
|
||||
if(g2g)
|
||||
var/obj/item/new_item = new P(src)
|
||||
new_item.loc = linked_imprinter.loc
|
||||
new_item.materials = efficient_mats.Copy()
|
||||
feedback_add_details("circuit_printed","[new_item.type]")
|
||||
screen = old_screen
|
||||
linked_imprinter.busy = 0
|
||||
else
|
||||
say("Circuit Imprinter connection failed. Production halted.")
|
||||
screen = 1.0
|
||||
updateUsrDialog()
|
||||
|
||||
//Protolathe Materials
|
||||
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["disposeP"])
|
||||
|
||||
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/MAT
|
||||
switch(href_list["lathe_ejectsheet"])
|
||||
if("metal")
|
||||
MAT = MAT_METAL
|
||||
if("glass")
|
||||
MAT = MAT_GLASS
|
||||
if("gold")
|
||||
MAT = MAT_GOLD
|
||||
if("silver")
|
||||
MAT = MAT_SILVER
|
||||
if("plasma")
|
||||
MAT = MAT_PLASMA
|
||||
if("uranium")
|
||||
MAT = MAT_URANIUM
|
||||
if("diamond")
|
||||
MAT = MAT_DIAMOND
|
||||
if("clown")
|
||||
MAT = MAT_BANANIUM
|
||||
linked_lathe.materials.retrieve_sheets(desired_num_sheets, MAT)
|
||||
else if(href_list["ejectsheet"] && linked_lathe) //Causes the protolathe to eject a sheet of material
|
||||
linked_lathe.materials.retrieve_sheets(text2num(href_list["eject_amt"]), href_list["ejectsheet"])
|
||||
|
||||
//Circuit Imprinter Materials
|
||||
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["disposeI"])
|
||||
|
||||
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["imprinter_ejectsheet"] && linked_imprinter) //Causes the imprinter to eject a sheet of material
|
||||
linked_imprinter.materials.retrieve_sheets(text2num(href_list["eject_amt"]), href_list["imprinter_ejectsheet"])
|
||||
|
||||
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/mineral/gold
|
||||
res_amount = "gold_amount"
|
||||
if("diamond")
|
||||
type = /obj/item/stack/sheet/mineral/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
|
||||
qdel(sheet)
|
||||
|
||||
else if(href_list["find_device"]) //The R&D console looks for devices nearby to link up with.
|
||||
screen = 0.0
|
||||
@@ -591,6 +559,10 @@ proc/CallMaterialName(ID)
|
||||
|
||||
/obj/machinery/computer/rdconsole/interact(mob/user)
|
||||
user.set_machine(src)
|
||||
|
||||
if(first_use)
|
||||
SyncRDevices()
|
||||
|
||||
var/dat = ""
|
||||
files.RefreshResearch()
|
||||
switch(screen) //A quick check to make sure you get the right screen when a device is disconnected.
|
||||
@@ -705,13 +677,13 @@ proc/CallMaterialName(ID)
|
||||
if(b_type)
|
||||
dat += "Lathe Types:<BR>"
|
||||
if(b_type & IMPRINTER) dat += "Circuit Imprinter<BR>"
|
||||
if(b_type & PROTOLATHE) dat += "Proto-lathe<BR>"
|
||||
if(b_type & AUTOLATHE) dat += "Auto-lathe<BR>"
|
||||
if(b_type & MECHFAB) dat += "Mech Fabricator<BR>"
|
||||
if(b_type & PROTOLATHE) dat += "Protolathe<BR>"
|
||||
if(b_type & AUTOLATHE) dat += "Autolathe<BR>"
|
||||
if(b_type & MECHFAB) dat += "Exosuit Fabricator<BR>"
|
||||
dat += "Required Materials:<BR>"
|
||||
for(var/M in d_disk.blueprint.materials)
|
||||
if(copytext(M, 1, 2) == "$") dat += "* [copytext(M, 2)] x [d_disk.blueprint.materials[M]]<BR>"
|
||||
else dat += "* [M] x [d_disk.blueprint.materials[M]]<BR>"
|
||||
var/all_mats = d_disk.blueprint.materials + d_disk.blueprint.reagents
|
||||
for(var/M in all_mats)
|
||||
dat += "* [CallMaterialName(M)] x [all_mats[M]]<BR>"
|
||||
dat += "</div>Operations: "
|
||||
dat += "<A href='?src=\ref[src];updt_design=1'>Upload to Database</A>"
|
||||
dat += "<A href='?src=\ref[src];clear_design=1'>Clear Disk</A>"
|
||||
@@ -779,11 +751,10 @@ proc/CallMaterialName(ID)
|
||||
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
for(var/T in temp_tech)
|
||||
dat += "* [CallTechName(T)] [temp_tech[T]]"
|
||||
for(var/v in files.known_tech)
|
||||
var/datum/tech/F = files.known_tech[v]
|
||||
if(F.name == CallTechName(T))
|
||||
dat += " (Current: [F.level])"
|
||||
break
|
||||
var/datum/tech/F = files.known_tech[T]
|
||||
if(F)
|
||||
dat += " (Current: [F.level])"
|
||||
|
||||
dat += "<BR>"
|
||||
dat += "</div>Options: "
|
||||
dat += "<A href='?src=\ref[src];deconstruct=1'>Deconstruct Item</A>"
|
||||
@@ -831,22 +802,15 @@ proc/CallMaterialName(ID)
|
||||
var/temp_material
|
||||
var/c = 50
|
||||
var/t
|
||||
for(var/M in D.materials)
|
||||
|
||||
var/all_materials = D.materials + D.reagents
|
||||
for(var/M in all_materials)
|
||||
t = linked_lathe.check_mat(D, M)
|
||||
temp_material += " | "
|
||||
if (t < 1)
|
||||
temp_material += "<span class='bad'>[D.materials[M]*coeff] [CallMaterialName(M)]</span>"
|
||||
temp_material += "<span class='bad'>[all_materials[M]*coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_material += " [D.materials[M]*coeff] [CallMaterialName(M)]"
|
||||
c = min(c,t)
|
||||
|
||||
for(var/R in D.reagents)
|
||||
t = linked_lathe.check_mat(D, R)
|
||||
temp_material += " | "
|
||||
if (t < 1)
|
||||
temp_material += "<span class='bad'>[D.reagents[R]*coeff] [CallMaterialName(R)]</span>"
|
||||
else
|
||||
temp_material += " [D.reagents[R]*coeff] [CallMaterialName(R)]"
|
||||
temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]"
|
||||
c = min(c,t)
|
||||
|
||||
if (c >= 1)
|
||||
@@ -898,61 +862,16 @@ proc/CallMaterialName(ID)
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=3.1'>Protolathe Menu</A><div class='statusDisplay'>"
|
||||
dat += "<h3>Material Storage:</h3><BR><HR>"
|
||||
//Metal
|
||||
var/m_amount = linked_lathe.materials.amount(MAT_METAL)
|
||||
dat += "* [m_amount] of Metal: "
|
||||
if(m_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(m_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(m_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=metal;lathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Glass
|
||||
var/g_amount = linked_lathe.materials.amount(MAT_GLASS)
|
||||
dat += "* [g_amount] of Glass: "
|
||||
if(g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(g_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=glass;lathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Gold
|
||||
var/gold_amount = linked_lathe.materials.amount(MAT_GOLD)
|
||||
dat += "* [gold_amount] of Gold: "
|
||||
if(gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(gold_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Silver
|
||||
var/silver_amount = linked_lathe.materials.amount(MAT_SILVER)
|
||||
dat += "* [silver_amount] of Silver: "
|
||||
if(silver_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(silver_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(silver_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Plasma
|
||||
var/plasma_amount = linked_lathe.materials.amount(MAT_PLASMA)
|
||||
dat += "* [plasma_amount] of Solid Plasma: "
|
||||
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(plasma_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasmalathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Uranium
|
||||
var/uranium_amount = linked_lathe.materials.amount(MAT_URANIUM)
|
||||
dat += "* [uranium_amount] of Uranium: "
|
||||
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(uranium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Diamond
|
||||
var/diamond_amount = linked_lathe.materials.amount(MAT_DIAMOND)
|
||||
dat += "* [diamond_amount] of Diamond: "
|
||||
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Bananium
|
||||
var/bananium_amount = linked_lathe.materials.amount(MAT_BANANIUM)
|
||||
dat += "* [bananium_amount] of Bananium: "
|
||||
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>Eject</A> "
|
||||
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>5x</A> "
|
||||
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>All</A>"
|
||||
if(!linked_lathe)
|
||||
dat += "ERROR: Protolathe connection failed."
|
||||
else
|
||||
for(var/mat_id in linked_lathe.materials.materials)
|
||||
var/datum/material/M = linked_lathe.materials.materials[mat_id]
|
||||
dat += "* [M.amount] of [M.name]: "
|
||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];ejectsheet=[M.id];eject_amt=1'>Eject</A> "
|
||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];ejectsheet=[M.id];eject_amt=5'>5x</A> "
|
||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];ejectsheet=[M.id];eject_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
dat += "</div>"
|
||||
|
||||
if(3.3)
|
||||
@@ -974,7 +893,7 @@ proc/CallMaterialName(ID)
|
||||
dat += "<A href='?src=\ref[src];menu=4.3'>Material Storage</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=4.2'>Chemical Storage</A><div class='statusDisplay'>"
|
||||
dat += "<h3>Circuit Imprinter Menu:</h3><BR>"
|
||||
dat += "Material Amount: [linked_imprinter.TotalMaterials()]<BR>"
|
||||
dat += "Material Amount: [linked_imprinter.materials.total_amount]<BR>"
|
||||
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]<HR>"
|
||||
|
||||
dat += "<form name='search' action='?src=\ref[src]'>\
|
||||
@@ -991,7 +910,7 @@ proc/CallMaterialName(ID)
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=4.1'>Circuit Imprinter Menu</A>"
|
||||
dat += "<div class='statusDisplay'><h3>Browsing [selected_category]:</h3><BR>"
|
||||
dat += "Material Amount: [linked_imprinter.TotalMaterials()]<BR>"
|
||||
dat += "Material Amount: [linked_imprinter.materials.total_amount]<BR>"
|
||||
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]<HR>"
|
||||
|
||||
var/coeff = linked_imprinter.efficiency_coeff
|
||||
@@ -1001,13 +920,16 @@ proc/CallMaterialName(ID)
|
||||
continue
|
||||
var/temp_materials
|
||||
var/check_materials = 1
|
||||
for(var/M in D.materials)
|
||||
|
||||
var/all_materials = D.materials + D.reagents
|
||||
|
||||
for(var/M in all_materials)
|
||||
temp_materials += " | "
|
||||
if (!linked_imprinter.check_mat(D, M))
|
||||
check_materials = 0
|
||||
temp_materials += " <span class='bad'>[D.materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_materials += " <span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
if (check_materials)
|
||||
dat += "<A href='?src=\ref[src];imprint=[D.id]'>[D.name]</A>[temp_materials]<BR>"
|
||||
else
|
||||
@@ -1018,7 +940,7 @@ proc/CallMaterialName(ID)
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=4.1'>Circuit Imprinter Menu</A>"
|
||||
dat += "<div class='statusDisplay'><h3>Search results:</h3><BR>"
|
||||
dat += "Material Amount: [linked_imprinter.TotalMaterials()]<BR>"
|
||||
dat += "Material Amount: [linked_imprinter.materials.total_amount]<BR>"
|
||||
dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]<HR>"
|
||||
|
||||
var/coeff = linked_imprinter.efficiency_coeff
|
||||
@@ -1038,9 +960,9 @@ proc/CallMaterialName(ID)
|
||||
dat += "<span class='linkOff'>[D.name]</span>[temp_materials]<BR>"
|
||||
dat += "</div>"
|
||||
|
||||
if(4.2)
|
||||
if(4.2) //Circuit Imprinter Material Storage Sub-menu
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=4.1'>Imprinter Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=4.1'>Circuit Imprinter Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];disposeallI=1'>Disposal All Chemicals in Storage</A><div class='statusDisplay'>"
|
||||
dat += "<h3>Chemical Storage:</h3><BR><HR>"
|
||||
for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list)
|
||||
@@ -1051,23 +973,16 @@ proc/CallMaterialName(ID)
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=4.1'>Circuit Imprinter Menu</A><div class='statusDisplay'>"
|
||||
dat += "<h3>Material Storage:</h3><BR><HR>"
|
||||
//Glass
|
||||
dat += "* [linked_imprinter.g_amount] glass: "
|
||||
if(linked_imprinter.g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=1'>Eject</A> "
|
||||
if(linked_imprinter.g_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=5'>5x</A> "
|
||||
if(linked_imprinter.g_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=glass;imprinter_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Gold
|
||||
dat += "* [linked_imprinter.gold_amount] gold: "
|
||||
if(linked_imprinter.gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>Eject</A> "
|
||||
if(linked_imprinter.gold_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>5x</A> "
|
||||
if(linked_imprinter.gold_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
//Diamond
|
||||
dat += "* [linked_imprinter.diamond_amount] diamond: "
|
||||
if(linked_imprinter.diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>Eject</A> "
|
||||
if(linked_imprinter.diamond_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>5x</A> "
|
||||
if(linked_imprinter.diamond_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>All</A>"
|
||||
if(!linked_imprinter)
|
||||
dat += "ERROR: Protolathe connection failed."
|
||||
else
|
||||
for(var/mat_id in linked_imprinter.materials.materials)
|
||||
var/datum/material/M = linked_imprinter.materials.materials[mat_id]
|
||||
dat += "* [M.amount] of [M.name]: "
|
||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=[M.id];eject_amt=1'>Eject</A> "
|
||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=[M.id];eject_amt=5'>5x</A> "
|
||||
if(M.amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=[M.id];eject_amt=50'>All</A>"
|
||||
dat += "<BR>"
|
||||
dat += "</div>"
|
||||
|
||||
var/datum/browser/popup = new(user, "rndconsole", name, 460, 550)
|
||||
|
||||
@@ -81,9 +81,14 @@
|
||||
return
|
||||
if (disabled)
|
||||
return
|
||||
if (!linked_console)
|
||||
user << "<span class='warning'>The [name] must be linked to an R&D console first!</span>"
|
||||
return
|
||||
if (!linked_console) // Try to auto-connect to new RnD consoles nearby.
|
||||
for(var/obj/machinery/computer/rdconsole/console in oview(3, src))
|
||||
if(console.first_use)
|
||||
console.SyncRDevices()
|
||||
|
||||
if(!linked_console)
|
||||
user << "<span class='warning'>The [name] must be linked to an R&D console first!</span>"
|
||||
return
|
||||
if (busy)
|
||||
user << "<span class='warning'>The [src.name] is busy right now.</span>"
|
||||
return
|
||||
|
||||
@@ -172,12 +172,12 @@ research holder datum.
|
||||
|
||||
/datum/tech/engineering
|
||||
name = "Engineering Research"
|
||||
desc = "Development of new and improved engineering parts and."
|
||||
desc = "Development of new and improved engineering parts and tools."
|
||||
id = "engineering"
|
||||
|
||||
/datum/tech/plasmatech
|
||||
name = "Plasma Research"
|
||||
desc = "Research into the mysterious substance colloqually known as 'plasma'."
|
||||
desc = "Research into the mysterious substance colloqually known as \"plasma\"."
|
||||
id = "plasmatech"
|
||||
rare = 3
|
||||
|
||||
@@ -187,8 +187,8 @@ research holder datum.
|
||||
id = "powerstorage"
|
||||
|
||||
/datum/tech/bluespace
|
||||
name = "'Blue-space' Research"
|
||||
desc = "Research into the sub-reality known as 'blue-space'"
|
||||
name = "\"Blue-space\" Research"
|
||||
desc = "Research into the sub-reality known as \"blue-space\"."
|
||||
id = "bluespace"
|
||||
rare = 2
|
||||
|
||||
@@ -218,6 +218,9 @@ research holder datum.
|
||||
id = "syndicate"
|
||||
rare = 4
|
||||
|
||||
|
||||
//Secret Technologies (hidden by default, require rare items to reveal)
|
||||
|
||||
/datum/tech/abductor
|
||||
name = "Alien Technologies Research"
|
||||
desc = "The study of technologies used by the advanced alien race known as Abductors."
|
||||
@@ -225,13 +228,14 @@ research holder datum.
|
||||
rare = 5
|
||||
level = 0
|
||||
|
||||
/*
|
||||
/datum/tech/arcane
|
||||
name = "Arcane Research"
|
||||
desc = "Research into the occult and arcane field for use in practical science"
|
||||
desc = "When sufficiently analyzed, any magic becomes indistinguishable from technology."
|
||||
id = "arcane"
|
||||
level = 0 //It didn't become "secret" as advertised.
|
||||
rare = 5
|
||||
level = 0
|
||||
|
||||
/*
|
||||
//Branch Techs
|
||||
/datum/tech/explosives
|
||||
name = "Explosives Research"
|
||||
|
||||
Reference in New Issue
Block a user