Files
CHOMPStation2/code/modules/research/designs.dm
Neerti 337ef499a1 Cleans Up WIP Event System + New Grid Check For It
Separates the 'count and assess everything' stuff to it's own datum, called the metric datum, which I plan to add on to in the future to make counting and metrics easier.
Makes decision process a bit more weight-based, will probably continue tweaking later.
Makes the admin debug UI have links to change settings easily.
Adds replacement for grid check event, which works similar to the old one, but is now based on a physical machine in the game world, that Engineering can hack to make the event end faster, if so desired.  Note that the machine is not mapped in, and won't be mapped in until the event system is ready for launch.
Adds grid_check variables to SMESes and APCs to make them stop doing work without draining the battery.
Grid checks in the new system are caused by a "power spike" which originates from the engine and will cause bad things, should no grid checker machine be connected to the power-net.  These power spikes occur when the GM decides that a grid check is a good event to have.
The grid checker can be built and deconstructed using the standard machine construction methods.
2016-10-05 21:40:07 -04:00

2025 lines
70 KiB
Plaintext

/***************************************************************
** Design Datums **
** All the data for building stuff and tracking reliability. **
***************************************************************/
/*
For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent,
you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum),
they are simply references used as part of a "has materials?" type proc. They all start with a to denote that they aren't reagents.
The currently supporting non-reagent materials:
Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials.
Design Guidlines
- When adding new designs, check rdreadme.dm to see what kind of things have already been made and where new stuff is needed.
- A single sheet of anything is 2000 units of material. Materials besides metal/glass require help from other jobs (mining for
other types of metals and chemistry for reagents).
*/
//Note: More then one of these can be added to a design.
/datum/design //Datum for object designs, used in construction
var/name = null //Name of the created object. If null it will be 'guessed' from build_path if possible.
var/desc = null //Description of the created object. If null it will use group_desc and name where applicable.
var/item_name = null //An item name before it is modified by various name-modifying procs
var/id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols.
var/list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements.
var/build_type = null //Flag as to what kind machine the design is built in. See defines.
var/list/materials = list() //List of materials. Format: "id" = amount.
var/list/chemicals = list() //List of chemicals.
var/build_path = null //The path of the object that gets created.
var/time = 10 //How many ticks it requires to build
var/category = null //Primarily used for Mech Fabricators, but can be used for anything.
var/sort_string = "ZZZZZ" //Sorting order
/datum/design/New()
..()
item_name = name
AssembleDesignInfo()
//These procs are used in subtypes for assigning names and descriptions dynamically
/datum/design/proc/AssembleDesignInfo()
AssembleDesignName()
AssembleDesignDesc()
return
/datum/design/proc/AssembleDesignName()
if(!name && build_path) //Get name from build path if posible
var/atom/movable/A = build_path
name = initial(A.name)
item_name = name
return
/datum/design/proc/AssembleDesignDesc()
if(!desc) //Try to make up a nice description if we don't have one
desc = "Allows for the construction of \a [item_name]."
return
//Returns a new instance of the item for this design
//This is to allow additional initialization to be performed, including possibly additional contructor arguments.
/datum/design/proc/Fabricate(var/newloc, var/fabricator)
return new build_path(newloc)
/datum/design/item
build_type = PROTOLATHE
/datum/design/item/design_disk
name = "Design Storage Disk"
desc = "Produce additional disks for storing device designs."
id = "design_disk"
req_tech = list(TECH_DATA = 1)
materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 10)
build_path = /obj/item/weapon/disk/design_disk
sort_string = "GAAAA"
/datum/design/item/tech_disk
name = "Technology Data Storage Disk"
desc = "Produce additional disks for storing technology data."
id = "tech_disk"
req_tech = list(TECH_DATA = 1)
materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 10)
build_path = /obj/item/weapon/disk/tech_disk
sort_string = "GAAAB"
/datum/design/item/stock_part
build_type = PROTOLATHE
/datum/design/item/stock_part/AssembleDesignName()
..()
name = "Component design ([item_name])"
/datum/design/item/stock_part/AssembleDesignDesc()
if(!desc)
desc = "A stock part used in the construction of various devices."
/datum/design/item/stock_part/basic_capacitor
id = "basic_capacitor"
req_tech = list(TECH_POWER = 1)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
build_path = /obj/item/weapon/stock_parts/capacitor
sort_string = "CAAAA"
/datum/design/item/stock_part/adv_capacitor
id = "adv_capacitor"
req_tech = list(TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
build_path = /obj/item/weapon/stock_parts/capacitor/adv
sort_string = "CAAAB"
/datum/design/item/stock_part/super_capacitor
id = "super_capacitor"
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50, "gold" = 20)
build_path = /obj/item/weapon/stock_parts/capacitor/super
sort_string = "CAAAC"
/datum/design/item/stock_part/micro_mani
id = "micro_mani"
req_tech = list(TECH_MATERIAL = 1, TECH_DATA = 1)
materials = list(DEFAULT_WALL_MATERIAL = 30)
build_path = /obj/item/weapon/stock_parts/manipulator
sort_string = "CAABA"
/datum/design/item/stock_part/nano_mani
id = "nano_mani"
req_tech = list(TECH_MATERIAL = 3, TECH_DATA = 2)
materials = list(DEFAULT_WALL_MATERIAL = 30)
build_path = /obj/item/weapon/stock_parts/manipulator/nano
sort_string = "CAABB"
/datum/design/item/stock_part/pico_mani
id = "pico_mani"
req_tech = list(TECH_MATERIAL = 5, TECH_DATA = 2)
materials = list(DEFAULT_WALL_MATERIAL = 30)
build_path = /obj/item/weapon/stock_parts/manipulator/pico
sort_string = "CAABC"
/datum/design/item/stock_part/basic_matter_bin
id = "basic_matter_bin"
req_tech = list(TECH_MATERIAL = 1)
materials = list(DEFAULT_WALL_MATERIAL = 80)
build_path = /obj/item/weapon/stock_parts/matter_bin
sort_string = "CAACA"
/datum/design/item/stock_part/adv_matter_bin
id = "adv_matter_bin"
req_tech = list(TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 80)
build_path = /obj/item/weapon/stock_parts/matter_bin/adv
sort_string = "CAACB"
/datum/design/item/stock_part/super_matter_bin
id = "super_matter_bin"
req_tech = list(TECH_MATERIAL = 5)
materials = list(DEFAULT_WALL_MATERIAL = 80)
build_path = /obj/item/weapon/stock_parts/matter_bin/super
sort_string = "CAACC"
/datum/design/item/stock_part/basic_micro_laser
id = "basic_micro_laser"
req_tech = list(TECH_MAGNET = 1)
materials = list(DEFAULT_WALL_MATERIAL = 10, "glass" = 20)
build_path = /obj/item/weapon/stock_parts/micro_laser
sort_string = "CAADA"
/datum/design/item/stock_part/high_micro_laser
id = "high_micro_laser"
req_tech = list(TECH_MAGNET = 3)
materials = list(DEFAULT_WALL_MATERIAL = 10, "glass" = 20)
build_path = /obj/item/weapon/stock_parts/micro_laser/high
sort_string = "CAADB"
/datum/design/item/stock_part/ultra_micro_laser
id = "ultra_micro_laser"
req_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5)
materials = list(DEFAULT_WALL_MATERIAL = 10, "glass" = 20, "uranium" = 10)
build_path = /obj/item/weapon/stock_parts/micro_laser/ultra
sort_string = "CAADC"
/datum/design/item/stock_part/basic_sensor
id = "basic_sensor"
req_tech = list(TECH_MAGNET = 1)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
build_path = /obj/item/weapon/stock_parts/scanning_module
sort_string = "CAAEA"
/datum/design/item/stock_part/adv_sensor
id = "adv_sensor"
req_tech = list(TECH_MAGNET = 3)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
build_path = /obj/item/weapon/stock_parts/scanning_module/adv
sort_string = "CAAEB"
/datum/design/item/stock_part/phasic_sensor
id = "phasic_sensor"
req_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20, "silver" = 10)
build_path = /obj/item/weapon/stock_parts/scanning_module/phasic
sort_string = "CAAEC"
/datum/design/item/stock_part/RPED
name = "Rapid Part Exchange Device"
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
id = "rped"
req_tech = list(TECH_ENGINEERING = 3, TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 5000)
build_path = /obj/item/weapon/storage/part_replacer
sort_string = "CBAAA"
/datum/design/item/powercell
build_type = PROTOLATHE | MECHFAB
/datum/design/item/powercell/AssembleDesignName()
name = "Power cell model ([item_name])"
/datum/design/item/powercell/AssembleDesignDesc()
if(build_path)
var/obj/item/weapon/cell/C = build_path
desc = "Allows the construction of power cells that can hold [initial(C.maxcharge)] units of energy."
/datum/design/item/powercell/Fabricate()
var/obj/item/weapon/cell/C = ..()
C.charge = 0 //shouldn't produce power out of thin air.
return C
/datum/design/item/powercell/basic
name = "basic"
build_type = PROTOLATHE | MECHFAB
id = "basic_cell"
req_tech = list(TECH_POWER = 1)
materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50)
build_path = /obj/item/weapon/cell
category = "Misc"
sort_string = "DAAAA"
/datum/design/item/powercell/high
name = "high-capacity"
build_type = PROTOLATHE | MECHFAB
id = "high_cell"
req_tech = list(TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 60)
build_path = /obj/item/weapon/cell/high
category = "Misc"
sort_string = "DAAAB"
/datum/design/item/powercell/super
name = "super-capacity"
id = "super_cell"
req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2)
materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 70)
build_path = /obj/item/weapon/cell/super
category = "Misc"
sort_string = "DAAAC"
/datum/design/item/powercell/hyper
name = "hyper-capacity"
id = "hyper_cell"
req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4)
materials = list(DEFAULT_WALL_MATERIAL = 400, "gold" = 150, "silver" = 150, "glass" = 70)
build_path = /obj/item/weapon/cell/hyper
category = "Misc"
sort_string = "DAAAD"
/datum/design/item/hud
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
/datum/design/item/hud/AssembleDesignName()
..()
name = "HUD glasses prototype ([item_name])"
/datum/design/item/hud/AssembleDesignDesc()
desc = "Allows for the construction of \a [item_name] HUD glasses."
/datum/design/item/hud/health
name = "health scanner"
id = "health_hud"
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 3)
build_path = /obj/item/clothing/glasses/hud/health
sort_string = "GAAAA"
/datum/design/item/hud/security
name = "security records"
id = "security_hud"
req_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 2)
build_path = /obj/item/clothing/glasses/hud/security
sort_string = "GAAAB"
/datum/design/item/mesons
name = "Optical meson scanners design"
desc = "Using the meson-scanning technology those glasses allow you to see through walls, floor or anything else."
id = "mesons"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
build_path = /obj/item/clothing/glasses/meson
sort_string = "GAAAC"
/datum/design/item/weapon/mining/AssembleDesignName()
..()
name = "Mining equipment design ([item_name])"
/datum/design/item/weapon/mining/jackhammer
id = "jackhammer"
req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 2, TECH_ENGINEERING = 2)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 500, "silver" = 500)
build_path = /obj/item/weapon/pickaxe/jackhammer
sort_string = "KAAAA"
/datum/design/item/weapon/mining/drill
id = "drill"
req_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 1000) //expensive, but no need for miners.
build_path = /obj/item/weapon/pickaxe/drill
sort_string = "KAAAB"
/datum/design/item/weapon/mining/plasmacutter
id = "plasmacutter"
req_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 500, "gold" = 500, "phoron" = 500)
build_path = /obj/item/weapon/pickaxe/plasmacutter
sort_string = "KAAAC"
/datum/design/item/weapon/mining/pick_diamond
id = "pick_diamond"
req_tech = list(TECH_MATERIAL = 6)
materials = list("diamond" = 3000)
build_path = /obj/item/weapon/pickaxe/diamond
sort_string = "KAAAD"
/datum/design/item/weapon/mining/drill_diamond
id = "drill_diamond"
req_tech = list(TECH_MATERIAL = 6, TECH_POWER = 4, TECH_ENGINEERING = 4)
materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 1000, "diamond" = 2000)
build_path = /obj/item/weapon/pickaxe/diamonddrill
sort_string = "KAAAE"
///////////////////////////////////
/////////Shield Generators/////////
///////////////////////////////////
/datum/design/circuit/shield
req_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
materials = list("$glass" = 2000, "sacid" = 20, "$phoron" = 10000, "$diamond" = 5000, "$gold" = 10000)
/datum/design/item/medical
materials = list(DEFAULT_WALL_MATERIAL = 30, "glass" = 20)
/datum/design/item/medical/AssembleDesignName()
..()
name = "Biotech device prototype ([item_name])"
/datum/design/item/medical/robot_scanner
desc = "A hand-held scanner able to diagnose robotic injuries."
id = "robot_scanner"
req_tech = list(TECH_MAGNET = 3, TECH_BIO = 2, TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 500, "glass" = 200)
build_path = /obj/item/device/robotanalyzer
sort_string = "MACFA"
/datum/design/item/medical/mass_spectrometer
desc = "A device for analyzing chemicals in blood."
id = "mass_spectrometer"
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 2)
build_path = /obj/item/device/mass_spectrometer
sort_string = "MACAA"
/datum/design/item/medical/adv_mass_spectrometer
desc = "A device for analyzing chemicals in blood and their quantities."
id = "adv_mass_spectrometer"
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 4)
build_path = /obj/item/device/mass_spectrometer/adv
sort_string = "MACAB"
/datum/design/item/medical/reagent_scanner
desc = "A device for identifying chemicals."
id = "reagent_scanner"
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 2)
build_path = /obj/item/device/reagent_scanner
sort_string = "MACBA"
/datum/design/item/medical/adv_reagent_scanner
desc = "A device for identifying chemicals and their proportions."
id = "adv_reagent_scanner"
req_tech = list(TECH_BIO = 2, TECH_MAGNET = 4)
build_path = /obj/item/device/reagent_scanner/adv
sort_string = "MACBB"
/datum/design/item/beaker/AssembleDesignName()
name = "Beaker prototype ([item_name])"
/datum/design/item/beaker/noreact
name = "cryostasis"
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
id = "splitbeaker"
req_tech = list(TECH_MATERIAL = 2)
materials = list(DEFAULT_WALL_MATERIAL = 3000)
build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact
sort_string = "MADAA"
/datum/design/item/beaker/bluespace
name = TECH_BLUESPACE
desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units."
id = "bluespacebeaker"
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 6)
materials = list(DEFAULT_WALL_MATERIAL = 3000, "phoron" = 3000, "diamond" = 500)
build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace
sort_string = "MADAB"
/datum/design/item/medical/nanopaste
desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery."
id = "nanopaste"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 7000)
build_path = /obj/item/stack/nanopaste
sort_string = "MBAAA"
/datum/design/item/scalpel_laser1
name = "Basic Laser Scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks basic and could be improved."
id = "scalpel_laser1"
req_tech = list(TECH_BIO = 2, TECH_MATERIAL = 2, TECH_MAGNET = 2)
materials = list(DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500)
build_path = /obj/item/weapon/scalpel/laser1
sort_string = "MBBAA"
/datum/design/item/scalpel_laser2
name = "Improved Laser Scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks somewhat advanced."
id = "scalpel_laser2"
req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 4, TECH_MAGNET = 4)
materials = list(DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500, "silver" = 2500)
build_path = /obj/item/weapon/scalpel/laser2
sort_string = "MBBAB"
/datum/design/item/scalpel_laser3
name = "Advanced Laser Scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks to be the pinnacle of precision energy cutlery!"
id = "scalpel_laser3"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 6, TECH_MAGNET = 5)
materials = list(DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500, "silver" = 2000, "gold" = 1500)
build_path = /obj/item/weapon/scalpel/laser3
sort_string = "MBBAC"
/datum/design/item/scalpel_manager
name = "Incision Management System"
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision allowing for the immediate commencement of therapeutic steps."
id = "scalpel_manager"
req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 7, TECH_MAGNET = 5, TECH_DATA = 4)
materials = list (DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500, "silver" = 1500, "gold" = 1500, "diamond" = 750)
build_path = /obj/item/weapon/scalpel/manager
sort_string = "MBBAD"
/datum/design/item/implant
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
/datum/design/item/implant/AssembleDesignName()
..()
name = "Implantable biocircuit design ([item_name])"
/datum/design/item/implant/chemical
name = "chemical"
id = "implant_chem"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3)
build_path = /obj/item/weapon/implantcase/chem
sort_string = "MFAAA"
/datum/design/item/implant/freedom
name = "freedom"
id = "implant_free"
req_tech = list(TECH_ILLEGAL = 2, TECH_BIO = 3)
build_path = /obj/item/weapon/implantcase/freedom
sort_string = "MFAAB"
/datum/design/item/weapon/AssembleDesignName()
..()
name = "Weapon prototype ([item_name])"
/datum/design/item/weapon/AssembleDesignDesc()
if(!desc)
if(build_path)
var/obj/item/I = build_path
desc = initial(I.desc)
..()
/datum/design/item/weapon/stunrevolver
id = "stunrevolver"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 4000)
build_path = /obj/item/weapon/gun/energy/stunrevolver
sort_string = "TAAAA"
/datum/design/item/weapon/nuclear_gun
id = "nuclear_gun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "uranium" = 500)
build_path = /obj/item/weapon/gun/energy/gun/nuclear
sort_string = "TAAAB"
/datum/design/item/weapon/lasercannon
desc = "The lasing medium of this prototype is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core."
id = "lasercannon"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 1000, "diamond" = 2000)
build_path = /obj/item/weapon/gun/energy/lasercannon
sort_string = "TAAAC"
/datum/design/item/weapon/phoronpistol
id = "ppistol"
req_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "phoron" = 3000)
build_path = /obj/item/weapon/gun/energy/toxgun
sort_string = "TAAAD"
/datum/design/item/weapon/decloner
id = "decloner"
req_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 7, TECH_BIO = 5, TECH_POWER = 6)
materials = list("gold" = 5000,"uranium" = 10000)
chemicals = list("mutagen" = 40)
build_path = /obj/item/weapon/gun/energy/decloner
sort_string = "TAAAE"
/datum/design/item/weapon/smg
id = "smg"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 8000, "silver" = 2000, "diamond" = 1000)
build_path = /obj/item/weapon/gun/projectile/automatic
sort_string = "TAABA"
/datum/design/item/weapon/ammo_9mm
id = "ammo_9mm"
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 3750, "silver" = 100)
build_path = /obj/item/ammo_magazine/c9mm
sort_string = "TAACA"
/datum/design/item/weapon/stunshell
desc = "A stunning shell for a shotgun."
id = "stunshell"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 4000)
build_path = /obj/item/ammo_casing/shotgun/stunshell
sort_string = "TAACB"
/datum/design/item/weapon/chemsprayer
desc = "An advanced chem spraying device."
id = "chemsprayer"
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000)
build_path = /obj/item/weapon/reagent_containers/spray/chemsprayer
sort_string = "TABAA"
/datum/design/item/weapon/rapidsyringe
id = "rapidsyringe"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000)
build_path = /obj/item/weapon/gun/launcher/syringe/rapid
sort_string = "TABAB"
/datum/design/item/weapon/temp_gun
desc = "A gun that shoots high-powered glass-encased energy temperature bullets."
id = "temp_gun"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 2)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 500, "silver" = 3000)
build_path = /obj/item/weapon/gun/energy/temperature
sort_string = "TABAC"
/datum/design/item/weapon/large_grenade
id = "large_Grenade"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
materials = list(DEFAULT_WALL_MATERIAL = 3000)
build_path = /obj/item/weapon/grenade/chem_grenade/large
sort_string = "TACAA"
/datum/design/item/weapon/flora_gun
id = "flora_gun"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 500, "uranium" = 500)
build_path = /obj/item/weapon/gun/energy/floragun
sort_string = "TBAAA"
/datum/design/item/stock_part/subspace_ansible
id = "s-ansible"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
materials = list(DEFAULT_WALL_MATERIAL = 80, "silver" = 20)
build_path = /obj/item/weapon/stock_parts/subspace/ansible
sort_string = "UAAAA"
/datum/design/item/stock_part/hyperwave_filter
id = "s-filter"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 3)
materials = list(DEFAULT_WALL_MATERIAL = 40, "silver" = 10)
build_path = /obj/item/weapon/stock_parts/subspace/filter
sort_string = "UAAAB"
/datum/design/item/stock_part/subspace_amplifier
id = "s-amplifier"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
materials = list(DEFAULT_WALL_MATERIAL = 10, "gold" = 30, "uranium" = 15)
build_path = /obj/item/weapon/stock_parts/subspace/amplifier
sort_string = "UAAAC"
/datum/design/item/stock_part/subspace_treatment
id = "s-treatment"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
materials = list(DEFAULT_WALL_MATERIAL = 10, "silver" = 20)
build_path = /obj/item/weapon/stock_parts/subspace/treatment
sort_string = "UAAAD"
/datum/design/item/stock_part/subspace_analyzer
id = "s-analyzer"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
materials = list(DEFAULT_WALL_MATERIAL = 10, "gold" = 15)
build_path = /obj/item/weapon/stock_parts/subspace/analyzer
sort_string = "UAAAE"
/datum/design/item/stock_part/subspace_crystal
id = "s-crystal"
req_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
materials = list("glass" = 1000, "silver" = 20, "gold" = 20)
build_path = /obj/item/weapon/stock_parts/subspace/crystal
sort_string = "UAAAF"
/datum/design/item/stock_part/subspace_transmitter
id = "s-transmitter"
req_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
materials = list("glass" = 100, "silver" = 10, "uranium" = 15)
build_path = /obj/item/weapon/stock_parts/subspace/transmitter
sort_string = "UAAAG"
/datum/design/item/light_replacer
name = "Light replacer"
desc = "A device to automatically replace lights. Refill with working lightbulbs."
id = "light_replacer"
req_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1500, "silver" = 150, "glass" = 3000)
build_path = /obj/item/device/lightreplacer
sort_string = "VAAAH"
/datum/design/item/paicard
name = "'pAI', personal artificial intelligence device"
id = "paicard"
req_tech = list(TECH_DATA = 2)
materials = list("glass" = 500, DEFAULT_WALL_MATERIAL = 500)
build_path = /obj/item/device/paicard
sort_string = "VABAI"
/datum/design/item/intellicard
name = "'intelliCard', AI preservation and transportation system"
desc = "Allows for the construction of an intelliCard."
id = "intellicard"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
materials = list("glass" = 1000, "gold" = 200)
build_path = /obj/item/device/aicard
sort_string = "VACAA"
/datum/design/item/posibrain
name = "Positronic brain"
id = "posibrain"
req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 6, TECH_BLUESPACE = 2, TECH_DATA = 4)
build_type = PROTOLATHE | PROSFAB
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 500, "phoron" = 500, "diamond" = 100)
build_path = /obj/item/device/mmi/digital/posibrain
category = "Misc"
sort_string = "VACAB"
/datum/design/item/mmi
name = "Man-machine interface"
id = "mmi"
req_tech = list(TECH_DATA = 2, TECH_BIO = 3)
build_type = PROTOLATHE | PROSFAB
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 500)
build_path = /obj/item/device/mmi
category = "Misc"
sort_string = "VACBA"
/datum/design/item/mmi_radio
name = "Radio-enabled man-machine interface"
id = "mmi_radio"
req_tech = list(TECH_DATA = 2, TECH_BIO = 4)
build_type = PROTOLATHE | PROSFAB
materials = list(DEFAULT_WALL_MATERIAL = 1200, "glass" = 500)
build_path = /obj/item/device/mmi/radio_enabled
category = "Misc"
sort_string = "VACBB"
/datum/design/item/beacon
name = "Bluespace tracking beacon design"
id = "beacon"
req_tech = list(TECH_BLUESPACE = 1)
materials = list (DEFAULT_WALL_MATERIAL = 20, "glass" = 10)
build_path = /obj/item/device/radio/beacon
sort_string = "VADAA"
/datum/design/item/bag_holding
name = "'Bag of Holding', an infinite capacity bag prototype"
desc = "Using localized pockets of bluespace this bag prototype offers incredible storage capacity with the contents weighting nothing. It's a shame the bag itself is pretty heavy."
id = "bag_holding"
req_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 6)
materials = list("gold" = 3000, "diamond" = 1500, "uranium" = 250)
build_path = /obj/item/weapon/storage/backpack/holding
sort_string = "VAEAA"
/datum/design/item/binaryencrypt
name = "Binary encryption key"
desc = "Allows for deciphering the binary channel on-the-fly."
id = "binaryencrypt"
req_tech = list(TECH_ILLEGAL = 2)
materials = list(DEFAULT_WALL_MATERIAL = 300, "glass" = 300)
build_path = /obj/item/device/encryptionkey/binary
sort_string = "VASAA"
/datum/design/item/chameleon
name = "Holographic equipment kit"
desc = "A kit of dangerous, high-tech equipment with changeable looks."
id = "chameleon"
req_tech = list(TECH_ILLEGAL = 2)
materials = list(DEFAULT_WALL_MATERIAL = 500)
build_path = /obj/item/weapon/storage/box/syndie_kit/chameleon
sort_string = "VASBA"
/*
CIRCUITS BELOW
*/
/datum/design/circuit
build_type = IMPRINTER
req_tech = list(TECH_DATA = 2)
materials = list("glass" = 2000)
chemicals = list("sacid" = 20)
time = 5
/datum/design/circuit/AssembleDesignName()
..()
if(build_path)
var/obj/item/weapon/circuitboard/C = build_path
if(initial(C.board_type) == "machine")
name = "Machine circuit design ([item_name])"
else if(initial(C.board_type) == "computer")
name = "Computer circuit design ([item_name])"
else
name = "Circuit design ([item_name])"
/datum/design/circuit/AssembleDesignDesc()
if(!desc)
desc = "Allows for the construction of \a [item_name] circuit board."
/datum/design/circuit/arcademachine
name = "battle arcade machine"
id = "arcademachine"
req_tech = list(TECH_DATA = 1)
build_path = /obj/item/weapon/circuitboard/arcade/battle
sort_string = "MAAAA"
/datum/design/circuit/oriontrail
name = "orion trail arcade machine"
id = "oriontrail"
req_tech = list(TECH_DATA = 1)
build_path = /obj/item/weapon/circuitboard/arcade/orion_trail
sort_string = "MAAAA"
/datum/design/circuit/jukebox
name = "jukebox"
id = "jukebox"
req_tech = list(TECH_MAGNET = 2, TECH_DATA = 1)
build_path = /obj/item/weapon/circuitboard/jukebox
sort_string = "MAAAB"
/datum/design/circuit/seccamera
name = "security camera monitor"
id = "seccamera"
build_path = /obj/item/weapon/circuitboard/security
sort_string = "DAAAA"
/datum/design/circuit/secdata
name = "security records console"
id = "sec_data"
build_path = /obj/item/weapon/circuitboard/secure_data
sort_string = "DABAA"
/datum/design/circuit/prisonmanage
name = "prisoner management console"
id = "prisonmanage"
build_path = /obj/item/weapon/circuitboard/prisoner
sort_string = "DACAA"
/datum/design/circuit/med_data
name = "medical records console"
id = "med_data"
build_path = /obj/item/weapon/circuitboard/med_data
sort_string = "FAAAA"
/datum/design/circuit/operating
name = "patient monitoring console"
id = "operating"
build_path = /obj/item/weapon/circuitboard/operating
sort_string = "FACAA"
/datum/design/circuit/scan_console
name = "DNA machine"
id = "scan_console"
build_path = /obj/item/weapon/circuitboard/scan_consolenew
sort_string = "FAGAA"
/datum/design/circuit/clonecontrol
name = "cloning control console"
id = "clonecontrol"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/cloning
sort_string = "FAGAC"
/datum/design/circuit/clonepod
name = "clone pod"
id = "clonepod"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/clonepod
sort_string = "FAGAE"
/datum/design/circuit/clonescanner
name = "cloning scanner"
id = "clonescanner"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/clonescanner
sort_string = "FAGAG"
/datum/design/circuit/crewconsole
name = "crew monitoring console"
id = "crewconsole"
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_BIO = 2)
build_path = /obj/item/weapon/circuitboard/crew
sort_string = "FAGAI"
/datum/design/circuit/teleconsole
name = "teleporter control console"
id = "teleconsole"
req_tech = list(TECH_DATA = 3, TECH_BLUESPACE = 2)
build_path = /obj/item/weapon/circuitboard/teleporter
sort_string = "HAAAA"
/datum/design/circuit/robocontrol
name = "robotics control console"
id = "robocontrol"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/robotics
sort_string = "HAAAB"
/datum/design/circuit/mechacontrol
name = "exosuit control console"
id = "mechacontrol"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/circuitboard/mecha_control
sort_string = "HAAAC"
/datum/design/circuit/rdconsole
name = "R&D control console"
id = "rdconsole"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/rdconsole
sort_string = "HAAAE"
/datum/design/circuit/aifixer
name = "AI integrity restorer"
id = "aifixer"
req_tech = list(TECH_DATA = 3, TECH_BIO = 2)
build_path = /obj/item/weapon/circuitboard/aifixer
sort_string = "HAAAF"
/datum/design/circuit/comm_monitor
name = "telecommunications monitoring console"
id = "comm_monitor"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/circuitboard/comm_monitor
sort_string = "HAACA"
/datum/design/circuit/comm_server
name = "telecommunications server monitoring console"
id = "comm_server"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/circuitboard/comm_server
sort_string = "HAACB"
/datum/design/circuit/message_monitor
name = "messaging monitor console"
id = "message_monitor"
req_tech = list(TECH_DATA = 5)
build_path = /obj/item/weapon/circuitboard/message_monitor
sort_string = "HAACC"
/datum/design/circuit/aiupload
name = "AI upload console"
id = "aiupload"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/aiupload
sort_string = "HAABA"
/datum/design/circuit/borgupload
name = "cyborg upload console"
id = "borgupload"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/borgupload
sort_string = "HAABB"
/datum/design/circuit/destructive_analyzer
name = "destructive analyzer"
id = "destructive_analyzer"
req_tech = list(TECH_DATA = 2, TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/destructive_analyzer
sort_string = "HABAA"
/datum/design/circuit/protolathe
name = "protolathe"
id = "protolathe"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/protolathe
sort_string = "HABAB"
/datum/design/circuit/circuit_imprinter
name = "circuit imprinter"
id = "circuit_imprinter"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/circuit_imprinter
sort_string = "HABAC"
/datum/design/circuit/autolathe
name = "autolathe board"
id = "autolathe"
req_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/autolathe
sort_string = "HABAD"
/datum/design/circuit/rdservercontrol
name = "R&D server control console"
id = "rdservercontrol"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/circuitboard/rdservercontrol
sort_string = "HABBA"
/datum/design/circuit/rdserver
name = "R&D server"
id = "rdserver"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/circuitboard/rdserver
sort_string = "HABBB"
/datum/design/circuit/mechfab
name = "exosuit fabricator"
id = "mechfab"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
build_path = /obj/item/weapon/circuitboard/mechfab
sort_string = "HABAE"
/datum/design/circuit/prosfab
name = "prosthetics fabricator"
id = "prosfab"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
build_path = /obj/item/weapon/circuitboard/prosthetics
sort_string = "HABAF"
/datum/design/circuit/mech_recharger
name = "mech recharger"
id = "mech_recharger"
req_tech = list(TECH_DATA = 2, TECH_POWER = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/mech_recharger
sort_string = "HACAA"
/datum/design/circuit/recharge_station
name = "cyborg recharge station"
id = "recharge_station"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/recharge_station
sort_string = "HACAC"
/datum/design/circuit/atmosalerts
name = "atmosphere alert console"
id = "atmosalerts"
build_path = /obj/item/weapon/circuitboard/atmos_alert
sort_string = "JAAAA"
/datum/design/circuit/air_management
name = "atmosphere monitoring console"
id = "air_management"
build_path = /obj/item/weapon/circuitboard/air_management
sort_string = "JAAAB"
/datum/design/circuit/rcon_console
name = "RCON remote control console"
id = "rcon_console"
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_POWER = 5)
build_path = /obj/item/weapon/circuitboard/rcon_console
sort_string = "JAAAC"
/datum/design/circuit/dronecontrol
name = "drone control console"
id = "dronecontrol"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/drone_control
sort_string = "JAAAD"
/datum/design/circuit/powermonitor
name = "power monitoring console"
id = "powermonitor"
build_path = /obj/item/weapon/circuitboard/powermonitor
sort_string = "JAAAE"
/datum/design/circuit/solarcontrol
name = "solar control console"
id = "solarcontrol"
build_path = /obj/item/weapon/circuitboard/solar_control
sort_string = "JAAAF"
/datum/design/circuit/pacman
name = "PACMAN-type generator"
id = "pacman"
req_tech = list(TECH_DATA = 3, TECH_PHORON = 3, TECH_POWER = 3, TECH_ENGINEERING = 3)
build_path = /obj/item/weapon/circuitboard/pacman
sort_string = "JBAAA"
/datum/design/circuit/superpacman
name = "SUPERPACMAN-type generator"
id = "superpacman"
req_tech = list(TECH_DATA = 3, TECH_POWER = 4, TECH_ENGINEERING = 4)
build_path = /obj/item/weapon/circuitboard/pacman/super
sort_string = "JBAAB"
/datum/design/circuit/mrspacman
name = "MRSPACMAN-type generator"
id = "mrspacman"
req_tech = list(TECH_DATA = 3, TECH_POWER = 5, TECH_ENGINEERING = 5)
build_path = /obj/item/weapon/circuitboard/pacman/mrs
sort_string = "JBAAC"
/datum/design/circuit/batteryrack
name = "cell rack PSU"
id = "batteryrack"
req_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/batteryrack
sort_string = "JBABA"
/datum/design/circuit/smes_cell
name = "'SMES' superconductive magnetic energy storage"
desc = "Allows for the construction of circuit boards used to build a SMES."
id = "smes_cell"
req_tech = list(TECH_POWER = 7, TECH_ENGINEERING = 5)
build_path = /obj/item/weapon/circuitboard/smes
sort_string = "JBABB"
/datum/design/circuit/grid_checker
name = "power grid checker"
desc = "Allows for the construction of circuit boards used to build a grid checker."
id = "grid_checker"
req_tech = list(TECH_POWER = 4, TECH_ENGINEERING = 3)
build_path = /obj/item/weapon/circuitboard/grid_checker
sort_string = "JBABC"
/datum/design/circuit/gas_heater
name = "gas heating system"
id = "gasheater"
req_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 1)
build_path = /obj/item/weapon/circuitboard/unary_atmos/heater
sort_string = "JCAAA"
/datum/design/circuit/gas_cooler
name = "gas cooling system"
id = "gascooler"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/unary_atmos/cooler
sort_string = "JCAAB"
/datum/design/circuit/secure_airlock
name = "secure airlock electronics"
desc = "Allows for the construction of a tamper-resistant airlock electronics."
id = "securedoor"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/airlock_electronics/secure
sort_string = "JDAAA"
/datum/design/circuit/ordercomp
name = "supply ordering console"
id = "ordercomp"
build_path = /obj/item/weapon/circuitboard/ordercomp
sort_string = "KAAAA"
/datum/design/circuit/supplycomp
name = "supply control console"
id = "supplycomp"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/circuitboard/supplycomp
sort_string = "KAAAB"
/datum/design/circuit/biogenerator
name = "biogenerator"
id = "biogenerator"
req_tech = list(TECH_DATA = 2)
build_path = /obj/item/weapon/circuitboard/biogenerator
sort_string = "KBAAA"
/datum/design/circuit/miningdrill
name = "mining drill head"
id = "mining drill head"
req_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
build_path = /obj/item/weapon/circuitboard/miningdrill
sort_string = "KCAAA"
/datum/design/circuit/miningdrillbrace
name = "mining drill brace"
id = "mining drill brace"
req_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
build_path = /obj/item/weapon/circuitboard/miningdrillbrace
sort_string = "KCAAB"
/datum/design/circuit/comconsole
name = "communications console"
id = "comconsole"
build_path = /obj/item/weapon/circuitboard/communications
sort_string = "LAAAA"
/datum/design/circuit/idcardconsole
name = "ID card modification console"
id = "idcardconsole"
build_path = /obj/item/weapon/circuitboard/card
sort_string = "LAAAB"
/datum/design/circuit/emp_data
name = "employment records console"
id = "emp_data"
build_path = /obj/item/weapon/circuitboard/skills
sort_string = "LAAAC"
/datum/design/circuit/mecha
req_tech = list(TECH_DATA = 3)
/datum/design/circuit/mecha/AssembleDesignName()
name = "Exosuit module circuit design ([name])"
/datum/design/circuit/mecha/AssembleDesignDesc()
desc = "Allows for the construction of \a [name] module."
/datum/design/circuit/mecha/ripley_main
name = "APLU 'Ripley' central control"
id = "ripley_main"
build_path = /obj/item/weapon/circuitboard/mecha/ripley/main
sort_string = "NAAAA"
/datum/design/circuit/mecha/ripley_peri
name = "APLU 'Ripley' peripherals control"
id = "ripley_peri"
build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals
sort_string = "NAAAB"
/datum/design/circuit/mecha/odysseus_main
name = "'Odysseus' central control"
id = "odysseus_main"
req_tech = list(TECH_DATA = 3,TECH_BIO = 2)
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main
sort_string = "NAABA"
/datum/design/circuit/mecha/odysseus_peri
name = "'Odysseus' peripherals control"
id = "odysseus_peri"
req_tech = list(TECH_DATA = 3,TECH_BIO = 2)
build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals
sort_string = "NAABB"
/datum/design/circuit/mecha/gygax_main
name = "'Gygax' central control"
id = "gygax_main"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/main
sort_string = "NAACA"
/datum/design/circuit/mecha/gygax_peri
name = "'Gygax' peripherals control"
id = "gygax_peri"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals
sort_string = "NAACB"
/datum/design/circuit/mecha/gygax_targ
name = "'Gygax' weapon control and targeting"
id = "gygax_targ"
req_tech = list(TECH_DATA = 4, TECH_COMBAT = 2)
build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting
sort_string = "NAACC"
/datum/design/circuit/mecha/durand_main
name = "'Durand' central control"
id = "durand_main"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/mecha/durand/main
sort_string = "NAADA"
/datum/design/circuit/mecha/durand_peri
name = "'Durand' peripherals control"
id = "durand_peri"
req_tech = list(TECH_DATA = 4)
build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals
sort_string = "NAADB"
/datum/design/circuit/mecha/durand_targ
name = "'Durand' weapon control and targeting"
id = "durand_targ"
req_tech = list(TECH_DATA = 4, TECH_COMBAT = 2)
build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
sort_string = "NAADC"
/datum/design/circuit/tcom
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
/datum/design/circuit/tcom/AssembleDesignName()
name = "Telecommunications machinery circuit design ([name])"
/datum/design/circuit/tcom/AssembleDesignDesc()
desc = "Allows for the construction of a telecommunications [name] circuit board."
/datum/design/circuit/tcom/server
name = "server mainframe"
id = "tcom-server"
build_path = /obj/item/weapon/circuitboard/telecomms/server
sort_string = "PAAAA"
/datum/design/circuit/tcom/processor
name = "processor unit"
id = "tcom-processor"
build_path = /obj/item/weapon/circuitboard/telecomms/processor
sort_string = "PAAAB"
/datum/design/circuit/tcom/bus
name = "bus mainframe"
id = "tcom-bus"
build_path = /obj/item/weapon/circuitboard/telecomms/bus
sort_string = "PAAAC"
/datum/design/circuit/tcom/hub
name = "hub mainframe"
id = "tcom-hub"
build_path = /obj/item/weapon/circuitboard/telecomms/hub
sort_string = "PAAAD"
/datum/design/circuit/tcom/relay
name = "relay mainframe"
id = "tcom-relay"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 4, TECH_BLUESPACE = 3)
build_path = /obj/item/weapon/circuitboard/telecomms/relay
sort_string = "PAAAE"
/datum/design/circuit/tcom/broadcaster
name = "subspace broadcaster"
id = "tcom-broadcaster"
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_BLUESPACE = 2)
build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster
sort_string = "PAAAF"
/datum/design/circuit/tcom/receiver
name = "subspace receiver"
id = "tcom-receiver"
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_BLUESPACE = 2)
build_path = /obj/item/weapon/circuitboard/telecomms/receiver
sort_string = "PAAAG"
/datum/design/circuit/tcom/exonet_node
name = "exonet node"
id = "tcom-exonet_node"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4)
build_path = /obj/item/weapon/circuitboard/telecomms/exonet_node
sort_string = "PAAAH"
/datum/design/circuit/shield
req_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
materials = list("glass" = 2000, "gold" = 1000)
/datum/design/circuit/shield/AssembleDesignName()
name = "Shield generator circuit design ([name])"
/datum/design/circuit/shield/AssembleDesignDesc()
if(!desc)
desc = "Allows for the construction of \a [name] shield generator."
/datum/design/circuit/shield/bubble
name = "bubble"
id = "shield_gen"
build_path = /obj/item/weapon/circuitboard/shield_gen
sort_string = "VAAAA"
/datum/design/circuit/shield/hull
name = "hull"
id = "shield_gen_ex"
build_path = /obj/item/weapon/circuitboard/shield_gen_ex
sort_string = "VAAAB"
/datum/design/circuit/shield/capacitor
name = "capacitor"
desc = "Allows for the construction of a shield capacitor circuit board."
id = "shield_cap"
req_tech = list(TECH_MAGNET = 3, TECH_POWER = 4)
build_path = /obj/item/weapon/circuitboard/shield_cap
sort_string = "VAAAC"
/datum/design/circuit/aicore
name = "AI core"
id = "aicore"
req_tech = list(TECH_DATA = 4, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/aicore
sort_string = "XAAAA"
/datum/design/aimodule
build_type = IMPRINTER
materials = list("glass" = 2000, "gold" = 100)
/datum/design/aimodule/AssembleDesignName()
name = "AI module design ([name])"
/datum/design/aimodule/AssembleDesignDesc()
desc = "Allows for the construction of \a '[name]' AI module."
/datum/design/aimodule/safeguard
name = "Safeguard"
id = "safeguard"
req_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
build_path = /obj/item/weapon/aiModule/safeguard
sort_string = "XABAA"
/datum/design/aimodule/onehuman
name = "OneCrewMember"
id = "onehuman"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 6)
build_path = /obj/item/weapon/aiModule/oneHuman
sort_string = "XABAB"
/datum/design/aimodule/protectstation
name = "ProtectStation"
id = "protectstation"
req_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
build_path = /obj/item/weapon/aiModule/protectStation
sort_string = "XABAC"
/datum/design/aimodule/notele
name = "TeleporterOffline"
id = "notele"
req_tech = list(TECH_DATA = 3)
build_path = /obj/item/weapon/aiModule/teleporterOffline
sort_string = "XABAD"
/datum/design/aimodule/quarantine
name = "Quarantine"
id = "quarantine"
req_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MATERIAL = 4)
build_path = /obj/item/weapon/aiModule/quarantine
sort_string = "XABAE"
/datum/design/aimodule/oxygen
name = "OxygenIsToxicToHumans"
id = "oxygen"
req_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MATERIAL = 4)
build_path = /obj/item/weapon/aiModule/oxygen
sort_string = "XABAF"
/datum/design/aimodule/freeform
name = "Freeform"
id = "freeform"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
build_path = /obj/item/weapon/aiModule/freeform
sort_string = "XABAG"
/datum/design/aimodule/reset
name = "Reset"
id = "reset"
req_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
build_path = /obj/item/weapon/aiModule/reset
sort_string = "XAAAA"
/datum/design/aimodule/purge
name = "Purge"
id = "purge"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 6)
build_path = /obj/item/weapon/aiModule/purge
sort_string = "XAAAB"
// Core modules
/datum/design/aimodule/core
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 6)
/datum/design/aimodule/core/AssembleDesignName()
name = "AI core module design ([name])"
/datum/design/aimodule/core/AssembleDesignDesc()
desc = "Allows for the construction of \a '[name]' AI core module."
/datum/design/aimodule/core/freeformcore
name = "Freeform"
id = "freeformcore"
build_path = /obj/item/weapon/aiModule/freeformcore
sort_string = "XACAA"
/datum/design/aimodule/core/asimov
name = "Asimov"
id = "asimov"
build_path = /obj/item/weapon/aiModule/asimov
sort_string = "XACAB"
/datum/design/aimodule/core/paladin
name = "P.A.L.A.D.I.N."
id = "paladin"
build_path = /obj/item/weapon/aiModule/paladin
sort_string = "XACAC"
/datum/design/aimodule/core/tyrant
name = "T.Y.R.A.N.T."
id = "tyrant"
req_tech = list(TECH_DATA = 4, TECH_ILLEGAL = 2, TECH_MATERIAL = 6)
build_path = /obj/item/weapon/aiModule/tyrant
sort_string = "XACAD"
/datum/design/item/pda
name = "PDA design"
desc = "Cheaper than whiny non-digital assistants."
id = "pda"
req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
build_path = /obj/item/device/pda
sort_string = "VAAAA"
// Cartridges
/datum/design/item/pda_cartridge
req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
/datum/design/item/pda_cartridge/AssembleDesignName()
..()
name = "PDA accessory ([item_name])"
/datum/design/item/pda_cartridge/cart_basic
id = "cart_basic"
build_path = /obj/item/weapon/cartridge
sort_string = "VBAAA"
/datum/design/item/pda_cartridge/engineering
id = "cart_engineering"
build_path = /obj/item/weapon/cartridge/engineering
sort_string = "VBAAB"
/datum/design/item/pda_cartridge/atmos
id = "cart_atmos"
build_path = /obj/item/weapon/cartridge/atmos
sort_string = "VBAAC"
/datum/design/item/pda_cartridge/medical
id = "cart_medical"
build_path = /obj/item/weapon/cartridge/medical
sort_string = "VBAAD"
/datum/design/item/pda_cartridge/chemistry
id = "cart_chemistry"
build_path = /obj/item/weapon/cartridge/chemistry
sort_string = "VBAAE"
/datum/design/item/pda_cartridge/security
id = "cart_security"
build_path = /obj/item/weapon/cartridge/security
sort_string = "VBAAF"
/datum/design/item/pda_cartridge/janitor
id = "cart_janitor"
build_path = /obj/item/weapon/cartridge/janitor
sort_string = "VBAAG"
/datum/design/item/pda_cartridge/science
id = "cart_science"
build_path = /obj/item/weapon/cartridge/signal/science
sort_string = "VBAAH"
/datum/design/item/pda_cartridge/quartermaster
id = "cart_quartermaster"
build_path = /obj/item/weapon/cartridge/quartermaster
sort_string = "VBAAI"
/datum/design/item/pda_cartridge/hop
id = "cart_hop"
build_path = /obj/item/weapon/cartridge/hop
sort_string = "VBAAJ"
/datum/design/item/pda_cartridge/hos
id = "cart_hos"
build_path = /obj/item/weapon/cartridge/hos
sort_string = "VBAAK"
/datum/design/item/pda_cartridge/ce
id = "cart_ce"
build_path = /obj/item/weapon/cartridge/ce
sort_string = "VBAAL"
/datum/design/item/pda_cartridge/cmo
id = "cart_cmo"
build_path = /obj/item/weapon/cartridge/cmo
sort_string = "VBAAM"
/datum/design/item/pda_cartridge/rd
id = "cart_rd"
build_path = /obj/item/weapon/cartridge/rd
sort_string = "VBAAN"
/datum/design/item/pda_cartridge/captain
id = "cart_captain"
build_path = /obj/item/weapon/cartridge/captain
sort_string = "VBAAO"
/datum/design/item/wirer
name = "Custom wirer tool"
id = "wirer"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
build_path = /obj/item/device/integrated_electronics/wirer
sort_string = "VBVAA"
/datum/design/item/debugger
name = "Custom circuit debugger tool"
id = "debugger"
req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 2500)
build_path = /obj/item/device/integrated_electronics/debugger
sort_string = "VBVAB"
/datum/design/item/custom_circuit_assembly
name = "Small custom assembly"
desc = "An customizable assembly for simple, small devices."
id = "assembly-small"
req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 2, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 10000)
build_path = /obj/item/device/electronic_assembly
sort_string = "VCAAA"
/datum/design/item/custom_circuit_assembly/medium
name = "Medium custom assembly"
desc = "An customizable assembly suited for more ambitious mechanisms."
id = "assembly-medium"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3, TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 20000)
build_path = /obj/item/device/electronic_assembly/medium
/datum/design/item/custom_circuit_assembly/drone
name = "Drone custom assembly"
desc = "An customizable assembly optimized for autonomous devices."
id = "assembly-drone"
req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 4, TECH_POWER = 4)
materials = list(DEFAULT_WALL_MATERIAL = 30000)
build_path = /obj/item/device/electronic_assembly/drone
/datum/design/item/custom_circuit_assembly/large
name = "Large custom assembly"
desc = "An customizable assembly for large machines."
id = "assembly-large"
req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_POWER = 4)
materials = list(DEFAULT_WALL_MATERIAL = 40000)
build_path = /obj/item/device/electronic_assembly/large
/datum/design/circuit/integrated_circuit
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
/datum/design/circuit/integrated_circuit/AssembleDesignName()
..()
name = "Custom circuitry ([item_name])"
/datum/design/circuit/integrated_circuit/AssembleDesignDesc()
if(!desc)
desc = "Allows for the construction of \a [name] custom circuit."
/datum/design/circuit/integrated_circuit/arithmetic/AssembleDesignName()
..()
name = "Custom circuitry \[Arithmetic\] ([item_name])"
/datum/design/circuit/integrated_circuit/arithmetic/addition
id = "cc-addition"
build_path = /obj/item/integrated_circuit/arithmetic/addition
sort_string = "WAAAA"
/datum/design/circuit/integrated_circuit/arithmetic/subtraction
id = "cc-subtraction"
build_path = /obj/item/integrated_circuit/arithmetic/subtraction
sort_string = "WAAAB"
/datum/design/circuit/integrated_circuit/arithmetic/multiplication
id = "cc-multiplication"
build_path = /obj/item/integrated_circuit/arithmetic/multiplication
sort_string = "WAAAC"
/datum/design/circuit/integrated_circuit/arithmetic/division
id = "cc-division"
build_path = /obj/item/integrated_circuit/arithmetic/division
sort_string = "WAAAD"
/datum/design/circuit/integrated_circuit/arithmetic/absolute
id = "cc-absolute"
build_path = /obj/item/integrated_circuit/arithmetic/absolute
sort_string = "WAAAE"
/datum/design/circuit/integrated_circuit/arithmetic/average
id = "cc-average"
build_path = /obj/item/integrated_circuit/arithmetic/average
sort_string = "WAAAF"
/datum/design/circuit/integrated_circuit/arithmetic/pi
id = "cc-pi"
build_path = /obj/item/integrated_circuit/arithmetic/pi
sort_string = "WAAAG"
/datum/design/circuit/integrated_circuit/arithmetic/random
id = "cc-random"
build_path = /obj/item/integrated_circuit/arithmetic/random
sort_string = "WAAAH"
/datum/design/circuit/integrated_circuit/converter/AssembleDesignName()
..()
name = "Custom circuitry \[Conversion\] ([item_name])"
/datum/design/circuit/integrated_circuit/converter/num2text
id = "cc-num2text"
build_path = /obj/item/integrated_circuit/converter/num2text
sort_string = "WAABA"
/datum/design/circuit/integrated_circuit/converter/text2num
id = "cc-text2num"
build_path = /obj/item/integrated_circuit/converter/text2num
sort_string = "WAABB"
/datum/design/circuit/integrated_circuit/converter/ref2text
id = "cc-ref2text"
build_path = /obj/item/integrated_circuit/converter/ref2text
sort_string = "WAABC"
/datum/design/circuit/integrated_circuit/converter/lowercase
id = "cc-lowercase"
build_path = /obj/item/integrated_circuit/converter/lowercase
sort_string = "WAABD"
/datum/design/circuit/integrated_circuit/converter/uppercase
id = "cc-uppercase"
build_path = /obj/item/integrated_circuit/converter/uppercase
sort_string = "WAABD"
/datum/design/circuit/integrated_circuit/converter/concatenatior
id = "cc-concatenatior"
build_path = /obj/item/integrated_circuit/converter/concatenatior
sort_string = "WAABC"
/datum/design/circuit/integrated_circuit/coordinate/AssembleDesignName()
..()
name = "Custom circuitry \[Coordinate\] ([item_name])"
/datum/design/circuit/integrated_circuit/coordinate/gps
id = "cc-gps"
build_path = /obj/item/integrated_circuit/gps
sort_string = "WAACA"
/datum/design/circuit/integrated_circuit/coordinate/abs_to_rel_coords
id = "cc-abs_to_rel_coords"
build_path = /obj/item/integrated_circuit/abs_to_rel_coords
sort_string = "WAACB"
/datum/design/circuit/integrated_circuit/transfer/AssembleDesignName()
..()
name = "Custom circuitry \[Transfer\] ([item_name])"
/datum/design/circuit/integrated_circuit/transfer/splitter
id = "cc-splitter"
build_path = /obj/item/integrated_circuit/transfer/splitter
sort_string = "WAADA"
/datum/design/circuit/integrated_circuit/transfer/splitter4
id = "cc-splitter4"
build_path = /obj/item/integrated_circuit/transfer/splitter/medium
sort_string = "WAADB"
/datum/design/circuit/integrated_circuit/transfer/splitter8
id = "cc-splitter8"
build_path = /obj/item/integrated_circuit/transfer/splitter/large
sort_string = "WAADC"
/datum/design/circuit/integrated_circuit/transfer/activator_splitter
id = "cc-activator_splitter"
build_path = /obj/item/integrated_circuit/transfer/activator_splitter
sort_string = "WAADD"
/datum/design/circuit/integrated_circuit/transfer/activator_splitter4
id = "cc-activator_splitter4"
build_path = /obj/item/integrated_circuit/transfer/activator_splitter/medium
sort_string = "WAADE"
/datum/design/circuit/integrated_circuit/transfer/activator_splitter8
id = "cc-activator_splitter8"
build_path = /obj/item/integrated_circuit/transfer/activator_splitter/large
sort_string = "WAADF"
/datum/design/circuit/integrated_circuit/input_output/AssembleDesignName()
..()
name = "Custom circuitry \[Input/Output\] ([item_name])"
/datum/design/circuit/integrated_circuit/input_output/button
id = "cc-button"
build_path = /obj/item/integrated_circuit/input/button
sort_string = "WAAEA"
/datum/design/circuit/integrated_circuit/input_output/numberpad
id = "cc-numberpad"
build_path = /obj/item/integrated_circuit/input/numberpad
sort_string = "WAAEB"
/datum/design/circuit/integrated_circuit/input_output/textpad
id = "cc-textpad"
build_path = /obj/item/integrated_circuit/input/textpad
sort_string = "WAAEC"
/datum/design/circuit/integrated_circuit/input_output/screen
id = "cc-screen"
build_path = /obj/item/integrated_circuit/output/screen
sort_string = "WAAED"
/datum/design/circuit/integrated_circuit/input_output/med_scanner
id = "cc-medscanner"
build_path = /obj/item/integrated_circuit/input/med_scanner
req_tech = list(TECH_MATERIAL = 2, TECH_MAGNETS = 2, TECH_BIOMED = 2)
sort_string = "WAAEE"
/datum/design/circuit/integrated_circuit/input_output/adv_med_scanner
id = "cc-advmedscanner"
build_path = /obj/item/integrated_circuit/input/adv_med_scanner
req_tech = list(TECH_MATERIAL = 2, TECH_MAGNETS = 3, TECH_BIOMED = 4)
sort_string = "WAAEF"
/datum/design/circuit/integrated_circuit/input_output/local_locator
id = "cc-locallocator"
build_path = /obj/item/integrated_circuit/input/local_locator
sort_string = "WAAEG"
/datum/design/circuit/integrated_circuit/input_output/adjacent_locator
id = "cc-adjacentlocator"
build_path = /obj/item/integrated_circuit/input/adjacent_locator
sort_string = "WAAEH"
/datum/design/circuit/integrated_circuit/input_output/signaler
id = "cc-signaler"
build_path = /obj/item/integrated_circuit/input/signaler
sort_string = "WAAEJ"
/datum/design/circuit/integrated_circuit/input_output/light
id = "cc-light"
build_path = /obj/item/integrated_circuit/output/light
sort_string = "WAAEH"
/datum/design/circuit/integrated_circuit/input_output/adv_light
id = "cc-adv_light"
build_path = /obj/item/integrated_circuit/output/light/advanced
sort_string = "WAAEI"
/datum/design/circuit/integrated_circuit/input_output/beeper
id = "cc-sound_beeper"
build_path = /obj/item/integrated_circuit/output/sound/beeper
sort_string = "WAAEJ"
/datum/design/circuit/integrated_circuit/input_output/beepsky_sound
id = "cc-sound_beepsky"
build_path = /obj/item/integrated_circuit/output/sound/beepsky
sort_string = "WAAEK"
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_ILLEGAL = 1)
/datum/design/circuit/integrated_circuit/input_output/EPv2
id = "cc-epv2"
build_path = /obj/item/integrated_circuit/input/EPv2
sort_string = "WAAEL"
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_MAGNETS = 2, TECH_BLUESPACE = 2)
/datum/design/circuit/integrated_circuit/logic/AssembleDesignName()
..()
name = "Custom circuitry \[Logic\] ([item_name])"
/datum/design/circuit/integrated_circuit/logic/binary/equals
id = "cc-equals"
build_path = /obj/item/integrated_circuit/logic/binary/equals
sort_string = "WAAFA"
/datum/design/circuit/integrated_circuit/logic/unary/not
id = "cc-not"
build_path = /obj/item/integrated_circuit/logic/unary/not
sort_string = "WAAFB"
/datum/design/circuit/integrated_circuit/logic/binary/and
id = "cc-and"
build_path = /obj/item/integrated_circuit/logic/binary/and
sort_string = "WAAFC"
/datum/design/circuit/integrated_circuit/logic/binary/or
id = "cc-or"
build_path = /obj/item/integrated_circuit/logic/binary/or
sort_string = "WAAFD"
/datum/design/circuit/integrated_circuit/logic/binary/less_than
id = "cc-less_than"
build_path = /obj/item/integrated_circuit/logic/binary/less_than
sort_string = "WAAFE"
/datum/design/circuit/integrated_circuit/logic/binary/less_than_or_equal
id = "cc-less_than_or_equal"
build_path = /obj/item/integrated_circuit/logic/binary/less_than_or_equal
sort_string = "WAAFF"
/datum/design/circuit/integrated_circuit/logic/binary/greater_than
id = "cc-greater_than"
build_path = /obj/item/integrated_circuit/logic/binary/greater_than
sort_string = "WAAFG"
/datum/design/circuit/integrated_circuit/logic/binary/greater_than_or_equal
id = "cc-greater_than_or_equal"
build_path = /obj/item/integrated_circuit/logic/binary/greater_than_or_equal
sort_string = "WAAFH"
/datum/design/circuit/integrated_circuit/manipulation/AssembleDesignName()
..()
name = "Custom circuitry \[Manipulation\] ([item_name])"
/datum/design/circuit/integrated_circuit/manipulation/weapon_firing
name = "weapon firing mechanism"
id = "cc-weapon_firing"
build_path = /obj/item/integrated_circuit/manipulation/weapon_firing
sort_string = "WAAGA"
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_COMBAT = 4)
/datum/design/circuit/integrated_circuit/manipulation/smoke
name = "smoke generator"
id = "cc-smoke"
build_path = /obj/item/integrated_circuit/manipulation/smoke
sort_string = "WAAGB"
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_BIO = 4)
/datum/design/circuit/integrated_circuit/manipulation/locomotion
name = "locomotion"
id = "cc-locomotion"
build_path = /obj/item/integrated_circuit/manipulation/locomotion
sort_string = "WAAGB"
req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3)
/datum/design/circuit/integrated_circuit/manipulation/injector
name = "injector"
id = "cc-injector"
build_path = /obj/item/integrated_circuit/manipulation/injector
sort_string = "WAAGC"
req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 3)
/datum/design/circuit/integrated_circuit/manipulation/reagent_pump
name = "reagent pump"
id = "cc-reagent_pump"
build_path = /obj/item/integrated_circuit/manipulation/reagent_pump
sort_string = "WAAGD"
req_tech = list(TECH_ENGINEERING = 1, TECH_DATA = 1, TECH_BIO = 2)
/datum/design/circuit/integrated_circuit/manipulation/reagent_storage
name = "reagent storage"
id = "cc-reagent_storage"
build_path = /obj/item/integrated_circuit/manipulation/reagent_storage
sort_string = "WAAGE"
req_tech = list(TECH_ENGINEERING = 1, TECH_DATA = 1, TECH_BIO = 1)
/datum/design/circuit/integrated_circuit/manipulation/reagent_storage_cryo
name = "cryo reagent storage"
id = "cc-reagent_storage_cryo"
build_path = /obj/item/integrated_circuit/manipulation/reagent_storage/cryo
sort_string = "WAAGF"
req_tech = list(TECH_MATERIALS = 3, TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
/datum/design/circuit/integrated_circuit/memory/AssembleDesignName()
..()
name = "Custom circuitry \[Memory\] ([item_name])"
/datum/design/circuit/integrated_circuit/memory
id = "cc-memory"
build_path = /obj/item/integrated_circuit/memory
sort_string = "WAAHA"
/datum/design/circuit/integrated_circuit/memory/medium
id = "cc-memory4"
build_path = /obj/item/integrated_circuit/memory/medium
sort_string = "WAAHB"
/datum/design/circuit/integrated_circuit/memory/large
id = "cc-memory8"
build_path = /obj/item/integrated_circuit/memory/large
sort_string = "WAAHC"
/datum/design/circuit/integrated_circuit/memory/huge
id = "cc-memory16"
build_path = /obj/item/integrated_circuit/memory/huge
sort_string = "WAAHD"
/datum/design/circuit/integrated_circuit/memory/constant
id = "cc-constant"
build_path = /obj/item/integrated_circuit/memory/constant
sort_string = "WAAHH"
/datum/design/circuit/integrated_circuit/time/AssembleDesignName()
..()
name = "Custom circuitry \[Time\] ([item_name])"
/datum/design/circuit/integrated_circuit/time/delay
id = "cc-delay"
build_path = /obj/item/integrated_circuit/time/delay
sort_string = "WAAIA"
/datum/design/circuit/integrated_circuit/time/delay/five_sec
id = "cc-five_sec_delay"
build_path = /obj/item/integrated_circuit/time/delay/five_sec
sort_string = "WAAIB"
/datum/design/circuit/integrated_circuit/time/delay/one_sec
id = "cc-one_sec_delay"
build_path = /obj/item/integrated_circuit/time/delay/one_sec
sort_string = "WAAIC"
/datum/design/circuit/integrated_circuit/time/delay/half_sec
id = "cc-half_sec_delay"
build_path = /obj/item/integrated_circuit/time/delay/half_sec
sort_string = "WAAID"
/datum/design/circuit/integrated_circuit/time/delay/tenth_sec
id = "cc-tenth_sec_delay"
build_path = /obj/item/integrated_circuit/time/delay/tenth_sec
sort_string = "WAAIF"
/datum/design/circuit/integrated_circuit/time/delay/custom
id = "cc-custom_delay"
build_path = /obj/item/integrated_circuit/time/delay/custom
sort_string = "WAAIG"
/datum/design/circuit/integrated_circuit/time/ticker
id = "cc-ticker"
build_path = /obj/item/integrated_circuit/time/ticker
sort_string = "WAAIH"
/datum/design/circuit/integrated_circuit/time/ticker/slow
id = "cc-ticker_slow"
build_path = /obj/item/integrated_circuit/time/ticker/slow
sort_string = "WAAII"
/datum/design/circuit/integrated_circuit/time/ticker/fast
id = "cc-ticker_fast"
build_path = /obj/item/integrated_circuit/time/ticker/fast
sort_string = "WAAIJ"
req_tech = list(TECH_ENGINEERING = 4, TECH_DATA = 4)
/datum/design/circuit/integrated_circuit/time/clock
id = "cc-clock"
build_path = /obj/item/integrated_circuit/time/clock
sort_string = "WAAIK"
/* Uncomment if someone makes these buildable
/datum/design/circuit/general_alert
name = "general alert console"
id = "general_alert"
build_path = /obj/item/weapon/circuitboard/general_alert
// Removal of loyalty implants. Can't think of a way to add this to the config option.
/datum/design/item/implant/loyalty
name = "loyalty"
id = "implant_loyal"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3)
materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 7000)
build_path = /obj/item/weapon/implantcase/loyalty"
/datum/design/rust_core_control
name = "Circuit Design (RUST core controller)"
desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine."
id = "rust_core_control"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list("glass" = 2000, "sacid" = 20)
build_path = "/obj/item/weapon/circuitboard/rust_core_control"
datum/design/rust_fuel_control
name = "Circuit Design (RUST fuel controller)"
desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine."
id = "rust_fuel_control"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = IMPRINTER
materials = list("glass" = 2000, "sacid" = 20)
build_path = "/obj/item/weapon/circuitboard/rust_fuel_control"
datum/design/rust_fuel_port
name = "Internal circuitry (RUST fuel port)"
desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine."
id = "rust_fuel_port"
req_tech = list("engineering" = 4, "materials" = 5)
build_type = IMPRINTER
materials = list("glass" = 2000, "sacid" = 20, "uranium" = 3000)
build_path = "/obj/item/weapon/module/rust_fuel_port"
datum/design/rust_fuel_compressor
name = "Circuit Design (RUST fuel compressor)"
desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine."
id = "rust_fuel_compressor"
req_tech = list("materials" = 6, "phorontech" = 4)
build_type = IMPRINTER
materials = list("glass" = 2000, "sacid" = 20, "phoron" = 3000, "diamond" = 1000)
build_path = "/obj/item/weapon/module/rust_fuel_compressor"
datum/design/rust_core
name = "Internal circuitry (RUST tokamak core)"
desc = "The circuit board that for a RUST-pattern tokamak fusion core."
id = "pacman"
req_tech = list(bluespace = 3, phorontech = 4, magnets = 5, powerstorage = 6)
build_type = IMPRINTER
materials = list("glass" = 2000, "sacid" = 20, "phoron" = 3000, "diamond" = 2000)
build_path = "/obj/item/weapon/circuitboard/rust_core"
datum/design/rust_injector
name = "Internal circuitry (RUST tokamak core)"
desc = "The circuit board that for a RUST-pattern particle accelerator."
id = "pacman"
req_tech = list(powerstorage = 3, engineering = 4, phorontech = 4, materials = 6)
build_type = IMPRINTER
materials = list("glass" = 2000, "sacid" = 20, "phoron" = 3000, "uranium" = 2000)
build_path = "/obj/item/weapon/circuitboard/rust_core"
*/