/obj/item/circuitboard/machine/sleeper name = "Sleeper (Machine Board)" build_path = /obj/machinery/sleeper req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 2) /obj/item/circuitboard/machine/stasis name = "Lifeform Stasis Unit (Machine Board)" build_path = /obj/machinery/stasis req_components = list( /obj/item/stack/cable_coil = 3, /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/capacitor = 1) /obj/item/circuitboard/machine/sleeper/syndie name = "Syndicate Sleeper (Machine Board)" build_path = /obj/machinery/sleeper/syndie /obj/item/circuitboard/machine/vr_sleeper name = "VR Sleeper (Machine Board)" build_path = /obj/machinery/vr_sleeper req_components = list( /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 1, /obj/item/stock_parts/scanning_module = 2, /obj/item/stack/sheet/glass = 2) /obj/item/circuitboard/machine/announcement_system name = "Announcement System (Machine Board)" build_path = /obj/machinery/announcement_system req_components = list( /obj/item/stack/cable_coil = 2, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/autolathe name = "Autolathe (Machine Board)" build_path = /obj/machinery/autolathe req_components = list( /obj/item/stock_parts/matter_bin = 3, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/bloodbankgen name = "Blood Bank Generator (Machine Board)" build_path = /obj/machinery/bloodbankgen req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 5, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/clonepod name = "Clone Pod (Machine Board)" build_path = /obj/machinery/clonepod req_components = list( /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/scanning_module = 2, /obj/item/stock_parts/manipulator = 2, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/clonepod/experimental name = "Experimental Clone Pod (Machine Board)" build_path = /obj/machinery/clonepod/experimental /obj/item/circuitboard/machine/abductor name = "alien board (Report This)" icon_state = "abductor_mod" /obj/item/circuitboard/machine/clockwork name = "clockwork board (Report This)" icon_state = "clock_mod" /obj/item/circuitboard/machine/clonescanner name = "Cloning Scanner (Machine Board)" build_path = /obj/machinery/dna_scannernew req_components = list( /obj/item/stock_parts/scanning_module = 1, /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/holopad name = "AI Holopad (Machine Board)" build_path = /obj/machinery/holopad req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE //wew lad /obj/item/circuitboard/machine/launchpad name = "Bluespace Launchpad (Machine Board)" build_path = /obj/machinery/launchpad req_components = list( /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/stock_parts/manipulator = 1) def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/limbgrower name = "Limb Grower (Machine Board)" build_path = /obj/machinery/limbgrower req_components = list( /obj/item/stock_parts/manipulator = 1, /obj/item/reagent_containers/glass/beaker = 2, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/quantumpad name = "Quantum Pad (Machine Board)" build_path = /obj/machinery/quantumpad req_components = list( /obj/item/stack/ore/bluespace_crystal = 1, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 1) def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/recharger name = "Weapon Recharger (Machine Board)" build_path = /obj/machinery/recharger req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/cell_charger name = "Cell Charger (Machine Board)" build_path = /obj/machinery/cell_charger req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/cyborgrecharger name = "Cyborg Recharger (Machine Board)" build_path = /obj/machinery/recharge_station req_components = list( /obj/item/stock_parts/capacitor = 2, /obj/item/stock_parts/cell = 1, /obj/item/stock_parts/manipulator = 1) def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high) /obj/item/circuitboard/machine/recycler name = "Recycler (Machine Board)" build_path = /obj/machinery/recycler req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/space_heater name = "Space Heater (Machine Board)" build_path = /obj/machinery/space_heater req_components = list( /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/capacitor = 1, /obj/item/stack/cable_coil = 3) needs_anchored = FALSE /obj/item/circuitboard/machine/telecomms/broadcaster name = "Subspace Broadcaster (Machine Board)" build_path = /obj/machinery/telecomms/broadcaster req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 1, /obj/item/stock_parts/subspace/filter = 1, /obj/item/stock_parts/subspace/crystal = 1, /obj/item/stock_parts/micro_laser = 2) /obj/item/circuitboard/machine/telecomms/bus name = "Bus Mainframe (Machine Board)" build_path = /obj/machinery/telecomms/bus req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 1, /obj/item/stock_parts/subspace/filter = 1) /obj/item/circuitboard/machine/telecomms/hub name = "Hub Mainframe (Machine Board)" build_path = /obj/machinery/telecomms/hub req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/subspace/filter = 2) /obj/item/circuitboard/machine/telecomms/processor name = "Processor Unit (Machine Board)" build_path = /obj/machinery/telecomms/processor req_components = list( /obj/item/stock_parts/manipulator = 3, /obj/item/stock_parts/subspace/filter = 1, /obj/item/stock_parts/subspace/treatment = 2, /obj/item/stock_parts/subspace/analyzer = 1, /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/subspace/amplifier = 1) /obj/item/circuitboard/machine/telecomms/receiver name = "Subspace Receiver (Machine Board)" build_path = /obj/machinery/telecomms/receiver req_components = list( /obj/item/stock_parts/subspace/ansible = 1, /obj/item/stock_parts/subspace/filter = 1, /obj/item/stock_parts/manipulator = 2, /obj/item/stock_parts/micro_laser = 1) /obj/item/circuitboard/machine/telecomms/relay name = "Relay Mainframe (Machine Board)" build_path = /obj/machinery/telecomms/relay req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/subspace/filter = 2) /obj/item/circuitboard/machine/telecomms/server name = "Telecommunication Server (Machine Board)" build_path = /obj/machinery/telecomms/server req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 1, /obj/item/stock_parts/subspace/filter = 1) /obj/item/circuitboard/machine/teleporter_hub name = "Teleporter Hub (Machine Board)" build_path = /obj/machinery/teleport/hub req_components = list( /obj/item/stack/ore/bluespace_crystal = 3, /obj/item/stock_parts/matter_bin = 1) def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/teleporter_station name = "Teleporter Station (Machine Board)" build_path = /obj/machinery/teleport/station req_components = list( /obj/item/stack/ore/bluespace_crystal = 2, /obj/item/stock_parts/capacitor = 2, /obj/item/stack/sheet/glass = 1) def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/vendor name = "Booze-O-Mat Vendor (Machine Board)" desc = "You can turn the \"brand selection\" dial using a screwdriver." build_path = /obj/machinery/vending/boozeomat req_components = list(/obj/item/vending_refill/boozeomat = 1) var/static/list/vending_names_paths = list( /obj/machinery/vending/boozeomat = "Booze-O-Mat", /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", /obj/machinery/vending/snack = "Getmore Chocolate Corp", /obj/machinery/vending/cola = "Robust Softdrinks", /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", /obj/machinery/vending/games = "\improper Good Clean Fun", /obj/machinery/vending/autodrobe = "AutoDrobe", /obj/machinery/vending/assist = "Vendomat", /obj/machinery/vending/engivend = "Engi-Vend", /obj/machinery/vending/tool ="YouTool", /obj/machinery/vending/sustenance = "Sustenance Vendor", /obj/machinery/vending/dinnerware = "Plasteel Chef's Dinnerware Vendor", /obj/machinery/vending/cart = "PTech", /obj/machinery/vending/hydronutrients = "NutriMax", /obj/machinery/vending/hydroseeds = "MegaSeed Servitor", /obj/machinery/vending/wardrobe/sec_wardrobe = "SecDrobe", /obj/machinery/vending/wardrobe/medi_wardrobe = "MediDrobe", /obj/machinery/vending/wardrobe/engi_wardrobe = "EngiDrobe", /obj/machinery/vending/wardrobe/atmos_wardrobe = "AtmosDrobe", /obj/machinery/vending/wardrobe/cargo_wardrobe = "CargoDrobe", /obj/machinery/vending/wardrobe/robo_wardrobe = "RoboDrobe", /obj/machinery/vending/wardrobe/science_wardrobe = "SciDrobe", /obj/machinery/vending/wardrobe/hydro_wardrobe = "HyDrobe", /obj/machinery/vending/wardrobe/curator_wardrobe = "CuraDrobe", /obj/machinery/vending/wardrobe/bar_wardrobe = "BarDrobe", /obj/machinery/vending/wardrobe/chef_wardrobe = "ChefDrobe", /obj/machinery/vending/wardrobe/jani_wardrobe = "JaniDrobe", /obj/machinery/vending/wardrobe/law_wardrobe = "LawDrobe", /obj/machinery/vending/wardrobe/chap_wardrobe = "ChapDrobe", /obj/machinery/vending/wardrobe/chem_wardrobe = "ChemDrobe", /obj/machinery/vending/wardrobe/gene_wardrobe = "GeneDrobe", /obj/machinery/vending/wardrobe/viro_wardrobe = "ViroDrobe", /obj/machinery/vending/clothing = "ClothesMate", /obj/machinery/vending/medical = "NanoMed Plus", /obj/machinery/vending/wallmed = "NanoMed", /obj/machinery/vending/kink = "\improper KinkMate", /obj/machinery/vending/mealdor = "Meal Vendor", /obj/machinery/vending/gato = "GATO Vending Machine") /obj/item/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) var/choice = show_radial_menu(user, src, GLOB.vending_m_choices, radius = 46, require_near = TRUE, tooltips = TRUE) if(!choice) return var/static/list/vendinglist = GLOB.vending_m_choices var/choiceposition = vendinglist.Find(choice) if(!choiceposition) return var/typepath = GLOB.vending_machines[choiceposition] set_type(typepath) to_chat(user, "You set the board to \"[choice]\".") else return ..() /obj/item/circuitboard/machine/vendor/proc/set_type(obj/machinery/vending/typepath) build_path = typepath name = "[vending_names_paths[build_path]] Vendor (Machine Board)" req_components = list(initial(typepath.refill_canister) = 1) /obj/item/circuitboard/machine/vendor/apply_default_parts(obj/machinery/M) for(var/typepath in vending_names_paths) if(istype(M, typepath)) set_type(typepath) break return ..() /obj/item/circuitboard/machine/mech_recharger name = "Mechbay Recharger (Machine Board)" build_path = /obj/machinery/mech_bay_recharge_port req_components = list( /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/capacitor = 5) /obj/item/circuitboard/machine/mechfab name = "Exosuit Fabricator (Machine Board)" build_path = /obj/machinery/mecha_part_fabricator req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/cryo_tube name = "Cryotube (Machine Board)" build_path = /obj/machinery/atmospherics/components/unary/cryo_cell req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 4) /obj/item/circuitboard/machine/thermomachine name = "Thermomachine (Machine Board)" desc = "You can use a screwdriver to switch between heater and freezer and a multitool to switch pipe layers." var/pipe_layer = PIPING_LAYER_DEFAULT req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/micro_laser = 2, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 1) #define PATH_FREEZER /obj/machinery/atmospherics/components/unary/thermomachine/freezer #define PATH_HEATER /obj/machinery/atmospherics/components/unary/thermomachine/heater /obj/item/circuitboard/machine/thermomachine/Initialize() . = ..() if(!build_path) if(prob(50)) name = "Freezer (Machine Board)" build_path = PATH_FREEZER else name = "Heater (Machine Board)" build_path = PATH_HEATER /obj/item/circuitboard/machine/thermomachine/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) var/obj/item/circuitboard/new_type var/new_setting switch(build_path) if(PATH_FREEZER) new_type = /obj/item/circuitboard/machine/thermomachine/heater new_setting = "Heater" if(PATH_HEATER) new_type = /obj/item/circuitboard/machine/thermomachine/freezer new_setting = "Freezer" name = initial(new_type.name) build_path = initial(new_type.build_path) I.play_tool_sound(src) to_chat(user, "You change the circuitboard setting to \"[new_setting]\".") return if(I.tool_behaviour == TOOL_MULTITOOL) pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1) to_chat(user, "You change the circuitboard to layer [pipe_layer].") return . = ..() /obj/item/circuitboard/machine/thermomachine/examine() . = ..() . += "It is set to layer [pipe_layer]." /obj/item/circuitboard/machine/thermomachine/heater name = "Heater (Machine Board)" build_path = PATH_HEATER /obj/item/circuitboard/machine/thermomachine/freezer name = "Freezer (Machine Board)" build_path = PATH_FREEZER #undef PATH_FREEZER #undef PATH_HEATER /obj/item/circuitboard/machine/deep_fryer name = "circuit board (Deep Fryer)" build_path = /obj/machinery/deepfryer req_components = list(/obj/item/stock_parts/micro_laser = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/gibber name = "Gibber (Machine Board)" build_path = /obj/machinery/gibber req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/monkey_recycler name = "Monkey Recycler (Machine Board)" build_path = /obj/machinery/monkey_recycler req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/processor name = "Food Processor (Machine Board)" build_path = /obj/machinery/processor req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) if(build_path == /obj/machinery/processor) name = "Slime Processor (Machine Board)" build_path = /obj/machinery/processor/slime to_chat(user, "Name protocols successfully updated.") else name = "Food Processor (Machine Board)" build_path = /obj/machinery/processor to_chat(user, "Defaulting name protocols.") else return ..() /obj/item/circuitboard/machine/processor/slime name = "Slime Processor (Machine Board)" build_path = /obj/machinery/processor/slime /obj/item/circuitboard/machine/smartfridge name = "Smartfridge (Machine Board)" build_path = /obj/machinery/smartfridge req_components = list(/obj/item/stock_parts/matter_bin = 1) var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge = "plant produce", /obj/machinery/smartfridge/food = "food", /obj/machinery/smartfridge/drinks = "drinks", /obj/machinery/smartfridge/extract = "slimes", /obj/machinery/smartfridge/organ = "organs", /obj/machinery/smartfridge/chemistry = "chems", /obj/machinery/smartfridge/chemistry/virology = "viruses", /obj/machinery/smartfridge/disks = "disks") needs_anchored = FALSE /obj/item/circuitboard/machine/smartfridge/Initialize(mapload, new_type) if(new_type) build_path = new_type return ..() /obj/item/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) var/position = fridges_name_paths.Find(build_path, fridges_name_paths) position = (position == fridges_name_paths.len) ? 1 : (position + 1) build_path = fridges_name_paths[position] to_chat(user, "You set the board to [fridges_name_paths[build_path]].") else return ..() /obj/item/circuitboard/machine/smartfridge/examine(mob/user) . = ..() . += "[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it." /obj/item/circuitboard/machine/biogenerator name = "Biogenerator (Machine Board)" build_path = /obj/machinery/biogenerator req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/plantgenes name = "Plant DNA Manipulator (Machine Board)" build_path = /obj/machinery/plantgenes req_components = list( /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1, /obj/item/stock_parts/scanning_module = 1) /obj/item/circuitboard/machine/plantgenes/vault name = "alien board (Plant DNA Manipulator)" icon_state = "abductor_mod" // It wasn't made by actual abductors race, so no abductor tech here. def_components = list( /obj/item/stock_parts/manipulator = /obj/item/stock_parts/manipulator/femto, /obj/item/stock_parts/micro_laser = /obj/item/stock_parts/micro_laser/quadultra, /obj/item/stock_parts/scanning_module = /obj/item/stock_parts/scanning_module/triphasic) /obj/item/circuitboard/machine/hydroponics name = "Hydroponics Tray (Machine Board)" build_path = /obj/machinery/hydroponics/constructable req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/seed_extractor name = "Seed Extractor (Machine Board)" build_path = /obj/machinery/seed_extractor req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/ore_redemption name = "Ore Redemption (Machine Board)" build_path = /obj/machinery/mineral/ore_redemption req_components = list( /obj/item/stack/sheet/glass = 1, /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/assembly/igniter = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/mining_equipment_vendor name = "Mining Equipment Vendor (Machine Board)" build_path = /obj/machinery/mineral/equipment_vendor req_components = list( /obj/item/stack/sheet/glass = 1, /obj/item/stock_parts/matter_bin = 3) /obj/item/circuitboard/machine/mining_equipment_vendor/golem name = "Golem Ship Equipment Vendor (Machine Board)" build_path = /obj/machinery/mineral/equipment_vendor/golem /obj/item/circuitboard/machine/ntnet_relay name = "NTNet Relay (Machine Board)" build_path = /obj/machinery/ntnet_relay req_components = list( /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/subspace/filter = 1) /obj/item/circuitboard/machine/pacman name = "PACMAN-type Generator (Machine Board)" build_path = /obj/machinery/power/port_gen/pacman req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/pacman/super name = "SUPERPACMAN-type Generator (Machine Board)" build_path = /obj/machinery/power/port_gen/pacman/super /obj/item/circuitboard/machine/pacman/mrs name = "MRSPACMAN-type Generator (Machine Board)" build_path = /obj/machinery/power/port_gen/pacman/mrs /obj/item/circuitboard/machine/rtg name = "RTG (Machine Board)" build_path = /obj/machinery/power/rtg req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/capacitor = 1, /obj/item/stack/sheet/mineral/uranium = 10) // We have no Pu-238, and this is the closest thing to it. /obj/item/circuitboard/machine/rtg/advanced name = "Advanced RTG (Machine Board)" build_path = /obj/machinery/power/rtg/advanced req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/mineral/uranium = 10, /obj/item/stack/sheet/mineral/plasma = 5) /obj/item/circuitboard/machine/abductor/core name = "alien board (Void Core)" build_path = /obj/machinery/power/rtg/abductor req_components = list( /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/cell/infinite/abductor = 1) def_components = list( /obj/item/stock_parts/capacitor = /obj/item/stock_parts/capacitor/quadratic, /obj/item/stock_parts/micro_laser = /obj/item/stock_parts/micro_laser/quadultra) /obj/item/circuitboard/machine/emitter name = "Emitter (Machine Board)" build_path = /obj/machinery/power/emitter req_components = list( /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/smes name = "SMES (Machine Board)" build_path = /obj/machinery/power/smes req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/cell = 5, /obj/item/stock_parts/capacitor = 1) def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high/empty) /obj/item/circuitboard/machine/rad_collector name = "Radiation Collector (Machine Board)" build_path = /obj/machinery/power/rad_collector req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/matter_bin = 1, /obj/item/stack/sheet/plasmarglass = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/tesla_coil name = "Tesla Controller (Machine Board)" desc = "You can use a screwdriver to switch between Research and Power Generation." build_path = /obj/machinery/power/tesla_coil req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE #define PATH_POWERCOIL /obj/machinery/power/tesla_coil/power #define PATH_RPCOIL /obj/machinery/power/tesla_coil/research /obj/item/circuitboard/machine/tesla_coil/Initialize() . = ..() if(build_path) build_path = PATH_POWERCOIL /obj/item/circuitboard/machine/tesla_coil/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) var/obj/item/circuitboard/new_type var/new_setting switch(build_path) if(PATH_POWERCOIL) new_type = /obj/item/circuitboard/machine/tesla_coil/research new_setting = "Research" if(PATH_RPCOIL) new_type = /obj/item/circuitboard/machine/tesla_coil/power new_setting = "Power" name = initial(new_type.name) build_path = initial(new_type.build_path) I.play_tool_sound(src) to_chat(user, "You change the circuitboard setting to \"[new_setting]\".") else return ..() /obj/item/circuitboard/machine/tesla_coil/power name = "Tesla Coil (Machine Board)" build_path = PATH_POWERCOIL /obj/item/circuitboard/machine/tesla_coil/research name = "Tesla Corona Researcher (Machine Board)" build_path = PATH_RPCOIL #undef PATH_POWERCOIL #undef PATH_RPCOIL /obj/item/circuitboard/machine/grounding_rod name = "Grounding Rod (Machine Board)" build_path = /obj/machinery/power/grounding_rod req_components = list(/obj/item/stock_parts/capacitor = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/power_compressor name = "Power Compressor (Machine Board)" build_path = /obj/machinery/power/compressor req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/manipulator = 6) /obj/item/circuitboard/machine/power_turbine name = "Power Turbine (Machine Board)" build_path = /obj/machinery/power/turbine req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/capacitor = 6) /obj/item/circuitboard/machine/chem_dispenser name = "Chem Dispenser (Machine Board)" build_path = /obj/machinery/chem_dispenser req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1, /obj/item/stock_parts/cell = 1) def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high) needs_anchored = FALSE /obj/item/circuitboard/machine/chem_dispenser/drinks name = "Soda Dispenser (Machine Board)" build_path = /obj/machinery/chem_dispenser/drinks /obj/item/circuitboard/machine/chem_dispenser/drinks/beer name = "Booze Dispenser (Machine Board)" build_path = /obj/machinery/chem_dispenser/drinks/beer /obj/item/circuitboard/machine/smoke_machine name = "Smoke Machine (Machine Board)" build_path = /obj/machinery/smoke_machine req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1, /obj/item/stock_parts/cell = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/chem_heater name = "Chemical Heater (Machine Board)" build_path = /obj/machinery/chem_heater req_components = list( /obj/item/stock_parts/micro_laser = 1, /obj/item/stack/sheet/glass = 1) /obj/item/circuitboard/machine/chem_master name = "ChemMaster 3000 (Machine Board)" build_path = /obj/machinery/chem_master desc = "You can turn the \"mode selection\" dial using a screwdriver." req_components = list( /obj/item/reagent_containers/glass/beaker = 2, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/chem_master/attackby(obj/item/I, mob/user, params) if(I.tool_behaviour == TOOL_SCREWDRIVER) var/new_name = "ChemMaster" var/new_path = /obj/machinery/chem_master if(build_path == /obj/machinery/chem_master) new_name = "CondiMaster" new_path = /obj/machinery/chem_master/condimaster build_path = new_path name = "[new_name] 3000 (Machine Board)" to_chat(user, "You change the circuit board setting to \"[new_name]\".") else return ..() /obj/item/circuitboard/machine/reagentgrinder name = "Machine Design (All-In-One Grinder)" build_path = /obj/machinery/reagentgrinder/constructed req_components = list( /obj/item/stock_parts/manipulator = 1) needs_anchored = FALSE /obj/item/circuitboard/machine/chem_master/condi name = "CondiMaster 3000 (Machine Board)" build_path = /obj/machinery/chem_master/condimaster /obj/item/circuitboard/machine/circuit_imprinter name = "Circuit Imprinter (Machine Board)" build_path = /obj/machinery/rnd/production/circuit_imprinter req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/reagent_containers/glass/beaker = 2) /obj/item/circuitboard/machine/circuit_imprinter/department name = "Departmental Circuit Imprinter (Machine Board)" build_path = /obj/machinery/rnd/production/circuit_imprinter/department /obj/item/circuitboard/machine/circuit_imprinter/department/science name = "Departmental Circuit Imprinter - Science (Machine Board)" build_path = /obj/machinery/rnd/production/circuit_imprinter/department/science /obj/item/circuitboard/machine/destructive_analyzer name = "Destructive Analyzer (Machine Board)" build_path = /obj/machinery/rnd/destructive_analyzer req_components = list( /obj/item/stock_parts/scanning_module = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/micro_laser = 1) /obj/item/circuitboard/machine/experimentor name = "E.X.P.E.R.I-MENTOR (Machine Board)" build_path = /obj/machinery/rnd/experimentor req_components = list( /obj/item/stock_parts/scanning_module = 1, /obj/item/stock_parts/manipulator = 2, /obj/item/stock_parts/micro_laser = 2) /obj/item/circuitboard/machine/nanite_chamber name = "Nanite Chamber (Machine Board)" build_path = /obj/machinery/nanite_chamber req_components = list( /obj/item/stock_parts/scanning_module = 2, /obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/manipulator = 1) /obj/item/circuitboard/machine/public_nanite_chamber name = "Public Nanite Chamber (Machine Board)" build_path = /obj/machinery/public_nanite_chamber var/cloud_id = 1 req_components = list( /obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/manipulator = 1) /obj/item/circuitboard/machine/public_nanite_chamber/multitool_act(mob/living/user) var/new_cloud = input("Set the public nanite chamber's Cloud ID (1-100).", "Cloud ID", cloud_id) as num|null if(new_cloud == null) return cloud_id = CLAMP(round(new_cloud, 1), 1, 100) /obj/item/circuitboard/machine/public_nanite_chamber/examine(mob/user) . = ..() . += "Cloud ID is currently set to [cloud_id]." /obj/item/circuitboard/machine/nanite_program_hub name = "Nanite Program Hub (Machine Board)" build_path = /obj/machinery/nanite_program_hub req_components = list( /obj/item/stock_parts/matter_bin = 1, /obj/item/stock_parts/manipulator = 1) /obj/item/circuitboard/machine/nanite_programmer name = "Nanite Programmer (Machine Board)" build_path = /obj/machinery/nanite_programmer req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/scanning_module = 1) /obj/item/circuitboard/machine/protolathe name = "Protolathe (Machine Board)" build_path = /obj/machinery/rnd/production/protolathe req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/manipulator = 2, /obj/item/reagent_containers/glass/beaker = 2) /obj/item/circuitboard/machine/protolathe/department name = "Departmental Protolathe (Machine Board)" build_path = /obj/machinery/rnd/production/protolathe/department /obj/item/circuitboard/machine/protolathe/department/cargo name = "Departmental Protolathe (Machine Board) - Cargo" build_path = /obj/machinery/rnd/production/protolathe/department/cargo /obj/item/circuitboard/machine/protolathe/department/engineering name = "Departmental Protolathe (Machine Board) - Engineering" build_path = /obj/machinery/rnd/production/protolathe/department/engineering /obj/item/circuitboard/machine/protolathe/department/medical name = "Departmental Protolathe (Machine Board) - Medical" build_path = /obj/machinery/rnd/production/protolathe/department/medical /obj/item/circuitboard/machine/protolathe/department/science name = "Departmental Protolathe (Machine Board) - Science" build_path = /obj/machinery/rnd/production/protolathe/department/science /obj/item/circuitboard/machine/protolathe/department/security name = "Departmental Protolathe (Machine Board) - Security" build_path = /obj/machinery/rnd/production/protolathe/department/security /obj/item/circuitboard/machine/protolathe/department/service name = "Departmental Protolathe - Service (Machine Board)" build_path = /obj/machinery/rnd/production/protolathe/department/service /obj/item/circuitboard/machine/techfab name = "\improper Techfab (Machine Board)" build_path = /obj/machinery/rnd/production/techfab req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/manipulator = 2, /obj/item/reagent_containers/glass/beaker = 2) /obj/item/circuitboard/machine/techfab/department name = "\improper Departmental Techfab (Machine Board)" build_path = /obj/machinery/rnd/production/techfab/department /obj/item/circuitboard/machine/techfab/department/cargo name = "\improper Departmental Techfab (Machine Board) - Cargo" build_path = /obj/machinery/rnd/production/techfab/department/cargo /obj/item/circuitboard/machine/techfab/department/engineering name = "\improper Departmental Techfab (Machine Board) - Engineering" build_path = /obj/machinery/rnd/production/techfab/department/engineering /obj/item/circuitboard/machine/techfab/department/medical name = "\improper Departmental Techfab (Machine Board) - Medical" build_path = /obj/machinery/rnd/production/techfab/department/medical /obj/item/circuitboard/machine/techfab/department/science name = "\improper Departmental Techfab (Machine Board) - Science" build_path = /obj/machinery/rnd/production/techfab/department/science /obj/item/circuitboard/machine/techfab/department/security name = "\improper Departmental Techfab (Machine Board) - Security" build_path = /obj/machinery/rnd/production/techfab/department/security /obj/item/circuitboard/machine/techfab/department/service name = "\improper Departmental Techfab - Service (Machine Board)" build_path = /obj/machinery/rnd/production/techfab/department/service /obj/item/circuitboard/machine/rdserver name = "R&D Server (Machine Board)" build_path = /obj/machinery/rnd/server req_components = list( /obj/item/stack/cable_coil = 2, /obj/item/stock_parts/scanning_module = 1) /obj/item/circuitboard/machine/bsa/back name = "Bluespace Artillery Generator (Machine Board)" build_path = /obj/machinery/bsa/back //No freebies! req_components = list( /obj/item/stock_parts/capacitor/quadratic = 5, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/bsa/middle name = "Bluespace Artillery Fusor (Machine Board)" build_path = /obj/machinery/bsa/middle req_components = list( /obj/item/stack/ore/bluespace_crystal = 20, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/bsa/front name = "Bluespace Artillery Bore (Machine Board)" build_path = /obj/machinery/bsa/front req_components = list( /obj/item/stock_parts/manipulator/femto = 5, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/dna_vault name = "DNA Vault (Machine Board)" build_path = /obj/machinery/dna_vault //No freebies! req_components = list( /obj/item/stock_parts/capacitor/super = 5, /obj/item/stock_parts/manipulator/pico = 5, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/microwave name = "Microwave (Machine Board)" build_path = /obj/machinery/microwave req_components = list( /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/matter_bin = 1, /obj/item/stack/cable_coil = 2, /obj/item/stack/sheet/glass = 2) needs_anchored = FALSE /obj/item/circuitboard/machine/vending/donksofttoyvendor name = "Donksoft Toy Vendor (Machine Board)" build_path = /obj/machinery/vending/donksofttoyvendor req_components = list( /obj/item/stack/sheet/glass = 1, /obj/item/vending_refill/donksoft = 1) /obj/item/circuitboard/machine/vending/syndicatedonksofttoyvendor name = "Syndicate Donksoft Toy Vendor (Machine Board)" build_path = /obj/machinery/vending/toyliberationstation req_components = list( /obj/item/stack/sheet/glass = 1, /obj/item/vending_refill/donksoft = 1) /obj/item/circuitboard/machine/dish_drive name = "Dish Drive (Machine Board)" build_path = /obj/machinery/dish_drive req_components = list( /obj/item/stack/sheet/glass = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/matter_bin = 2) var/suction = TRUE var/transmit = TRUE needs_anchored = FALSE /obj/item/circuitboard/machine/dish_drive/examine(mob/user) . = ..() . += "Its suction function is [suction ? "enabled" : "disabled"]. Use it in-hand to switch." . += "Its disposal auto-transmit function is [transmit ? "enabled" : "disabled"]. Alt-click it to switch." /obj/item/circuitboard/machine/dish_drive/attack_self(mob/living/user) suction = !suction to_chat(user, "You [suction ? "enable" : "disable"] the board's suction function.") /obj/item/circuitboard/machine/dish_drive/AltClick(mob/living/user) . = ..() if(!user.Adjacent(src)) return transmit = !transmit to_chat(user, "You [transmit ? "enable" : "disable"] the board's automatic disposal transmission.") return TRUE /obj/item/circuitboard/machine/stacking_unit_console name = "Stacking Machine Console (Machine Board)" build_path = /obj/machinery/mineral/stacking_unit_console req_components = list( /obj/item/stack/sheet/glass = 2, /obj/item/stack/cable_coil = 5) /obj/item/circuitboard/machine/stacking_machine name = "Stacking Machine (Machine Board)" build_path = /obj/machinery/mineral/stacking_machine req_components = list( /obj/item/stock_parts/manipulator = 2, /obj/item/stock_parts/matter_bin = 2) /obj/item/circuitboard/machine/generator name = "Thermo-Electric Generator (Machine Board)" build_path = /obj/machinery/power/generator req_components = list() /obj/item/circuitboard/machine/circulator name = "Circulator/Heat Exchanger (Machine Board)" build_path = /obj/machinery/atmospherics/components/binary/circulator req_components = list() /obj/item/circuitboard/machine/harvester name = "Harvester (Machine Board)" build_path = /obj/machinery/harvester req_components = list(/obj/item/stock_parts/micro_laser = 4) /obj/item/circuitboard/machine/ore_silo name = "Ore Silo (Machine Board)" build_path = /obj/machinery/ore_silo req_components = list() /obj/item/circuitboard/machine/autobottler name = "Auto-Bottler (Machine Board)" build_path = /obj/machinery/rnd/production/protolathe/department/autobottler //Manips make you print things cheaper, even chems req_components = list(/obj/item/stock_parts/matter_bin = 5, /obj/item/stack/sheet/glass = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stack/cable_coil = 5, /obj/item/reagent_containers/glass/beaker = 6) //So it can hold lots of chems