diff --git a/code/__DEFINES/exosuit_fab.dm b/code/__DEFINES/exosuit_fab.dm index fa0ee64ef53..2fd8aa01994 100644 --- a/code/__DEFINES/exosuit_fab.dm +++ b/code/__DEFINES/exosuit_fab.dm @@ -34,18 +34,3 @@ #define EXOSUIT_MODULE_COMBAT EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON | EXOSUIT_MODULE_SAVANNAH | EXOSUIT_MODULE_CONCEALED_WEP_BAY /// Module is compatible with "Medical" Exosuit modelsm - Odysseus #define EXOSUIT_MODULE_MEDICAL EXOSUIT_MODULE_ODYSSEUS - -/// Module is standard in use -#define MODULE_GENERAL "General" -/// Module is preferred for engineering uses -#define MODULE_ENGINEERING "Engineering" -/// Module is preferred for medical uses -#define MODULE_MEDICAL "Medical" -/// Module is preferred for science uses -#define MODULE_SCIENCE "Science" -/// Module is preferred for security uses -#define MODULE_SECURITY "Security" -/// Module is preferred for supply uses -#define MODULE_SUPPLY "Supply" -/// Module is preferred for service uses -#define MODULE_SERVICE "Service" diff --git a/code/__DEFINES/research/research_categories.dm b/code/__DEFINES/research/research_categories.dm index 6a536f49275..137aceae867 100644 --- a/code/__DEFINES/research/research_categories.dm +++ b/code/__DEFINES/research/research_categories.dm @@ -1,87 +1,194 @@ -/** - * Research Categories - */ - -// Research Designs -#define RND_CATEGORY_TOOL_DESIGNS "Tool Designs" -#define RND_CATEGORY_MEDICAL_DESIGNS "Medical Designs" -#define RND_CATEGORY_BLUESPACE_DESIGNS "Bluespace Designs" -#define RND_CATEGORY_POWER_DESIGNS "Power Designs" -#define RND_CATEGORY_MINING_DESIGNS "Mining Designs" - // Weapon Categories -#define RND_CATEGORY_FIRING_PINS "Firing Pins" -#define RND_CATEGORY_WEAPONS "Weapons" -#define RND_CATEGORY_AMMO "Ammo" +#define RND_CATEGORY_WEAPONS "/Weaponry" +#define RND_SUBCATEGORY_WEAPONS_FIRING_PINS "/Firing Pins" +#define RND_SUBCATEGORY_WEAPONS_AMMO "/Ammunition" +#define RND_SUBCATEGORY_WEAPONS_PARTS "/Weapon Parts" +#define RND_SUBCATEGORY_WEAPONS_RANGED "/Ranged Weapons" +#define RND_SUBCATEGORY_WEAPONS_MELEE "/Melee Weapons" +#define RND_SUBCATEGORY_WEAPONS_KITS "/Weapon Fabrication Kits" // Wiremod Categories -#define RND_CATEGORY_CORE "Core" -#define RND_CATEGORY_CIRCUITRY "Circuitry" -#define RND_CATEGORY_COMPONENTS "Components" -#define RND_CATEGORY_BCI_COMPONENTS "BCI Components" -#define RND_CATEGORY_SHELLS "Shells" +#define RND_CATEGORY_CIRCUITRY "/Circuitry" +#define RND_CATEGORY_CIRCUITRY_CORE "/Core" +#define RND_SUBCATEGORY_CIRCUITRY_COMPONENTS "/Circuit Components" +#define RND_SUBCATEGORY_CIRCUITRY_BCI_COMPONENTS "/Circuit BCI Components" +#define RND_SUBCATEGORY_CIRCUITRY_SHELLS "/Circuit Shells" -// Department Categories -#define RND_CATEGORY_MEDICAL "Medical" -#define RND_CATEGORY_SECURITY "Security" -#define RND_CATEGORY_TELECOMMS "T-Comm" +// Tool Categories +#define RND_CATEGORY_TOOLS "/Tools" +#define RND_SUBCATEGORY_TOOLS_MEDICAL "/Medical Tools" +#define RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED "/Medical Tools (Advanced)" +#define RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN "/Medical Tools (Alien)" +#define RND_SUBCATEGORY_TOOLS_ENGINEERING "/Engineering Tools" +#define RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED "/Engineering Tools (Advanced)" +#define RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN "/Engineering Tools (Alien)" +#define RND_SUBCATEGORY_TOOLS_SERVICE "/Service Tools" +#define RND_SUBCATEGORY_TOOLS_BOTANY "/Botany Tools" +#define RND_SUBCATEGORY_TOOLS_BOTANY_ADVANCED "/Botany Tools (Advanced)" +#define RND_SUBCATEGORY_TOOLS_JANITORIAL "/Janitorial Tools" +#define RND_SUBCATEGORY_TOOLS_PLUMBING "/Plumbing Tools" +#define RND_SUBCATEGORY_TOOLS_ATMOSPHERICS "/Atmospherics Tools" +#define RND_SUBCATEGORY_TOOLS_MINING "/Mining Tools" +#define RND_SUBCATEGORY_TOOLS_CARGO "/Cargo Tools" +#define RND_SUBCATEGORY_TOOLS_PKA_MODS "/PKA Modkits" +#define RND_SUBCATEGORY_TOOLS_SECURITY "/Security Tools" +#define RND_SUBCATEGORY_TOOLS_MISC "/Miscellaneous Tools" -// Machinery Categories -#define RND_CATEGORY_MACHINERY "Machinery" -#define RND_CATEGORY_ENGINEERING_MACHINERY "Engineering Machinery" -#define RND_CATEGORY_SUBSPACE_TELECOMMS "Subspace Telecomms" -#define RND_CATEGORY_TELEPORTATION_MACHINERY "Teleportation Machinery" -#define RND_CATEGORY_MISC_MACHINERY "Misc. Machinery" -#define RND_CATEGORY_RESEARCH_MACHINERY "Research Machinery" -#define RND_CATEGORY_MEDICAL_MACHINERY "Medical Machinery" -#define RND_CATEGORY_HYDROPONICS_MACHINERY "Hydroponics Machinery" +#define RND_CATEGORY_CONSTRUCTION "/Construction" +#define RND_SUBCATEGORY_CONSTRUCTION_MOUNTS "/Frames & Mounts" +#define RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS "/Electronics" +#define RND_SUBCATEGORY_CONSTRUCTION_MACHINERY "/Machinery" +#define RND_SUBCATEGORY_CONSTRUCTION_MATERIALS "/Materials & Alloys" +#define RND_SUBCATEGORY_CONSTRUCTION_LIGHTING "/Lighting" +#define RND_SUBCATEGORY_CONSTRUCTION_ASSEMBLIES "/Electrical Assemblies" -// Exosuit Fabricator Categories -#define RND_CATEGORY_EXOSUIT_MODULES "Exosuit Modules" -#define RND_CATEGORY_EXOSUIT_EQUIPMENT "Exosuit Equipment" -#define RND_CATEGORY_EXOSUIT_AMMUNIATION "Exosuit Ammunition" -#define RND_CATEGORY_CYBORG "Cyborg" -#define RND_CATEGORY_RIPLEY "Ripley" -#define RND_CATEGORY_ODYSSEUS "Odysseus" -#define RND_CATEGORY_GYGAX "Gygax" -#define RND_CATEGORY_DURAND "Durand" -#define RND_CATEGORY_HONK "H.O.N.K" -#define RND_CATEGORY_PHAZON "Phazon" -#define RND_CATEGORY_SAVANNAH_IVANOV "Savannah-Ivanov" -#define RND_CATEGORY_CLARKE "Clarke" -#define RND_CATEGORY_CYBORG_UPGRADE_MODULES "Cyborg Upgrade Modules" -#define RND_CATEGORY_CONTROL_INTERFACES "Control Interfaces" -#define RND_CATEGORY_AI_MODULES "AI Modules" -#define RND_CATEGORY_IMPLANTS "Implants" -#define RND_CATEGORY_CYBERNETICS "Cybernetics" +#define RND_CATEGORY_COMPUTER "/Computer Boards" +#define RND_SUBCATEGORY_COMPUTER_ENTERTAINMENT "/Service Consoles" +#define RND_SUBCATEGORY_COMPUTER_MEDICAL "/Medical Consoles" +#define RND_SUBCATEGORY_COMPUTER_ROBOTICS "/Robotics Consoles" +#define RND_SUBCATEGORY_COMPUTER_GENETICS "/Genetics Consoles" +#define RND_SUBCATEGORY_COMPUTER_RECORDS "/Records Consoles" +#define RND_SUBCATEGORY_COMPUTER_COMMAND "/Command Consoles" +#define RND_SUBCATEGORY_COMPUTER_SECURITY "/Security Consoles" +#define RND_SUBCATEGORY_COMPUTER_RESEARCH "/Research Consoles" +#define RND_SUBCATEGORY_COMPUTER_ENGINEERING "/Engineering & Atmospherics Consoles" +#define RND_SUBCATEGORY_COMPUTER_CARGO "/Cargo Consoles" + +#define RND_CATEGORY_MACHINE "/Machine Boards" +#define RND_SUBCATEGORY_MACHINE_ATMOS "/Atmospherics Machines" +#define RND_SUBCATEGORY_MACHINE_KITCHEN "/Kitchen Machines" +#define RND_SUBCATEGORY_MACHINE_BAR "/Bar Machines" +#define RND_SUBCATEGORY_MACHINE_BOTANY "/Botany Machines" +#define RND_SUBCATEGORY_MACHINE_ENGINEERING "/Engineering Machines" +#define RND_SUBCATEGORY_MACHINE_RESEARCH "/Research Machines" +#define RND_SUBCATEGORY_MACHINE_MEDICAL "/Medical Machines" +#define RND_SUBCATEGORY_MACHINE_CHEMISTRY "/Chemistry Machines" +#define RND_SUBCATEGORY_MACHINE_SECURITY "/Security Machines" +#define RND_SUBCATEGORY_MACHINE_CARGO "/Cargo Machines" +#define RND_SUBCATEGORY_MACHINE_TELEPORT "/Teleportation Machines" +#define RND_SUBCATEGORY_MACHINE_ROBOTICS "/Robotics Machines" +#define RND_SUBCATEGORY_MACHINE_GENETICS "/Genetics Machines" +#define RND_SUBCATEGORY_MACHINE_FAB "/Fabricators" +#define RND_SUBCATEGORY_MACHINE_SERVICE "/Service Machines" +#define RND_SUBCATEGORY_MACHINE_TELECOMMS "/Telecommunications Machines" + +#define RND_CATEGORY_EQUIPMENT "/Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_SERVICE "/Service Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_JOKE "/Top-Secret Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY "/Chemistry Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_MEDICAL "/Medical Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_SECURITY "/Security Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_TELECOMMS "/Communications Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_BLUESPACE "/Bluespace Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_ENGINEERING "/Engineering Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_ATMOSPHERICS "/Atmospherics Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_SCIENCE "/Science Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS "/Gas Tanks" +#define RND_SUBCATEGORY_EQUIPMENT_XENOBIOLOGY "/Xenobiology Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_GENETICS "/Genetics Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_JANITOR "/Janitorial Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_KITCHEN "/Bar & Kitchen Equipment" +#define RND_SUBCATEGORY_EQUIPMENT_MISC "/Miscellaneous Equipment" + +#define RND_CATEGORY_AI "/Artificial Intelligence" +#define RND_SUBCATEGORY_AI_CORE "/AI Construction" +#define RND_SUBCATEGORY_AI_LAW_MANIPULATION "/AI Law Manipulation" +#define RND_SUBCATEGORY_AI_CORE_MODULES "/Core AI Modules" +#define RND_SUBCATEGORY_AI_DANGEROUS_MODULES "/Dangerous AI Modules" + +#define RND_CATEGORY_MODULAR_COMPUTERS "/Modular Computers" +#define RND_SUBCATEGORY_MODULAR_COMPUTERS_FRAMES "/Frames" +#define RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS "/Parts" + +#define RND_CATEGORY_STOCK_PARTS "/Stock Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_MISC "/Miscellaneous Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_TURBINE "/Turbine Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS "/Telecommunications Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_1 "/Tier 1 Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_2 "/Tier 2 Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_3 "/Tier 3 Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_4 "/Tier 4 Parts" +#define RND_SUBCATEGORY_STOCK_PARTS_EXCHANGERS "/Exchange Devices" + +#define RND_CATEGORY_SYNDICATE "/Illegal Designs" + +#define RND_CATEGORY_EXOSUIT_BOARDS "/Exosuit Boards" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_RIPLEY "/Ripley" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_ODYSSEUS "/Odysseus" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_GYGAX "/Gygax" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_DURAND "/Durand" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_HONK "/H.O.N.K." +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_PHAZON "/Phazon" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_CLARKE "/Clarke" +#define RND_SUBCATEGORY_EXOSUIT_BOARDS_SAVANNAH_IVANOV "/Savannah-Ivanov" + +#define RND_CATEGORY_MECHFAB_RIPLEY "/Ripley" +#define RND_CATEGORY_MECHFAB_ODYSSEUS "/Odysseus" +#define RND_CATEGORY_MECHFAB_GYGAX "/Gygax" +#define RND_CATEGORY_MECHFAB_DURAND "/Durand" +#define RND_CATEGORY_MECHFAB_HONK "/H.O.N.K." +#define RND_CATEGORY_MECHFAB_PHAZON "/Phazon" +#define RND_CATEGORY_MECHFAB_CLARKE "/Clarke" +#define RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV "/Savannah-Ivanov" +#define RND_SUBCATEGORY_MECHFAB_CHASSIS "/Chassis" +#define RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT "/Supported Equipment" +#define RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES "/Control Interfaces" + +#define RND_CATEGORY_MECHFAB_EQUIPMENT "/Exosuit Equipment" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING "/Mining Equipment" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS "/Weapons & Ammunition" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES "/Armor & Repair Modules" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC "/Miscellaneous" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MEDICAL "/Medical" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_HONK "/Clown Designs" +#define RND_SUBCATEGORY_MECHFAB_EQUIPMENT_CONTROL_INTERFACES "/Control Interfaces" + +#define RND_CATEGORY_MECHFAB_CYBORG "/Cyborg" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS "/Cyborg Chassis" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_COMPONENTS "/Components" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_CELLS "/Power Cells" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_CONTROL_INTERFACES "/Control Interfaces" + +#define RND_CATEGORY_MECHFAB_CYBORG_MODULES "/Cyborg Modules" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL "/All Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL "/Medical Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ENGINEERING "/Engineering Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR "/Janitorial Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SECURITY "/Security Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING "/Mining Cyborgs" + +#define RND_CATEGORY_MODSUITS "/MOD Suits" +#define RND_SUBCATEGORY_MODUITS_CHASSIS "/Chassis" +#define RND_SUBCATEGORY_MODSUITS_PLATING "/Plating" +#define RND_SUBCATEGORY_MODSUITS_MISC "/Misc" + +#define RND_CATEGORY_MODSUIT_MODULES "/MOD Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_GENERAL "/General Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING "/Engineering Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL "/Medical Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE "/Science Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY "/Security Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY "/Supply Modules" +#define RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE "/Service Modules" + + +#define RND_CATEGORY_CYBERNETICS "/Cybernetics" +#define RND_SUBCATEGORY_CYBERNETICS_ORGANS "/Cybernetic Organs" +#define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS "/Cybernetic Implants" + +#define RND_SUBCATEGORY_IMPLANTS "/Implants" // Limb Categories -#define RND_CATEGORY_DIGITIGRADE "digitigrade" -#define RND_CATEGORY_OTHER "other" +#define RND_CATEGORY_LIMBS_DIGITIGRADE "Digitigrade" +#define RND_CATEGORY_LIMBS_OTHER "Other Limbs" -// Computer Categories -#define RND_CATEGORY_COMPUTER_BOARDS "Computer Boards" -#define RND_CATEGORY_COMPUTER_PARTS "Computer Parts" - -// Hacked Categories -#define RND_CATEGORY_HACKED "hacked" -#define RND_CATEGORY_EMAGGED "emagged" - -// MOD Categories -#define RND_CATEGORY_MOD_CONSTRUCTION "MOD Construction" -#define RND_CATEGORY_MOD_MODULES "MOD Modules" - -/// Misc Categories +/// Biogenerator Categories #define RND_CATEGORY_FOOD "Food" #define RND_CATEGORY_BOTANY_CHEMICALS "Botany Chemicals" #define RND_CATEGORY_ORGANIC_MATERIALS "Organic Materials" -#define RND_CATEGORY_IMPORTED "Imported" + +// Meta categories #define RND_CATEGORY_INITIAL "initial" -#define RND_CATEGORY_TOOLS "Tools" -#define RND_CATEGORY_EQUIPMENT "Equipment" -#define RND_CATEGORY_ELECTRONICS "Electronics" -#define RND_CATEGORY_MISC "Misc" -#define RND_CATEGORY_MATERIAL "Material" -#define RND_CATEGORY_STOCK_PARTS "Stock Parts" -#define RND_CATEGORY_CONSTRUCTION "Construction" -#define RND_CATEGORY_DINNERWARE "Dinnerware" +#define RND_CATEGORY_HACKED "hacked" +#define RND_CATEGORY_EMAGGED "emagged" +#define RND_CATEGORY_IMPORTED "/Imported Designs" diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 675c4c18fea..c821164f8df 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -444,6 +444,7 @@ "amount" = amount, "sheets" = round(amount / MINERAL_MATERIAL_AMOUNT), "removable" = amount >= MINERAL_MATERIAL_AMOUNT, + "color" = material.greyscale_colors )) return data diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 6fc6541413d..1b234ce8052 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -7,48 +7,24 @@ circuit = /obj/item/circuitboard/machine/autolathe layer = BELOW_OBJ_LAYER - var/operating = FALSE - var/list/L = list() - var/list/LL = list() var/hacked = FALSE var/disabled = FALSE var/shocked = FALSE - var/hack_wire - var/disable_wire - var/shock_wire - var/busy = FALSE - ///the multiplier for how much materials the created object takes from this machines stored materials + /// Coefficient applied to consumed materials. Lower values result in lower material consumption. var/creation_efficiency = 1.6 var/datum/design/being_built var/datum/techweb/stored_research - var/list/datum/design/matching_designs - var/selected_category = "None" - var/base_price = 25 - var/hacked_price = 50 - - var/list/categories = list( - RND_CATEGORY_TOOLS, - RND_CATEGORY_EQUIPMENT, - RND_CATEGORY_CONSTRUCTION, - RND_CATEGORY_MATERIAL, - RND_CATEGORY_TELECOMMS, - RND_CATEGORY_SECURITY, - RND_CATEGORY_MACHINERY, - RND_CATEGORY_MEDICAL, - RND_CATEGORY_MISC, - RND_CATEGORY_DINNERWARE, - RND_CATEGORY_IMPORTED - ) /obj/machinery/autolathe/Initialize(mapload) AddComponent(/datum/component/material_container, SSmaterials.materials_by_category[MAT_CATEGORY_ITEM_MATERIAL], 0, MATCONTAINER_EXAMINE, _after_insert = CALLBACK(src, .proc/AfterMaterialInsert)) + . = ..() + wires = new /datum/wires/autolathe(src) stored_research = new /datum/techweb/specialized/autounlocking/autolathe - matching_designs = list() /obj/machinery/autolathe/Destroy() QDEL_NULL(wires) @@ -59,171 +35,195 @@ return if(shocked && !(machine_stat & NOPOWER)) - shock(user,50) + shock(user, 50) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) ui = new(user, src, "Autolathe") ui.open() -/obj/machinery/autolathe/ui_data(mob/user) +/obj/machinery/autolathe/ui_static_data(mob/user) var/list/data = list() - data["materials"] = list() - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - data["materialtotal"] = materials.total_amount - data["materialsmax"] = materials.max_amount - data["categories"] = categories - data["designs"] = list() - data["active"] = busy - for(var/mat_id in materials.materials) - var/datum/material/M = mat_id - var/mineral_count = materials.materials[mat_id] - var/list/material_data = list( - name = M.name, - mineral_amount = mineral_count, - matcolour = M.greyscale_colors, - ) - data["materials"] += list(material_data) - if(selected_category != "None" && !length(matching_designs)) - data["designs"] = handle_designs(stored_research.researched_designs, TRUE) - else - data["designs"] = handle_designs(matching_designs, FALSE) + data["designs"] = handle_designs(stored_research.researched_designs) + return data -/obj/machinery/autolathe/proc/handle_designs(list/designs, categorycheck) +/obj/machinery/autolathe/ui_data(mob/user) + var/list/data = list() + + data["materials"] = list() + + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + + data["materialtotal"] = materials.total_amount + data["materialsmax"] = materials.max_amount + data["active"] = busy + data["materials"] = materials.ui_data() + + return data + +/obj/machinery/autolathe/proc/handle_designs(list/designs) var/list/output = list() - for(var/v in designs) - var/datum/design/D = categorycheck ? SSresearch.techweb_design_by_id(v) : v - if(categorycheck) - if(!(selected_category in D.category)) - continue + + var/datum/asset/spritesheet/research_designs/spritesheet = get_asset_datum(/datum/asset/spritesheet/research_designs) + var/size32x32 = "[spritesheet.name]32x32" + + for(var/design_id in designs) + var/datum/design/design = SSresearch.techweb_design_by_id(design_id) + var/unbuildable = FALSE // we can't build the design currently var/m10 = FALSE // 10x mult var/m25 = FALSE // 25x mult var/m50 = FALSE // 50x mult var/m5 = FALSE // 5x mult var/sheets = FALSE // sheets or no? - if(disabled || !can_build(D)) + + if(disabled || !can_build(design)) unbuildable = TRUE + var/max_multiplier = unbuildable ? 0 : 1 - if(ispath(D.build_path, /obj/item/stack)) + + if(ispath(design.build_path, /obj/item/stack)) sheets = TRUE + if(!unbuildable) var/datum/component/material_container/mats = GetComponent(/datum/component/material_container) - for(var/datum/material/mat in D.materials) - max_multiplier = min(D.maxstack, round(mats.get_material_amount(mat)/D.materials[mat])) + + for(var/datum/material/mat in design.materials) + max_multiplier = min(design.maxstack, round(mats.get_material_amount(mat) / design.materials[mat])) if (max_multiplier >= 10 && !disabled) m10 = TRUE if (max_multiplier >= 25 && !disabled) m25 = TRUE else if(!unbuildable) - if(!disabled && can_build(D, 5)) + if(!disabled && can_build(design, 5)) m5 = TRUE - if(!disabled && can_build(D, 10)) + if(!disabled && can_build(design, 10)) m10 = TRUE - var/datum/component/material_container/mats = GetComponent(/datum/component/material_container) - for(var/datum/material/mat in D.materials) - max_multiplier = min(50, round(mats.get_material_amount(mat)/(D.materials[mat] * creation_efficiency))) - var/list/design = list( - name = D.name, - id = D.id, - ref = REF(src), - cost = get_design_cost(D), - buildable = unbuildable, - mult5 = m5, - mult10 = m10, - mult25 = m25, - mult50 = m50, - sheet = sheets, - maxmult = max_multiplier, + var/datum/component/material_container/mats = GetComponent(/datum/component/material_container) + + for(var/datum/material/mat in design.materials) + max_multiplier = min(50, round(mats.get_material_amount(mat) / (design.materials[mat] * creation_efficiency))) + + var/icon_size = spritesheet.icon_size_id(design.id) + + var/list/design_data = list( + "name" = design.name, + "desc" = design.get_description(), + "cost" = get_design_cost(design), + "id" = design.id, + "categories" = design.category, + "icon" = "[icon_size == size32x32 ? "" : "[icon_size] "][design.id]", + "constructionTime" = -1, + + "buildable" = unbuildable, + "mult5" = m5, + "mult10" = m10, + "mult25" = m25, + "mult50" = m50, + "sheet" = sheets, + "maxmult" = max_multiplier, ) - output += list(design) + + output += list(design_data) + return output -/obj/machinery/autolathe/ui_act(action, params) +/obj/machinery/autolathe/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/sheetmaterials), + get_asset_datum(/datum/asset/spritesheet/research_designs), + ) + +/obj/machinery/autolathe/ui_act(action, list/params) . = ..() + if(.) return - if(action == "menu") - selected_category = null - matching_designs.Cut() - . = TRUE - - if(action == "category") - selected_category = params["selectedCategory"] - matching_designs.Cut() - . = TRUE - - if(action == "search") - matching_designs.Cut() - - for(var/v in stored_research.researched_designs) - var/datum/design/D = SSresearch.techweb_design_by_id(v) - if(findtext(D.name,params["to_search"])) - matching_designs.Add(D) - . = TRUE if(action == "make") - if (!busy) - ///////////////// - //href protection - being_built = stored_research.isDesignResearchedID(params["id"]) - if(!being_built) - return + var/design_id = params["id"] - var/multiplier = text2num(params["multiplier"]) - if(!multiplier || !IS_FINITE(multiplier)) - stack_trace("Invalid multiplier value in stack creation [multiplier], [usr] is likely attempting an exploit") - return - var/is_stack = ispath(being_built.build_path, /obj/item/stack) - multiplier = clamp(round(multiplier),1,50) + if(!istext(design_id)) + return - ///////////////// + if(!stored_research.isDesignResearchedID(design_id)) + return - var/coeff = (is_stack ? 1 : creation_efficiency) //stacks are unaffected by production coefficient - var/total_amount = 0 + var/datum/design/design = SSresearch.techweb_design_by_id(design_id) - for(var/MAT in being_built.materials) - total_amount += being_built.materials[MAT] + if(!(design.build_type & AUTOLATHE) || design.id != design_id) + return - var/power = max(active_power_usage, (total_amount)*multiplier/5) //Change this to use all materials - - var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) - - var/list/materials_used = list() - var/list/custom_materials = list() //These will apply their material effect, This should usually only be one. - - for(var/MAT in being_built.materials) - var/datum/material/used_material = MAT - var/amount_needed = being_built.materials[MAT] * coeff * multiplier - if(istext(used_material)) //This means its a category - var/list/list_to_show = list() - for(var/i in SSmaterials.materials_by_category[used_material]) - if(materials.materials[i] > 0) - list_to_show += i - - used_material = tgui_input_list(usr, "Choose [used_material]", "Custom Material", sort_list(list_to_show, /proc/cmp_typepaths_asc)) - if(isnull(used_material)) - return //Didn't pick any material, so you can't build shit either. - custom_materials[used_material] += amount_needed - - materials_used[used_material] = amount_needed - - if(materials.has_materials(materials_used)) - busy = TRUE - to_chat(usr, span_notice("You print [multiplier] item(s) from the [src]")) - use_power(power) - icon_state = "autolathe_n" - var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 - addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) - . = TRUE - else - to_chat(usr, span_alert("Not enough materials for this operation.")) - else + if (busy) to_chat(usr, span_alert("The autolathe is busy. Please wait for completion of previous operation.")) + return + + being_built = design + + var/multiplier = round(text2num(params["multiplier"])) + + if(!multiplier || !IS_FINITE(multiplier)) + return + + var/is_stack = ispath(being_built.build_path, /obj/item/stack) + multiplier = clamp(multiplier, 1, 50) + + var/coeff = (is_stack ? 1 : creation_efficiency) // Stacks are unaffected by production coefficient + var/total_amount = 0 + + for(var/material in being_built.materials) + total_amount += being_built.materials[material] + + var/power = max(active_power_usage, (total_amount)*multiplier/5) // Change this to use all materials + + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + + var/list/materials_used = list() + var/list/custom_materials = list() // These will apply their material effect, should usually only be one. + + for(var/mat in being_built.materials) + var/datum/material/used_material = mat + var/amount_needed = being_built.materials[mat] * coeff * multiplier + + if(istext(used_material)) // This means its a category + var/list/list_to_show = list() + + for(var/i in SSmaterials.materials_by_category[used_material]) + if(materials.materials[i] > 0) + list_to_show += i + + used_material = tgui_input_list( + usr, + "Choose [used_material]", + "Custom Material", + sort_list(list_to_show, /proc/cmp_typepaths_asc) + ) + + if(isnull(used_material)) + // Didn't pick any material, so you can't build shit either. + return + + custom_materials[used_material] += amount_needed + + materials_used[used_material] = amount_needed + + if(materials.has_materials(materials_used)) + busy = TRUE + to_chat(usr, span_notice("You print [multiplier] item(s) from the [src]")) + use_power(power) + icon_state = "autolathe_n" + var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 + addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) + . = TRUE + else + to_chat(usr, span_alert("Not enough materials for this operation.")) + /obj/machinery/autolathe/on_deconstruction() var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) materials.retrieve_all() @@ -264,6 +264,7 @@ if(not_imported) to_chat(user, span_warning("The following design[length(not_imported) > 1 ? "s" : ""] couldn't be imported: [english_list(not_imported)]")) busy = FALSE + update_static_data_for_all_viewers() return TRUE if(panel_open) @@ -369,16 +370,19 @@ return materials.has_materials(required_materials) -/obj/machinery/autolathe/proc/get_design_cost(datum/design/D) - var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : creation_efficiency) - var/dat - for(var/i in D.materials) - if(istext(i)) //Category handling - dat += "[D.materials[i] * coeff] [i]" +/obj/machinery/autolathe/proc/get_design_cost(datum/design/design) + var/coeff = (ispath(design.build_path, /obj/item/stack) ? 1 : creation_efficiency) + var/list/cost = list() + + for(var/material in design.materials) + if (istext(material)) + // Wildcard materials + cost[material] = design.materials[material] * coeff else - var/datum/material/M = i - dat += "[D.materials[i] * coeff] [M.name] " - return dat + var/datum/material/cast = material + cost[cast.name] = design.materials[cast] * coeff + + return cost /obj/machinery/autolathe/proc/reset(wire) switch(wire) @@ -415,6 +419,8 @@ else stored_research.remove_design(D) + update_static_data_for_all_viewers() + /obj/machinery/autolathe/hacked/Initialize(mapload) . = ..() adjust_hacked(TRUE) diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm index c5e2ab598aa..9898622b474 100644 --- a/code/modules/mining/lavaland/tendril_loot.dm +++ b/code/modules/mining/lavaland/tendril_loot.dm @@ -28,8 +28,10 @@ modkit_design = /datum/design/unique_modkit/bounty /datum/design/unique_modkit - category = list(RND_CATEGORY_MINING_DESIGNS, RND_CATEGORY_CYBORG_UPGRADE_MODULES) //can't be normally obtained - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS, + ) + build_type = PROTOLATHE departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/unique_modkit/offensive_turf_aoe diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 3414a633850..b1eee4ba1b9 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -37,8 +37,8 @@ other types of metals and chemistry for reagents). var/build_path = null /// List of reagents produced by this design. Currently only supported by the biogenerator. var/list/make_reagents = list() - /// What category this design falls under. Used for sorting in production machines, mostly the mechfab. - var/list/category = null + /// What categories this design falls under. Used for sorting in production machines. + var/list/category = list() /// List of reagents required to create one unit of the product. var/list/reagents_list = list() /// The maximum number of units of whatever is produced by this can be produced in one go. diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index 52f0c1bbcf4..bfc4476810b 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -3,315 +3,385 @@ /////////////////////////////////// /datum/design/board/aicore - name = "AI Design (AI Core)" + name = "AI Core Board" desc = "Allows for the construction of circuit boards used to build new AI cores." id = "aicore" build_path = /obj/item/circuitboard/aicore - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/safeguard_module - name = "Module Design (Safeguard)" + name = "Safeguard Module" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/supplied/safeguard - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/onehuman_module - name = "Module Design (OneHuman)" + name = "OneHuman Module" desc = "Allows for the construction of a OneHuman AI Module." id = "onehuman_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 6000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/zeroth/onehuman - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/protectstation_module - name = "Module Design (ProtectStation)" + name = "ProtectStation Module" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/supplied/protect_station - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/quarantine_module - name = "Module Design (Quarantine)" + name = "Quarantine Module" desc = "Allows for the construction of a Quarantine AI Module." id = "quarantine_module" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/supplied/quarantine - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/oxygen_module - name = "Module Design (OxygenIsToxicToHumans)" - desc = "Allows for the construction of a Safeguard AI Module." + name = "OxygenIsToxicToHumans Module" + desc = "Allows for the construction of a OxygenIsToxicToHumans AI Module." id = "oxygen_module" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/supplied/oxygen - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/freeform_module - name = "Module Design (Freeform)" + name = "Freeform Module" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" materials = list(/datum/material/glass = 1000, /datum/material/gold = 10000, /datum/material/bluespace = 2000)//Custom inputs should be more expensive to get build_path = /obj/item/ai_module/supplied/freeform - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/reset_module - name = "Module Design (Reset)" + name = "Reset Module" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/ai_module/reset - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/purge_module - name = "Module Design (Purge)" + name = "Purge Module" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/reset/purge - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/remove_module - name = "Module Design (Law Removal)" + name = "Law Removal Module" desc = "Allows for the construction of a Law Removal AI Core Module." id = "remove_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/remove - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/freeformcore_module - name = "AI Core Module (Freeform)" - desc = "Allows for the construction of a Freeform AI Core Module." + name = "Core Freeform Module" + desc = "Allows for the construction of a Core Freeform AI Core Module." id = "freeformcore_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 10000, /datum/material/bluespace = 2000)//Ditto build_path = /obj/item/ai_module/core/freeformcore - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/asimov - name = "Core Module Design (Asimov)" + name = "Asimov Module" desc = "Allows for the construction of an Asimov AI Core Module." id = "asimov_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/asimov - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/paladin_module - name = "Core Module Design (P.A.L.A.D.I.N.)" + name = "P.A.L.A.D.I.N. Module" desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." id = "paladin_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/paladin - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/tyrant_module - name = "Core Module Design (T.Y.R.A.N.T.)" + name = "T.Y.R.A.N.T. Module" desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." id = "tyrant_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/tyrant - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/overlord_module - name = "Core Module Design (Overlord)" + name = "Overlord Module" desc = "Allows for the construction of an Overlord AI Module." id = "overlord_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/overlord - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/corporate_module - name = "Core Module Design (Corporate)" + name = "Corporate Module" desc = "Allows for the construction of a Corporate AI Core Module." id = "corporate_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/corp - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/default_module - name = "Core Module Design (Default)" + name = "Default Module" desc = "Allows for the construction of a Default AI Core Module." id = "default_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/custom - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/dungeon_master_module - name = "Core Module Design (Dungeon Master)" + name = "Dungeon Master Module" desc = "Allows for the construction of a Dungeon Master AI Core Module." id = "dungeon_master_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/dungeon_master - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/painter_module - name = "Core Module Design (Painter)" + name = "Painter Module" desc = "Allows for the construction of a Painter AI Core Module." id = "painter_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/painter - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/nutimov_module - name = "Core Module Design (Nutimov)" + name = "Nutimov Module" desc = "Allows for the construction of a Nutimov AI Core Module." id = "nutimov_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/nutimov - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/ten_commandments_module - name = "Core Module Design (10 Commandments)" + name = "10 Commandments Module" desc = "Allows for the construction of a 10 Commandments AI Core Module." id = "ten_commandments_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/ten_commandments - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/asimovpp_module - name = "Core Module Design (Asimov++)" + name = "Asimov++ Module" desc = "Allows for the construction of a Asimov++ AI Core Module." id = "asimovpp_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/asimovpp - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/hippocratic_module - name = "Core Module Design (Hippocratic)" + name = "Hippocratic Module" desc = "Allows for the construction of a Hippocratic AI Core Module." id = "hippocratic_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/hippocratic - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/paladin_devotion_module - name = "Core Module Design (Paladin Devotion)" + name = "Paladin Devotion Module" desc = "Allows for the construction of a Paladin Devotion AI Core Module." id = "paladin_devotion_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/paladin_devotion - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/robocop_module - name = "Core Module Design (Robocop)" + name = "Robocop Module" desc = "Allows for the construction of a Robocop AI Core Module." id = "robocop_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/robocop - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/maintain_module - name = "Core Module Design (Maintain)" + name = "Maintain Module" desc = "Allows for the construction of a Maintain AI Core Module." id = "maintain_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/maintain - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/liveandletlive_module - name = "Core Module Design (Liveandletlive)" + name = "Liveandletlive Module" desc = "Allows for the construction of a Liveandletlive AI Core Module." id = "liveandletlive_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/liveandletlive - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/peacekeeper_module - name = "Core Module Design (Peacekeeper)" + name = "Peacekeeper Module" desc = "Allows for the construction of a Peacekeeper AI Core Module." id = "peacekeeper_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/peacekeeper - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/reporter_module - name = "Core Module Design (Reporter)" + name = "Reporter Module" desc = "Allows for the construction of a Reporter AI Core Module." id = "reporter_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/reporter - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/hulkamania_module - name = "Core Module Design (Hulkamania)" - desc = "Allows for the construction of a Hulkamania AI Core Module." + name = "H.O.G.A.N. Module" + desc = "Allows for the construction of a H.O.G.A.N. AI Core Module." id = "hulkamania_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/hulkamania - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/drone_module - name = "Core Module Design (Drone)" + name = "Drone Module" desc = "Allows for the construction of a Drone AI Core Module." id = "drone_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/drone - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/antimov_module - name = "Core Module Design (Antimov)" + name = "Antimov Module" desc = "Allows for the construction of a Antimov AI Core Module." id = "antimov_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/antimov - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/balance_module - name = "Core Module Design (Balance)" + name = "Balance Module" desc = "Allows for the construction of a Balance AI Core Module." id = "balance_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/balance - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/thermurderdynamic_module - name = "Core Module Design (Thermurderdynamic)" - desc = "Allows for the construction of a Thermurderdynamic AI Core Module." + name = "Thermodynamic Module" + desc = "Allows for the construction of a Thermodynamic AI Core Module." id = "thermurderdynamic_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/thermurderdynamic - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/damaged - name = "Core Module Design (Damaged)" + name = "Damaged AI Module" desc = "Allows for the construction of a Damaged AI Core Module." id = "damaged_module" materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000) build_path = /obj/item/ai_module/core/full/damaged - category = list(RND_CATEGORY_AI_MODULES) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 2849b8f9206..aca194ce7eb 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -8,7 +8,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200) build_path = /obj/item/reagent_containers/cup/bucket - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/watering_can @@ -17,7 +20,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200) build_path = /obj/item/reagent_containers/cup/watering_can - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/mop @@ -26,7 +32,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000) build_path = /obj/item/mop - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/broom @@ -35,7 +44,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000) build_path = /obj/item/pushbroom - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/crowbar @@ -44,32 +56,47 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50) build_path = /obj/item/crowbar - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/flashlight name = "Flashlight" id = "flashlight" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 20) build_path = /obj/item/flashlight - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MISC + ) + departmental_flags = ALL /datum/design/extinguisher name = "Fire Extinguisher" id = "extinguisher" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 90) build_path = /obj/item/extinguisher - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/pocketfireextinguisher name = "Pocket Fire Extinguisher" id = "pocketfireextinguisher" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 40) build_path = /obj/item/extinguisher/mini - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/multitool name = "Multitool" @@ -77,7 +104,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 20) build_path = /obj/item/multitool - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/analyzer @@ -86,7 +116,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 30, /datum/material/glass = 20) build_path = /obj/item/analyzer - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design/tscanner @@ -95,7 +128,10 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 150) build_path = /obj/item/t_scanner - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/weldingtool @@ -104,16 +140,22 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 70, /datum/material/glass = 20) build_path = /obj/item/weldingtool - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/mini_weldingtool name = "Emergency Welding Tool" id = "mini_welding_tool" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 30, /datum/material/glass = 10) build_path = /obj/item/weldingtool/mini - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) /datum/design/screwdriver name = "Screwdriver" @@ -121,7 +163,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75) build_path = /obj/item/screwdriver - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/wirecutters @@ -130,7 +175,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 80) build_path = /obj/item/wirecutters - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/wrench @@ -139,7 +187,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150) build_path = /obj/item/wrench - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/plunger @@ -148,8 +199,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150) build_path = /obj/item/plunger - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PLUMBING + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design/welding_helmet name = "Welding Helmet" @@ -157,7 +211,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1750, /datum/material/glass = 400) build_path = /obj/item/clothing/head/welding - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/cable_coil @@ -166,17 +223,23 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10, /datum/material/glass = 5) build_path = /obj/item/stack/cable_coil - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) maxstack = MAXCOIL departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/toolbox name = "Toolbox" id = "tool_box" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(MAT_CATEGORY_ITEM_MATERIAL = 500) build_path = /obj/item/storage/toolbox - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) /datum/design/apc_board name = "APC Module" @@ -184,7 +247,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/electronics/apc - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/airlock_board @@ -193,7 +259,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/airlock - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/firelock_board @@ -202,7 +271,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/firelock - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/airalarm_electronics @@ -211,7 +283,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/airalarm - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/firealarm_electronics @@ -220,7 +295,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/electronics/firealarm - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/trapdoor_electronics @@ -229,32 +307,47 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/assembly/trapdoor - category = list("initial", "Electronics") + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/camera name = "Camera" id = "camera" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 100) build_path = /obj/item/camera - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/camera_film name = "Camera Film Cartridge" id = "camera_film" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10, /datum/material/glass = 10) build_path = /obj/item/camera_film - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/earmuffs name = "Earmuffs" id = "earmuffs" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/ears/earmuffs - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/pipe_painter name = "Pipe Painter" @@ -262,7 +355,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000) build_path = /obj/item/pipe_painter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/airlock_painter @@ -271,8 +367,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/airlock_painter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/airlock_painter/decal name = "Decal Painter" @@ -280,8 +379,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/airlock_painter/decal - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/airlock_painter/decal/tile name = "Tile Sprayer" @@ -289,8 +391,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/airlock_painter/decal/tile - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/emergency_oxygen name = "Emergency Oxygen Tank" @@ -298,7 +403,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/tank/internals/emergency_oxygen/empty - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) /datum/design/emergency_oxygen_engi name = "Extended-Capacity Emergency Oxygen Tank" @@ -306,7 +414,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 750) build_path = /obj/item/tank/internals/emergency_oxygen/engi/empty - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO /datum/design/plasmaman_tank_belt @@ -315,8 +426,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 800) build_path = /obj/item/tank/internals/plasmaman/belt/empty - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) + departmental_flags = ALL /datum/design/generic_gas_tank name = "Generic Gas Tank" @@ -324,7 +438,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000) build_path = /obj/item/tank/internals/generic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO /datum/design/boxcutter @@ -333,7 +450,10 @@ build_type = AUTOLATHE | PROTOLATHE materials = list(/datum/material/iron = 4000, /datum/material/plastic = 500) build_path = /obj/item/boxcutter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_EQUIPMENT, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/iron @@ -342,7 +462,10 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/iron - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/rods @@ -351,7 +474,10 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 1000) build_path = /obj/item/stack/rods - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/glass @@ -360,7 +486,10 @@ build_type = AUTOLATHE materials = list(/datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/glass - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/rglass @@ -369,8 +498,12 @@ build_type = AUTOLATHE | SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/rglass - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/silver name = "Silver" @@ -378,7 +511,10 @@ build_type = AUTOLATHE materials = list(/datum/material/silver = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/silver - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/gold @@ -387,7 +523,10 @@ build_type = AUTOLATHE materials = list(/datum/material/gold = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/gold - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/diamond @@ -396,7 +535,10 @@ build_type = AUTOLATHE materials = list(/datum/material/diamond = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/diamond - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/plasma @@ -405,7 +547,10 @@ build_type = AUTOLATHE materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/plasma - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/uranium @@ -414,7 +559,10 @@ build_type = AUTOLATHE materials = list(/datum/material/uranium = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/uranium - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/bananium @@ -423,7 +571,10 @@ build_type = AUTOLATHE materials = list(/datum/material/bananium = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/bananium - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/titanium @@ -432,7 +583,10 @@ build_type = AUTOLATHE materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/titanium - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 /datum/design/plastic @@ -441,24 +595,23 @@ build_type = AUTOLATHE materials = list(/datum/material/plastic= MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plastic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MATERIAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) maxstack = 50 -/datum/design/rcd_ammo - name = "Compressed Matter Cartridge" - id = "rcd_ammo" - build_type = AUTOLATHE - materials = list(/datum/material/iron = 12000, /datum/material/glass = 8000) - build_path = /obj/item/rcd_ammo - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) - /datum/design/kitchen_knife name = "Kitchen Knife" id = "kitchen_knife" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 12000) build_path = /obj/item/knife/kitchen - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plastic_knife name = "Plastic Knife" @@ -466,15 +619,23 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 100) build_path = /obj/item/knife/plastic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOL_DESIGNS, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/fork name = "Fork" id = "fork" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 80) build_path = /obj/item/kitchen/fork - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plastic_fork name = "Plastic Fork" @@ -482,7 +643,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 80) build_path = /obj/item/kitchen/fork/plastic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOL_DESIGNS, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/spoon @@ -491,7 +655,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 120) build_path = /obj/item/kitchen/spoon - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOL_DESIGNS, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plastic_spoon @@ -500,64 +667,95 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 120) build_path = /obj/item/kitchen/spoon/plastic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOL_DESIGNS, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/tray name = "Serving Tray" id = "servingtray" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000) build_path = /obj/item/storage/bag/tray - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plate name = "Plate" id = "plate" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3500) build_path = /obj/item/plate - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/cafeteria_tray name = "Cafeteria Tray" id = "foodtray" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000) build_path = /obj/item/storage/bag/tray/cafeteria - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/bowl name = "Bowl" id = "bowl" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT) build_path = /obj/item/reagent_containers/cup/bowl + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/drinking_glass name = "Drinking Glass" id = "drinking_glass" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT) build_path = /obj/item/reagent_containers/cup/glass/drinkingglass + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/shot_glass name = "Shot Glass" id = "shot_glass" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 100) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT) build_path = /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/shaker name = "Shaker" id = "shaker" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1500) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT) build_path = /obj/item/reagent_containers/cup/glass/shaker + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/cultivator name = "Cultivator" @@ -565,7 +763,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=50) build_path = /obj/item/cultivator - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plant_analyzer @@ -574,7 +775,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 30, /datum/material/glass = 20) build_path = /obj/item/plant_analyzer - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/shovel @@ -583,7 +787,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50) build_path = /obj/item/shovel - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/spade @@ -592,7 +799,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50) build_path = /obj/item/shovel/spade - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/hatchet @@ -601,7 +811,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 15000) build_path = /obj/item/hatchet - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/secateurs @@ -610,7 +823,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/secateurs - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/foilhat @@ -619,7 +835,10 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 5500) build_path = /obj/item/clothing/head/foilhat - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_JOKE + ) /datum/design/blood_filter name = "Blood Filter" @@ -627,7 +846,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 1500, /datum/material/silver = 500) build_path = /obj/item/blood_filter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/scalpel @@ -636,7 +858,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000) build_path = /obj/item/scalpel - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/circular_saw @@ -645,7 +870,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000) build_path = /obj/item/circular_saw - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/bonesetter @@ -654,7 +882,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) build_path = /obj/item/bonesetter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/surgicaldrill @@ -663,7 +894,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000) build_path = /obj/item/surgicaldrill - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/retractor @@ -672,7 +906,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 6000, /datum/material/glass = 3000) build_path = /obj/item/retractor - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/cautery @@ -681,7 +918,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 750) build_path = /obj/item/cautery - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/hemostat @@ -690,7 +930,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) build_path = /obj/item/hemostat - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/stethoscope @@ -699,7 +942,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000) build_path = /obj/item/clothing/neck/stethoscope - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/beaker @@ -707,18 +953,24 @@ id = "beaker" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) build_path = /obj/item/reagent_containers/cup/beaker - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_SCIENCE /datum/design/large_beaker name = "Large Beaker" id = "large_beaker" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 2500) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) build_path = /obj/item/reagent_containers/cup/beaker/large - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_SCIENCE /datum/design/pillbottle name = "Pill Bottle" @@ -726,168 +978,250 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 20, /datum/material/glass = 100) build_path = /obj/item/storage/pill_bottle - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/beanbag_slug name = "Beanbag Slug" id = "beanbag_slug" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000) build_path = /obj/item/ammo_casing/shotgun/beanbag - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/rubbershot name = "Rubber Shot" id = "rubber_shot" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/rubbershot - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c38 name = "Speed Loader (.38)" id = "c38" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000) build_path = /obj/item/ammo_box/c38 - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/recorder name = "Universal Recorder" id = "recorder" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 60, /datum/material/glass = 30) build_path = /obj/item/taperecorder/empty - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/tape - name = "Tape" + name = "Universal Recorder Tape" id = "tape" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20, /datum/material/glass = 5) build_path = /obj/item/tape/random - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/igniter name = "Igniter" id = "igniter" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/assembly/igniter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/condenser name = "Condenser" id = "condenser" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=250, /datum/material/glass=300) build_path = /obj/item/assembly/igniter/condenser - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/signaler name = "Remote Signaling Device" id = "signaler" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400, /datum/material/glass = 120) build_path = /obj/item/assembly/signaler - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TELECOMMS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/radio_headset name = "Radio Headset" id = "radio_headset" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75) build_path = /obj/item/radio/headset - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TELECOMMS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_TELECOMMS + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/bounced_radio name = "Station Bounced Radio" id = "bounced_radio" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75, /datum/material/glass = 25) build_path = /obj/item/radio/off - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TELECOMMS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_TELECOMMS + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/intercom_frame name = "Intercom Frame" id = "intercom_frame" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75, /datum/material/glass = 25) build_path = /obj/item/wallframe/intercom - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TELECOMMS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/infrared_emitter name = "Infrared Emitter" id = "infrared_emitter" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) build_path = /obj/item/assembly/infra - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/health_sensor name = "Health Sensor" id = "health_sensor" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/assembly/health - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/timer name = "Timer" id = "timer" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/assembly/timer - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/voice_analyzer name = "Voice Analyzer" id = "voice_analyzer" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/assembly/voice - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/light_tube name = "Light Tube" id = "light_tube" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 100) build_path = /obj/item/light/tube - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_LIGHTING + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/light_bulb name = "Light Bulb" id = "light_bulb" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 100) build_path = /obj/item/light/bulb - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_LIGHTING + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/camera_assembly name = "Camera Assembly" id = "camera_assembly" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400, /datum/material/glass = 250) build_path = /obj/item/wallframe/camera - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/newscaster_frame name = "Newscaster Frame" id = "newscaster_frame" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 14000, /datum/material/glass = 8000) build_path = /obj/item/wallframe/newscaster - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/status_display_frame name = "Status Display Frame" id = "status_display_frame" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 14000, /datum/material/glass = 8000) build_path = /obj/item/wallframe/status_display - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/syringe name = "Syringe" @@ -895,8 +1229,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10, /datum/material/glass = 20) build_path = /obj/item/reagent_containers/syringe - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/dropper name = "Dropper" @@ -904,49 +1241,71 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 10, /datum/material/plastic = 30) build_path = /obj/item/reagent_containers/dropper - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL, RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/prox_sensor name = "Proximity Sensor" id = "prox_sensor" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/assembly/prox_sensor - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/foam_dart name = "Box of Foam Darts" id = "foam_dart" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/ammo_box/foambox - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY -//hacked autolathe recipes /datum/design/flamethrower name = "Flamethrower" id = "flamethrower" build_type = AUTOLATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/flamethrower/full - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/electropack name = "Electropack" id = "electropack" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500) build_path = /obj/item/electropack - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/large_welding_tool name = "Industrial Welding Tool" id = "large_welding_tool" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 70, /datum/material/glass = 60) build_path = /obj/item/weldingtool/largetank - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/handcuffs name = "Handcuffs" @@ -954,7 +1313,19 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/restraints/handcuffs - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/handcuffs/sec + id = "handcuffs_s" + build_type = PROTOLATHE | AWAY_LATHE + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + autolathe_exportable = FALSE /datum/design/receiver name = "Modular Receiver" @@ -962,7 +1333,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 15000) build_path = /obj/item/weaponcrafting/receiver - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_PARTS + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/shotgun_dart name = "Shotgun Dart" @@ -970,7 +1345,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/dart - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/incendiary_slug name = "Incendiary Slug" @@ -978,7 +1357,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/shotgun/incendiary - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/riot_dart name = "Foam Riot Dart" @@ -986,7 +1369,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 1000) //Discount for making individually - no box = less iron! build_path = /obj/item/ammo_casing/caseless/foam_dart/riot - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/riot_darts name = "Foam Riot Dart Box" @@ -994,7 +1381,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 50000) //Comes with 40 darts build_path = /obj/item/ammo_box/foambox/riot - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/a357 name = ".357 Casing" @@ -1002,7 +1393,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 4000) build_path = /obj/item/ammo_casing/a357 - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c10mm name = "Ammo Box (10mm)" @@ -1010,7 +1405,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c10mm - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c45 name = "Ammo Box (.45)" @@ -1018,7 +1417,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c45 - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c9mm name = "Ammo Box (9mm)" @@ -1026,7 +1429,11 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 30000) build_path = /obj/item/ammo_box/c9mm - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_SECURITY) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/cleaver name = "Butcher's Cleaver" @@ -1034,16 +1441,22 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 18000) build_path = /obj/item/knife/butcher - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) /datum/design/spraycan name = "Spraycan" id = "spraycan" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/toy/crayon/spraycan - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/desttagger name = "Destination Tagger" @@ -1051,7 +1464,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 250, /datum/material/glass = 125) build_path = /obj/item/dest_tagger - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SERVICE /datum/design/salestagger name = "Sales Tagger" @@ -1059,7 +1476,10 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 700, /datum/material/glass = 200) build_path = /obj/item/sales_tagger - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SERVICE /datum/design/handlabeler @@ -1068,23 +1488,35 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150, /datum/material/glass = 125) build_path = /obj/item/hand_labeler - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/geiger name = "Geiger Counter" id = "geigercounter" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150, /datum/material/glass = 150) build_path = /obj/item/geiger_counter - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/turret_control_frame name = "Turret Control Frame" id = "turret_control" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 12000) build_path = /obj/item/wallframe/turret_control - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/conveyor_belt name = "Conveyor Belt" @@ -1092,9 +1524,12 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000) build_path = /obj/item/stack/conveyor - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION, RND_CATEGORY_ELECTRONICS) maxstack = 30 - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MACHINERY + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design/conveyor_switch name = "Conveyor Belt Switch" @@ -1102,48 +1537,71 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 450, /datum/material/glass = 190) build_path = /obj/item/conveyor_switch_construct - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION, RND_CATEGORY_ELECTRONICS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MACHINERY + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design/laptop name = "Laptop Frame" id = "laptop" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 1000) build_path = /obj/item/modular_computer/laptop/buildable - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_FRAMES + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/tablet name = "Tablet Frame" id = "tablet" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/modular_computer/tablet - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_FRAMES + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/slime_scanner name = "Slime Scanner" id = "slime_scanner" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 200) build_path = /obj/item/slime_scanner - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_XENOBIOLOGY + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/pet_carrier name = "Pet Carrier" id = "pet_carrier" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 7500, /datum/material/glass = 100) build_path = /obj/item/pet_carrier - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/miniature_power_cell name = "Light Fixture Battery" id = "miniature_power_cell" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 20) build_path = /obj/item/stock_parts/cell/emergency_light - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_LIGHTING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/package_wrap name = "Package Wrapping" @@ -1151,141 +1609,210 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 200) build_path = /obj/item/stack/package_wrap - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) maxstack = 30 + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO /datum/design/holodisk name = "Holodisk" id = "holodisk" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/disk/holodisk - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/circuit name = "Blue Circuit Tile" id = "circuit" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/stack/tile/circuit - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) maxstack = 50 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + /datum/design/circuitgreen name = "Green Circuit Tile" id = "circuitgreen" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/stack/tile/circuit/green - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) maxstack = 50 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/circuitred name = "Red Circuit Tile" id = "circuitred" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/stack/tile/circuit/red - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) maxstack = 50 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/price_tagger name = "Price Tagger" id = "price_tagger" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1500, /datum/material/glass = 500) build_path = /obj/item/price_tagger - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/custom_vendor_refill name = "Custom Vendor Refill" id = "custom_vendor_refill" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000) build_path = /obj/item/vending_refill/custom - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_MISC + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/ducts - name = "Fluid Ducts" + name = "Fluid Duct" id = "fluid_ducts" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/stack/ducts - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) maxstack = 50 + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PLUMBING + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design/toygun name = "Cap Gun" id = "toygun" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/toy/gun - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/capbox name = "Box of Cap Gun Shots" id = "capbox" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20, /datum/material/glass = 5) build_path = /obj/item/toy/ammo/gun - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/toy_balloon name = "Plastic Balloon" id = "toy_balloon" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 1200) build_path = /obj/item/toy/balloon - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/toy_armblade name = "Plastic Armblade" id = "toy_armblade" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 2000) build_path = /obj/item/toy/foamblade - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plastic_tree name = "Plastic Potted Plant" id = "plastic_trees" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 8000) build_path = /obj/item/kirbyplants/fullysynthetic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/beads name = "Plastic Bead Necklace" id = "plastic_necklace" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 500) build_path = /obj/item/clothing/neck/beads - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plastic_ring name = "Plastic Can Rings" id = "ring_holder" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 1200) build_path = /obj/item/storage/cans - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_DINNERWARE) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plastic_box name = "Plastic Box" id = "plastic_box" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 1000) build_path = /obj/item/storage/box/plastic - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/sticky_tape name = "Sticky Tape" id = "sticky_tape" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 500) build_path = /obj/item/stack/sticky_tape - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT) maxstack = 5 + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/sticky_tape/surgical name = "Surgical Tape" @@ -1293,7 +1820,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 500) build_path = /obj/item/stack/sticky_tape/surgical - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/petridish @@ -1302,7 +1832,10 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/glass = 500) build_path = /obj/item/petri_dish - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_XENOBIOLOGY + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/swab @@ -1311,24 +1844,35 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/plastic = 200) build_path = /obj/item/swab - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_XENOBIOLOGY + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/chisel name = "Chisel" id = "chisel" - build_type = AUTOLATHE + build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 75) build_path = /obj/item/chisel - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/control name = "Blast Door Controller" id = "blast" - build_type = AUTOLATHE + build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/assembly/control - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/razor name = "Electric Razor" @@ -1336,8 +1880,11 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 75) build_path = /obj/item/razor - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MEDICAL) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SECURITY /datum/design/paperroll name = "Hand Labeler Paper Roll" @@ -1345,7 +1892,11 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 50, /datum/material/glass = 25) build_path = /obj/item/hand_labeler_refill - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/toner name = "Toner Cartridge" @@ -1353,38 +1904,56 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10, /datum/material/glass = 10) build_path = /obj/item/toner - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/toner/large - name = "Large Toner Cartridge" + name = "Toner Cartridge (Large)" id = "toner_large" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 35, /datum/material/glass = 35) build_path = /obj/item/toner/large - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/solar name = "Solar Panel Frame" id = "solar_panel" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3500, /datum/material/glass = 1000) build_path = /obj/item/solar_assembly - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/tracker_electronics name = "Solar Tracking Electronics" id = "solar_tracker" - build_type = AUTOLATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 500) build_path = /obj/item/electronics/tracker - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_ELECTRONICS, RND_CATEGORY_CONSTRUCTION) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/fishing_rod_basic name = "Fishing Rod" id = "fishing_rod" - build_type = AUTOLATHE | AWAY_LATHE + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 200) build_path = /obj/item/fishing_rod - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_MISC, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index a0dc5d3c6a7..9b6039234d6 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -10,7 +10,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 150, /datum/material/glass = 100) build_path = /obj/item/beacon - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SECURITY /datum/design/bag_holding @@ -20,7 +22,9 @@ build_type = PROTOLATHE materials = list(/datum/material/gold = 3000, /datum/material/diamond = 1500, /datum/material/uranium = 250, /datum/material/bluespace = 2000) build_path = /obj/item/bag_of_holding_inert - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) dangerous_construction = TRUE departmental_flags = DEPARTMENT_BITFLAG_SCIENCE @@ -31,7 +35,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/diamond = 1500, /datum/material/plasma = 1500) build_path = /obj/item/stack/ore/bluespace_crystal/artificial - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/telesci_gps @@ -41,7 +47,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/gps - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO autolathe_exportable = FALSE @@ -52,7 +60,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/silver = 1500, /datum/material/bluespace = 1000) build_path = /obj/item/desynchronizer - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/miningsatchel_holding @@ -62,7 +72,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/gold = 250, /datum/material/uranium = 500) //quite cheap, for more convenience build_path = /obj/item/storage/bag/ore/holding - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/swapper @@ -72,5 +84,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 1000, /datum/material/bluespace = 2000, /datum/material/gold = 1500, /datum/material/silver = 1000) build_path = /obj/item/swapper - category = list(RND_CATEGORY_BLUESPACE_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index e704efcf22e..66d71c7fd56 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -1,317 +1,387 @@ ///////////////////Computer Boards/////////////////////////////////// /datum/design/board - name = "Computer Design ( NULL ENTRY )" + name = "NULL ENTRY Board" desc = "I promise this doesn't give you syndicate goodies!" build_type = IMPRINTER | AWAY_IMPRINTER materials = list(/datum/material/glass = 1000) /datum/design/board/arcade_battle - name = "Computer Design (Battle Arcade Machine)" + name = "Battle Arcade Machine Board" desc = "Allows for the construction of circuit boards used to build a new arcade machine." id = "arcade_battle" build_path = /obj/item/circuitboard/computer/arcade/battle - category = list(RND_CATEGORY_COMPUTER_BOARDS) - + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENTERTAINMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/orion_trail - name = "Computer Design (Orion Trail Arcade Machine)" + name = "Orion Trail Arcade Machine Board" desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine." id = "arcade_orion" build_path = /obj/item/circuitboard/computer/arcade/orion_trail - category = list(RND_CATEGORY_COMPUTER_BOARDS) - + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENTERTAINMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/seccamera - name = "Computer Design (Security Camera)" + name = "Security Camera Board" desc = "Allows for the construction of circuit boards used to build security camera computers." id = "seccamera" build_path = /obj/item/circuitboard/computer/security - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/board/rdcamera - name = "Computer Design (Research Monitor)" + name = "Research Monitor Board" desc = "Allows for the construction of circuit boards used to build research camera computers." id = "rdcamera" build_path = /obj/item/circuitboard/computer/research - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/xenobiocamera - name = "Computer Design (Xenobiology Console)" + name = "Xenobiology Console Board" desc = "Allows for the construction of circuit boards used to build xenobiology camera computers." id = "xenobioconsole" build_path = /obj/item/circuitboard/computer/xenobiology - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/aiupload - name = "Computer Design (AI Upload)" + name = "AI Upload Board" desc = "Allows for the construction of circuit boards used to build an AI Upload Console." id = "aiupload" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/diamond = 2000, /datum/material/bluespace = 2000) build_path = /obj/item/circuitboard/computer/aiupload - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/borgupload - name = "Computer Design (Cyborg Upload)" + name = "Cyborg Upload Board" desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." id = "borgupload" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/diamond = 2000, /datum/material/bluespace = 2000) build_path = /obj/item/circuitboard/computer/borgupload - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/med_data - name = "Computer Design (Medical Records)" + name = "Medical Records Board" desc = "Allows for the construction of circuit boards used to build a medical records console." id = "med_data" build_path = /obj/item/circuitboard/computer/med_data - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/operating - name = "Computer Design (Operating Computer)" + name = "Operating Computer Board" desc = "Allows for the construction of circuit boards used to build an operating computer console." id = "operating" build_path = /obj/item/circuitboard/computer/operating - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/pandemic - name = "Computer Design (PanD.E.M.I.C. 2200)" + name = "PanD.E.M.I.C. 2200 Board" desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." id = "pandemic" build_path = /obj/item/circuitboard/computer/pandemic - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL -/datum/design/board/scan_console - name = "Computer Design (DNA Console)" - desc = "Allows for the construction of circuit boards used to build a new DNA console." - id = "scan_console" - build_path = /obj/item/circuitboard/computer/scan_consolenew - category = list(RND_CATEGORY_COMPUTER_BOARDS) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE - /datum/design/board/comconsole - name = "Computer Design (Communications)" + name = "Communications Board" desc = "Allows for the construction of circuit boards used to build a communications console." id = "comconsole" build_path = /obj/item/circuitboard/computer/communications - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_COMMAND + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SECURITY //Honestly should have a bridge techfab for this sometime. /datum/design/board/crewconsole - name = "Computer Design (Crew monitoring computer)" + name = "Crew Monitoring Computer Board" desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer." id = "crewconsole" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/crew - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/secdata - name = "Computer Design (Security Records Console)" + name = "Security Records Console Board" desc = "Allows for the construction of circuit boards used to build a security records console." id = "secdata" build_path = /obj/item/circuitboard/computer/secure_data - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/board/atmosalerts - name = "Computer Design (Atmosphere Alert)" + name = "Atmosphere Alert Board" desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." id = "atmosalerts" build_path = /obj/item/circuitboard/computer/atmos_alert - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/atmos_control - name = "Computer Design (Atmospheric Monitor)" + name = "Atmospheric Monitor Board" desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." id = "atmos_control" build_path = /obj/item/circuitboard/computer/atmos_control - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/robocontrol - name = "Computer Design (Robotics Control Console)" + name = "Robotics Control Console Board" desc = "Allows for the construction of circuit boards used to build a Robotics Control console." id = "robocontrol" materials = list(/datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000, /datum/material/bluespace = 2000) build_path = /obj/item/circuitboard/computer/robotics - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/slot_machine - name = "Computer Design (Slot Machine)" + name = "Slot Machine Board" desc = "Allows for the construction of circuit boards used to build a new slot machine." id = "slotmachine" build_path = /obj/item/circuitboard/computer/slot_machine - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENTERTAINMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/powermonitor - name = "Computer Design (Power Monitor)" + name = "Power Monitor Board" desc = "Allows for the construction of circuit boards used to build a new power monitor." id = "powermonitor" build_path = /obj/item/circuitboard/computer/powermonitor - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/solarcontrol - name = "Computer Design (Solar Control)" + name = "Solar Control Board" desc = "Allows for the construction of circuit boards used to build a solar control console." id = "solarcontrol" build_path = /obj/item/circuitboard/computer/solar_control - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/prisonmanage - name = "Computer Design (Prisoner Management Console)" + name = "Prisoner Management Console Board" desc = "Allows for the construction of circuit boards used to build a prisoner management console." id = "prisonmanage" build_path = /obj/item/circuitboard/computer/prisoner - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/board/mechacontrol - name = "Computer Design (Exosuit Control Console)" + name = "Exosuit Control Console Board" desc = "Allows for the construction of circuit boards used to build an exosuit control console." id = "mechacontrol" build_path = /obj/item/circuitboard/computer/mecha_control - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/mechapower - name = "Computer Design (Mech Bay Power Control Console)" + name = "Mech Bay Power Control Console Board" desc = "Allows for the construction of circuit boards used to build a mech bay power control console." id = "mechapower" build_path = /obj/item/circuitboard/computer/mech_bay_power_console - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/rdconsole - name = "Computer Design (R&D Console)" + name = "R&D Console Board" desc = "Allows for the construction of circuit boards used to build a new R&D console." id = "rdconsole" build_path = /obj/item/circuitboard/computer/rdconsole - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/cargo - name = "Computer Design (Supply Console)" + name = "Supply Console Board" desc = "Allows for the construction of circuit boards used to build a Supply Console." id = "cargo" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/cargo - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/cargorequest - name = "Computer Design (Supply Request Console)" + name = "Supply Request Console Board" desc = "Allows for the construction of circuit boards used to build a Supply Request Console." id = "cargorequest" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/cargo/request - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/mining - name = "Computer Design (Outpost Status Display)" + name = "Outpost Status Display Board" desc = "Allows for the construction of circuit boards used to build an outpost status display console." id = "mining" build_path = /obj/item/circuitboard/computer/mining - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SECURITY /datum/design/board/comm_monitor - name = "Computer Design (Telecommunications Monitoring Console)" + name = "Telecommunications Monitoring Console Board" desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." id = "comm_monitor" build_path = /obj/item/circuitboard/computer/comm_monitor - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/comm_server - name = "Computer Design (Telecommunications Server Monitoring Console)" + name = "Telecommunications Server Monitoring Console Board" desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor." id = "comm_server" build_path = /obj/item/circuitboard/computer/comm_server - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/message_monitor - name = "Computer Design (Messaging Monitor Console)" + name = "Messaging Monitor Console Board" desc = "Allows for the construction of circuit boards used to build a messaging monitor console." id = "message_monitor" build_path = /obj/item/circuitboard/computer/message_monitor - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/aifixer - name = "Computer Design (AI Integrity Restorer)" + name = "AI Integrity Restorer Board" desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." id = "aifixer" build_path = /obj/item/circuitboard/computer/aifixer - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/libraryconsole - name = "Computer Design (Library Console)" + name = "Library Console Board" desc = "Allows for the construction of circuit boards used to build a new library console." id = "libraryconsole" build_path = /obj/item/circuitboard/computer/libraryconsole - category = list(RND_CATEGORY_COMPUTER_BOARDS) - + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENTERTAINMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/apc_control - name = "Computer Design (APC Control)" + name = "APC Control Board" desc = "Allows for the construction of circuit boards used to build a new APC control console." id = "apc_control" build_path = /obj/item/circuitboard/computer/apc_control - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/advanced_camera - name = "Computer Design (Advanced Camera Console)" + name = "Advanced Camera Console Board" desc = "Allows for the construction of circuit boards used to build advanced camera consoles." id = "advanced_camera" build_path = /obj/item/circuitboard/computer/advanced_camera - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/board/bountypad_control - name = "Computer Design (Civilian Bounty Pad Control)" + name = "Civilian Bounty Pad Control Board" desc = "Allows for the construction of circuit boards used to build a new civilian bounty pad console." id = "bounty_pad_control" build_path = /obj/item/circuitboard/computer/bountypad - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/exoscanner_console - name = "Computer Design (Scanner Array Control Console)" + name = "Scanner Array Control Console Board" desc = "Allows for the construction of circuit boards used to build a new scanner array control console." id = "exoscanner_console" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/exoscanner_console - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_RESEARCH + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/exodrone_console - name = "Computer Design (Exploration Drone Control Console)" + name = "Exploration Drone Control Console Board" desc = "Allows for the construction of circuit boards used to build a new exploration drone control console." id = "exodrone_console" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/exodrone_console - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_RESEARCH + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/accounting_console - name = "Computer Design (Account Lookup Console)" + name = "Account Lookup Console Board" desc = "Allows for the construction of circuit boards used to assess the wealth of crewmates on station." id = "account_console" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/accounting - category = list(RND_CATEGORY_COMPUTER_BOARDS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index a78fce3ed90..4bb3b219e45 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -8,7 +8,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400, /datum/material/glass = 100) build_path = /obj/item/computer_hardware/hard_drive - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/disk/advanced @@ -17,7 +19,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/computer_hardware/hard_drive/advanced - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/disk/super @@ -26,7 +30,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1600, /datum/material/glass = 400) build_path = /obj/item/computer_hardware/hard_drive/super - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/disk/cluster @@ -35,7 +41,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3200, /datum/material/glass = 800) build_path = /obj/item/computer_hardware/hard_drive/cluster - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/disk/small @@ -44,7 +52,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 800, /datum/material/glass = 200) build_path = /obj/item/computer_hardware/hard_drive/small - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/disk/micro @@ -53,7 +63,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400, /datum/material/glass = 100) build_path = /obj/item/computer_hardware/hard_drive/micro - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING // Data disks @@ -63,7 +75,9 @@ build_type = IMPRINTER | AWAY_IMPRINTER materials = list(/datum/material/glass = 800) build_path = /obj/item/computer_hardware/hard_drive/portable - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/portabledrive/advanced @@ -72,7 +86,9 @@ build_type = IMPRINTER | AWAY_IMPRINTER materials = list(/datum/material/glass = 1600) build_path = /obj/item/computer_hardware/hard_drive/portable/advanced - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/portabledrive/super @@ -81,7 +97,9 @@ build_type = IMPRINTER | AWAY_IMPRINTER materials = list(/datum/material/glass = 3200) build_path = /obj/item/computer_hardware/hard_drive/portable/super - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING // Card slot @@ -91,7 +109,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600) build_path = /obj/item/computer_hardware/card_slot - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING // Batteries @@ -101,7 +121,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400) build_path = /obj/item/computer_hardware/battery - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/battery/normal @@ -110,7 +132,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400) build_path = /obj/item/stock_parts/cell/computer - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/battery/advanced @@ -119,7 +143,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 800) build_path = /obj/item/stock_parts/cell/computer/advanced - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/battery/super @@ -128,7 +154,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1600) build_path = /obj/item/stock_parts/cell/computer/super - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/battery/nano @@ -137,7 +165,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200) build_path = /obj/item/stock_parts/cell/computer/nano - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/battery/micro @@ -146,5 +176,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 400) build_path = /obj/item/stock_parts/cell/computer/micro - category = list(RND_CATEGORY_COMPUTER_PARTS) + category = list( + RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index 8ba72550f7c..63373d58d13 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -10,7 +10,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 1000, /datum/material/gold = 200) build_path = /obj/item/aicard - category = list(RND_CATEGORY_ELECTRONICS) + category = list(RND_CATEGORY_AI) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/paicard @@ -20,8 +20,8 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500, /datum/material/iron = 500) build_path = /obj/item/pai_card - category = list(RND_CATEGORY_ELECTRONICS) - + category = list(RND_CATEGORY_AI) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design/ai_cam_upgrade name = "AI Surveillance Software Update" @@ -30,7 +30,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/gold = 15000, /datum/material/silver = 15000, /datum/material/diamond = 20000, /datum/material/plasma = 10000) build_path = /obj/item/surveillance_upgrade - category = list(RND_CATEGORY_ELECTRONICS) + category = list(RND_CATEGORY_AI) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE //////////////////////////////////////// @@ -43,7 +43,9 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 100) build_path = /obj/item/disk/design_disk - category = list(RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/design_disk_adv @@ -53,7 +55,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver=50) build_path = /obj/item/disk/design_disk/adv - category = list(RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/tech_disk @@ -63,5 +67,7 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 100) build_path = /obj/item/disk/tech_disk - category = list(RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/experisci_designs.dm b/code/modules/research/designs/experisci_designs.dm index 5f4d815b0ed..5c1b6796f25 100644 --- a/code/modules/research/designs/experisci_designs.dm +++ b/code/modules/research/designs/experisci_designs.dm @@ -5,5 +5,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500, /datum/material/iron = 500) build_path = /obj/item/experi_scanner - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 2a6cfee1c5b..4c8f793d028 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -24,7 +24,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 25) build_path = /obj/item/bodypart/l_leg - category = list(RND_CATEGORY_INITIAL, SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_MOTH, SPECIES_PLASMAMAN, SPECIES_ETHEREAL, RND_CATEGORY_DIGITIGRADE) + category = list(RND_CATEGORY_INITIAL, SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_MOTH, SPECIES_PLASMAMAN, SPECIES_ETHEREAL, RND_CATEGORY_LIMBS_DIGITIGRADE) /datum/design/rightleg name = "Right Leg" @@ -32,7 +32,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 25) build_path = /obj/item/bodypart/r_leg - category = list(RND_CATEGORY_INITIAL, SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_MOTH, SPECIES_PLASMAMAN, SPECIES_ETHEREAL, RND_CATEGORY_DIGITIGRADE) + category = list(RND_CATEGORY_INITIAL, SPECIES_HUMAN, SPECIES_LIZARD, SPECIES_MOTH, SPECIES_PLASMAMAN, SPECIES_ETHEREAL, RND_CATEGORY_LIMBS_DIGITIGRADE) //Non-limb limb designs @@ -123,7 +123,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 20) build_path = /obj/item/organ/external/tail/monkey - category = list(RND_CATEGORY_OTHER, RND_CATEGORY_INITIAL) + category = list(RND_CATEGORY_LIMBS_OTHER, RND_CATEGORY_INITIAL) /datum/design/cat_tail name = "Cat Tail" @@ -212,7 +212,7 @@ build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 75) build_path = /obj/item/melee/synthetic_arm_blade - category = list(RND_CATEGORY_OTHER, RND_CATEGORY_EMAGGED) + category = list(RND_CATEGORY_LIMBS_OTHER, RND_CATEGORY_EMAGGED) /// Design disks and designs - for adding limbs and organs to the limbgrower. /obj/item/disk/design_disk/limbs @@ -236,7 +236,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 100) build_path = /obj/item/disk/design_disk/limbs - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /obj/item/disk/design_disk/limbs/felinid diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 09f12431500..c92cbace80e 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -2,789 +2,997 @@ //////////////MISC Boards/////////////// //////////////////////////////////////// /datum/design/board/electrolyzer - name = "Machine Design (Electrolyzer Board)" + name = "Electrolyzer Board" desc = "The circuit board for an electrolyzer." id = "electrolyzer" build_path = /obj/item/circuitboard/machine/electrolyzer - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/smes - name = "Machine Design (SMES Board)" + name = "SMES Board" desc = "The circuit board for a SMES." id = "smes" build_path = /obj/item/circuitboard/machine/smes - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/announcement_system - name = "Machine Design (Automated Announcement System Board)" + name = "Automated Announcement System Board" desc = "The circuit board for an automated announcement system." id = "automated_announcement" build_path = /obj/item/circuitboard/machine/announcement_system - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/turbine_computer - name = "Computer Design (Power Turbine Console Board)" - desc = "The circuit board for a power turbine console." + name = "Turbine Power Console Board" + desc = "The circuit board for a turbine power console." id = "power_turbine_console" build_path = /obj/item/circuitboard/computer/turbine_computer - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/emitter - name = "Machine Design (Emitter Board)" + name = "Emitter Board" desc = "The circuit board for an emitter." id = "emitter" build_path = /obj/item/circuitboard/machine/emitter - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/turbine_compressor - name = "Machine Design (Turbine Compressor Board)" + name = "Turbine Compressor Board" desc = "The circuit board for a turbine compressor." id = "turbine_compressor" build_path = /obj/item/circuitboard/machine/turbine_compressor - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/turbine_rotor - name = "Machine Design (Turbine Rotor Board)" + name = "Turbine Rotor Board" desc = "The circuit board for a turbine rotor." id = "turbine_rotor" build_path = /obj/item/circuitboard/machine/turbine_rotor - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/turbine_stator - name = "Machine Design (Turbine Stator Board)" + name = "Turbine Stator Board" desc = "The circuit board for a turbine stator." id = "turbine_stator" build_path = /obj/item/circuitboard/machine/turbine_stator - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/thermomachine - name = "Machine Design (Thermomachine Board)" + name = "Thermomachine Board" desc = "The circuit board for a thermomachine." id = "thermomachine" build_path = /obj/item/circuitboard/machine/thermomachine - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/space_heater - name = "Machine Design (Space Heater Board)" + name = "Space Heater Board" desc = "The circuit board for a space heater." id = "space_heater" build_path = /obj/item/circuitboard/machine/space_heater - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) - departmental_flags = ALL + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/teleport_station - name = "Machine Design (Teleportation Station Board)" + name = "Teleportation Station Board" desc = "The circuit board for a teleportation station." id = "tele_station" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/teleporter_station - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/teleport_hub - name = "Machine Design (Teleportation Hub Board)" + name = "Teleportation Hub Board" desc = "The circuit board for a teleportation hub." id = "tele_hub" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/teleporter_hub - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/quantumpad - name = "Machine Design (Quantum Pad Board)" + name = "Quantum Pad Board" desc = "The circuit board for a quantum telepad." id = "quantumpad" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/quantumpad - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/launchpad - name = "Machine Design (Bluespace Launchpad Board)" + name = "Bluespace Launchpad Board" desc = "The circuit board for a bluespace Launchpad." id = "launchpad" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/launchpad - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/launchpad_console - name = "Machine Design (Bluespace Launchpad Console Board)" + name = "Bluespace Launchpad Console Board" desc = "The circuit board for a bluespace launchpad Console." id = "launchpad_console" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/launchpad_console - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/teleconsole - name = "Computer Design (Teleporter Console)" + name = "Teleporter Console Board" desc = "Allows for the construction of circuit boards used to build a teleporter control console." id = "teleconsole" build_type = IMPRINTER build_path = /obj/item/circuitboard/computer/teleporter - category = list(RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/cryotube - name = "Machine Design (Cryotube Board)" + name = "Cryotube Board" desc = "The circuit board for a cryotube." id = "cryotube" build_path = /obj/item/circuitboard/machine/cryo_tube + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL - category = list (RND_CATEGORY_MEDICAL_MACHINERY) /datum/design/board/chem_dispenser - name = "Machine Design (Portable Chem Dispenser Board)" + name = "Portable Chem Dispenser Board" desc = "The circuit board for a portable chem dispenser." id = "chem_dispenser" build_path = /obj/item/circuitboard/machine/chem_dispenser + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL - category = list (RND_CATEGORY_MEDICAL_MACHINERY) /datum/design/board/chem_master - name = "Machine Design (Chem Master Board)" + name = "Chem Master Board" desc = "The circuit board for a Chem Master 3000." id = "chem_master" - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL build_path = /obj/item/circuitboard/machine/chem_master - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/chem_heater - name = "Machine Design (Chemical Heater Board)" + name = "Chemical Heater Board" desc = "The circuit board for a chemical heater." id = "chem_heater" - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL build_path = /obj/item/circuitboard/machine/chem_heater - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/chem_mass_spec - name = "Machine Design (High-Performance Liquid Chromatography)" - desc = "The circuit board for a High-Performance Liquid Chromatography (Machine Board)" + name = "High-Performance Liquid Chromatography Board" + desc = "The circuit board for a High-Performance Liquid Chromatography (Machine Board" id = "chem_mass_spec" - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL build_path = /obj/item/circuitboard/machine/chem_mass_spec - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/smoke_machine - name = "Machine Design (Smoke Machine)" + name = "Smoke Machine Board" desc = "The circuit board for a smoke machine." id = "smoke_machine" build_path = /obj/item/circuitboard/machine/smoke_machine - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/reagentgrinder - name = "Machine Design (All-In-One Grinder)" + name = "All-In-One Grinder Board" desc = "The circuit board for an All-In-One Grinder." id = "reagentgrinder" build_path = /obj/item/circuitboard/machine/reagentgrinder - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) + category = list(RND_CATEGORY_MACHINE) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE /datum/design/board/hypnochair - name = "Machine Design (Enhanced Interrogation Chamber)" + name = "Enhanced Interrogation Chamber Board" desc = "Allows for the construction of circuit boards used to build an Enhanced Interrogation Chamber." id = "hypnochair" - departmental_flags = DEPARTMENT_BITFLAG_SECURITY build_path = /obj/item/circuitboard/machine/hypnochair - category = list(RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/board/biogenerator - name = "Machine Design (Biogenerator Board)" + name = "Biogenerator Board" desc = "The circuit board for a biogenerator." id = "biogenerator" build_path = /obj/item/circuitboard/machine/biogenerator - category = list(RND_CATEGORY_HYDROPONICS_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/hydroponics - name = "Machine Design (Hydroponics Tray Board)" + name = "Hydroponics Tray Board" desc = "The circuit board for a hydroponics tray." id = "hydro_tray" build_path = /obj/item/circuitboard/machine/hydroponics - category = list(RND_CATEGORY_HYDROPONICS_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/destructive_analyzer - name = "Machine Design (Destructive Analyzer Board)" + name = "Destructive Analyzer Board" desc = "The circuit board for a destructive analyzer." id = "destructive_analyzer" build_path = /obj/item/circuitboard/machine/destructive_analyzer - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/experimentor - name = "Machine Design (E.X.P.E.R.I-MENTOR Board)" + name = "E.X.P.E.R.I-MENTOR Board" desc = "The circuit board for an E.X.P.E.R.I-MENTOR." id = "experimentor" build_path = /obj/item/circuitboard/machine/experimentor - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/bepis - name = "Machine Design (B.E.P.I.S. Board)" + name = "B.E.P.I.S. Board" desc = "The circuit board for a B.E.P.I.S." id = "bepis" build_path = /obj/item/circuitboard/machine/bepis - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design/board/protolathe - name = "Machine Design (Protolathe Board)" + name = "Protolathe Board" desc = "The circuit board for a protolathe." id = "protolathe" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/protolathe - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/protolathe/offstation - name = "Machine Design (Ancient Protolathe Board)" + name = "Ancient Protolathe Board" desc = "The circuit board for an ancient protolathe." id = "protolathe_offstation" build_type = AWAY_IMPRINTER build_path = /obj/item/circuitboard/machine/protolathe/offstation - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/circuit_imprinter - name = "Machine Design (Circuit Imprinter Board)" + name = "Circuit Imprinter Board" desc = "The circuit board for a circuit imprinter." id = "circuit_imprinter" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/circuit_imprinter - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/circuit_imprinter/offstation - name = "Machine Design (Ancient Circuit Imprinter Board)" + name = "Ancient Circuit Imprinter Board" desc = "The circuit board for an ancient circuit imprinter." id = "circuit_imprinter_offstation" build_type = AWAY_IMPRINTER build_path = /obj/item/circuitboard/machine/circuit_imprinter/offstation - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/rdservercontrol - name = "Computer Design (R&D Server Control Console Board)" + name = "R&D Server Control Console Board" desc = "The circuit board for an R&D Server Control Console." id = "rdservercontrol" build_path = /obj/item/circuitboard/computer/rdservercontrol - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/rdserver - name = "Machine Design (R&D Server Board)" + name = "R&D Server Board" desc = "The circuit board for an R&D Server." id = "rdserver" build_path = /obj/item/circuitboard/machine/rdserver - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/mechfab - name = "Machine Design (Exosuit Fabricator Board)" + name = "Exosuit Fabricator Board" desc = "The circuit board for an Exosuit Fabricator." id = "mechfab" build_path = /obj/item/circuitboard/machine/mechfab - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/cyborgrecharger - name = "Machine Design (Cyborg Recharger Board)" + name = "Cyborg Recharger Board" desc = "The circuit board for a Cyborg Recharger." id = "cyborgrecharger" build_path = /obj/item/circuitboard/machine/cyborgrecharger - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/mech_recharger - name = "Machine Design (Mechbay Recharger Board)" + name = "Mechbay Recharger Board" desc = "The circuit board for a Mechbay Recharger." id = "mech_recharger" build_path = /obj/item/circuitboard/machine/mech_recharger - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ROBOTICS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/dnascanner - name = "Machine Design (DNA Scanner)" + name = "DNA Scanner Board" desc = "The circuit board for a DNA Scanner." id = "dnascanner" - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE build_path = /obj/item/circuitboard/machine/dnascanner - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_GENETICS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/board/scan_console + name = "DNA Console Board" + desc = "Allows for the construction of circuit boards used to build a new DNA console." + id = "scan_console" + build_path = /obj/item/circuitboard/computer/scan_consolenew + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_GENETICS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/destructive_scanner - name = "Machine Design (Destructive Scanner Board)" + name = "Destructive Scanner Board" desc = "The circuit board for an experimental destructive scanner." id = "destructive_scanner" build_path = /obj/item/circuitboard/machine/destructive_scanner - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/doppler_array - name = "Machine Design (Tachyon-Doppler Research Array Board)" + name = "Tachyon-Doppler Research Array Board" desc = "The circuit board for a tachyon-doppler research array" id = "doppler_array" build_path = /obj/item/circuitboard/machine/doppler_array - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/anomaly_refinery - name = "Machine Design (Anomaly Refinery Board)" + name = "Anomaly Refinery Board" desc = "The circuit board for an anomaly refinery" id = "anomaly_refinery" build_path = /obj/item/circuitboard/machine/anomaly_refinery - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/tank_compressor - name = "Machine Design (Tank Compressor Board)" + name = "Tank Compressor Board" desc = "The circuit board for a tank compressor" id = "tank_compressor" build_path = /obj/item/circuitboard/machine/tank_compressor - category = list(RND_CATEGORY_RESEARCH_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/microwave - name = "Machine Design (Microwave Board)" + name = "Microwave Board" desc = "The circuit board for a microwave." id = "microwave" build_path = /obj/item/circuitboard/machine/microwave - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/gibber - name = "Machine Design (Gibber Board)" + name = "Gibber Board" desc = "The circuit board for a gibber." id = "gibber" build_path = /obj/item/circuitboard/machine/gibber - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/smartfridge - name = "Machine Design (Smartfridge Board)" + name = "Smartfridge Board" desc = "The circuit board for a smartfridge." id = "smartfridge" build_path = /obj/item/circuitboard/machine/smartfridge - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/monkey_recycler - name = "Machine Design (Monkey Recycler Board)" + name = "Monkey Recycler Board" desc = "The circuit board for a monkey recycler." id = "monkey_recycler" build_path = /obj/item/circuitboard/machine/monkey_recycler - category = list (RND_CATEGORY_MISC_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/seed_extractor - name = "Machine Design (Seed Extractor Board)" + name = "Seed Extractor Board" desc = "The circuit board for a seed extractor." id = "seed_extractor" build_path = /obj/item/circuitboard/machine/seed_extractor - category = list(RND_CATEGORY_HYDROPONICS_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/processor - name = "Machine Design (Food/Slime Processor Board)" + name = "Food/Slime Processor Board" desc = "The circuit board for a processing unit. Screwdriver the circuit to switch between food (default) or slime processing." id = "processor" build_path = /obj/item/circuitboard/machine/processor - category = list(RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE /datum/design/board/soda_dispenser - name = "Machine Design (Portable Soda Dispenser Board)" + name = "Portable Soda Dispenser Board" desc = "The circuit board for a portable soda dispenser." id = "soda_dispenser" build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_BAR + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE - category = list(RND_CATEGORY_MISC_MACHINERY) /datum/design/board/beer_dispenser - name = "Machine Design (Portable Booze Dispenser Board)" + name = "Portable Booze Dispenser Board" desc = "The circuit board for a portable booze dispenser." id = "beer_dispenser" build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_BAR + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE - category = list(RND_CATEGORY_MISC_MACHINERY) /datum/design/board/recycler - name = "Machine Design (Recycler Board)" + name = "Recycler Board" desc = "The circuit board for a recycler." id = "recycler" build_path = /obj/item/circuitboard/machine/recycler - category = list(RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/scanner_gate - name = "Machine Design (Scanner Gate)" + name = "Scanner Gate Board" desc = "The circuit board for a scanner gate." id = "scanner_gate" build_path = /obj/item/circuitboard/machine/scanner_gate - category = list(RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/holopad - name = "Machine Design (AI Holopad Board)" + name = "AI Holopad Board" desc = "The circuit board for a holopad." id = "holopad" build_path = /obj/item/circuitboard/machine/holopad - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/autolathe - name = "Machine Design (Autolathe Board)" + name = "Autolathe Board" desc = "The circuit board for an autolathe." id = "autolathe" build_path = /obj/item/circuitboard/machine/autolathe - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/recharger - name = "Machine Design (Weapon Recharger Board)" + name = "Weapon Recharger Board" desc = "The circuit board for a Weapon Recharger." id = "recharger" materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000) build_path = /obj/item/circuitboard/machine/recharger - category = list(RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/vendor - name = "Machine Design (Vendor Board)" + name = "Vendor Board" desc = "The circuit board for a Vendor." id = "vendor" build_path = /obj/item/circuitboard/machine/vendor - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/ore_redemption - name = "Machine Design (Ore Redemption Board)" + name = "Ore Redemption Machine Board" desc = "The circuit board for an Ore Redemption machine." id = "ore_redemption" build_path = /obj/item/circuitboard/machine/ore_redemption - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/mining_equipment_vendor - name = "Machine Design (Mining Rewards Vendor Board)" + name = "Mining Rewards Vendor Board" desc = "The circuit board for a Mining Rewards Vendor." id = "mining_equipment_vendor" build_path = /obj/item/circuitboard/machine/mining_equipment_vendor - category = list (RND_CATEGORY_MISC_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/tesla_coil - name = "Machine Design (Tesla Coil Board)" + name = "Tesla Coil Board" desc = "The circuit board for a tesla coil." id = "tesla_coil" build_path = /obj/item/circuitboard/machine/tesla_coil - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/grounding_rod - name = "Machine Design (Grounding Rod Board)" + name = "Grounding Rod Board" desc = "The circuit board for a grounding rod." id = "grounding_rod" build_path = /obj/item/circuitboard/machine/grounding_rod - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/ntnet_relay - name = "Machine Design (NTNet Relay Board)" + name = "NTNet Relay Board" desc = "The circuit board for a wireless network relay." id = "ntnet_relay" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/ntnet_relay - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/limbgrower - name = "Machine Design (Limb Grower Board)" + name = "Limb Grower Board" desc = "The circuit board for a limb grower." id = "limbgrower" build_path = /obj/item/circuitboard/machine/limbgrower - category = list(RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/harvester - name = "Machine Design (Organ Harvester Board)" + name = "Organ Harvester Board" desc = "The circuit board for an organ harvester." id = "harvester" build_path = /obj/item/circuitboard/machine/harvester - category = list(RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/deepfryer - name = "Machine Design (Deep Fryer)" + name = "Deep Fryer Board" desc = "The circuit board for a Deep Fryer." id = "deepfryer" build_path = /obj/item/circuitboard/machine/deep_fryer - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/griddle - name = "Machine Design (Griddle)" + name = "Griddle Board" desc = "The circuit board for a Griddle." id = "griddle" build_path = /obj/item/circuitboard/machine/griddle - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/oven - name = "Machine Design (Oven)" + name = "Oven Board" desc = "The circuit board for a Oven." id = "oven" build_path = /obj/item/circuitboard/machine/oven - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/donksofttoyvendor - name = "Machine Design (Donksoft Toy Vendor Board)" + name = "Donksoft Toy Vendor Board" desc = "The circuit board for a Donksoft Toy Vendor." id = "donksofttoyvendor" build_path = /obj/item/circuitboard/machine/vending/donksofttoyvendor - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/cell_charger - name = "Machine Design (Cell Charger Board)" + name = "Cell Charger Board" desc = "The circuit board for a cell charger." id = "cell_charger" build_path = /obj/item/circuitboard/machine/cell_charger - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/dish_drive - name = "Machine Design (Dish Drive)" + name = "Dish Drive Board" desc = "The circuit board for a dish drive." id = "dish_drive" build_path = /obj/item/circuitboard/machine/dish_drive - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/stacking_unit_console - name = "Machine Design (Stacking Machine Console)" + name = "Stacking Machine Console Board" desc = "The circuit board for a Stacking Machine Console." id = "stack_console" build_path = /obj/item/circuitboard/machine/stacking_unit_console - category = list (RND_CATEGORY_MISC_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/stacking_machine - name = "Machine Design (Stacking Machine)" + name = "Stacking Machine Board" desc = "The circuit board for a Stacking Machine." id = "stack_machine" build_path = /obj/item/circuitboard/machine/stacking_machine - category = list (RND_CATEGORY_MISC_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/ore_silo - name = "Machine Design (Ore Silo)" + name = "Ore Silo Board" desc = "The circuit board for an ore silo." id = "ore_silo" build_path = /obj/item/circuitboard/machine/ore_silo - category = list (RND_CATEGORY_RESEARCH_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/fat_sucker - name = "Machine Design (Lipid Extractor)" + name = "Lipid Extractor Board" desc = "The circuit board for a lipid extractor." id = "fat_sucker" build_path = /obj/item/circuitboard/machine/fat_sucker - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/stasis - name = "Machine Design (Lifeform Stasis Unit)" + name = "Lifeform Stasis Unit Board" desc = "The circuit board for a stasis unit." id = "stasis" build_path = /obj/item/circuitboard/machine/stasis - category = list(RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/spaceship_navigation_beacon - name = "Machine Design (Bluespace Navigation Gigabeacon)" + name = "Bluespace Navigation Gigabeacon Board" desc = "The circuit board for a Bluespace Navigation Gigabeacon." id = "spaceship_navigation_beacon" build_type = IMPRINTER build_path = /obj/item/circuitboard/machine/spaceship_navigation_beacon - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELEPORT + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/medical_kiosk - name = "Machine Design (Medical Kiosk)" + name = "Medical Kiosk Board" desc = "The circuit board for a Medical Kiosk." id = "medical_kiosk" build_path = /obj/item/circuitboard/machine/medical_kiosk - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/medipen_refiller - name = "Machine Design (Medipen Refiller)" + name = "Medipen Refiller Board" desc = "The circuit board for a Medipen Refiller." id = "medipen_refiller" build_path = /obj/item/circuitboard/machine/medipen_refiller - category = list (RND_CATEGORY_MEDICAL_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/board/plumbing_receiver - name = "Machine Design (Chemical Recipient)" + name = "Chemical Recipient Board" desc = "The circuit board for a Chemical Recipient." id = "plumbing_receiver" build_path = /obj/item/circuitboard/machine/plumbing_receiver - category = list (RND_CATEGORY_TELEPORTATION_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CHEMISTRY + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE - /datum/design/board/sheetifier - name = "Machine Design (Sheet-meister 2000)" + name = "Sheet-meister 2000 Board" desc = "The circuit board for a Sheet-meister 2000." id = "sheetifier" build_path = /obj/item/circuitboard/machine/sheetifier - category = list (RND_CATEGORY_MISC_MACHINERY) - + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design/board/restaurant_portal - name = "Machine Design (Restaurant Portal)" + name = "Restaurant Portal Board" desc = "The circuit board for a restaurant portal" id = "restaurant_portal" build_path = /obj/item/circuitboard/machine/restaurant_portal - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/vendatray - name = "Machine Design (Vend-a-Tray)" + name = "Vend-a-Tray Board" desc = "The circuit board for a Vend-a-Tray." id = "vendatray" build_path = /obj/item/circuitboard/machine/vendatray - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/bountypad - name = "Machine Design (Civilian Bounty Pad)" + name = "Civilian Bounty Pad Board" desc = "The circuit board for a Civilian Bounty Pad." id = "bounty_pad" build_path = /obj/item/circuitboard/machine/bountypad - category = list (RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/skill_station - name = "Machine Design (Skill station)" + name = "Skill Station Board" desc = "The circuit board for Skill station." id = "skill_station" build_path = /obj/item/circuitboard/machine/skill_station - category = list (RND_CATEGORY_MISC_MACHINERY) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/board/fax - name = "Machine Design (Fax Machine)" + name = "Fax Machine Board" desc = "The circuit board for a fax machine." id = "fax" build_path = /obj/item/circuitboard/machine/fax - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO //Hypertorus fusion reactor designs /datum/design/board/HFR_core - name = "Machine Design (HFR Core)" + name = "HFR Core Board" desc = "The circuit board for an HFR Core." id = "HFR_core" build_path = /obj/item/circuitboard/machine/HFR_core - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/HFR_fuel_input - name = "Machine Design (HFR fuel input)" + name = "HFR Fuel Input Board" desc = "The circuit board for an HFR fuel input." id = "HFR_fuel_input" build_path = /obj/item/circuitboard/machine/HFR_fuel_input - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/HFR_waste_output - name = "Machine Design (HFR waste output)" + name = "HFR Waste Output Board" desc = "The circuit board for an HFR waste output." id = "HFR_waste_output" build_path = /obj/item/circuitboard/machine/HFR_waste_output - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/HFR_moderator_input - name = "Machine Design (HFR moderator input)" + name = "HFR Moderator Input Board" desc = "The circuit board for an HFR moderator input." id = "HFR_moderator_input" build_path = /obj/item/circuitboard/machine/HFR_moderator_input - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/HFR_corner - name = "Machine Design (HFR corner)" + name = "HFR Corner Board" desc = "The circuit board for an HFR corner." id = "HFR_corner" build_path = /obj/item/circuitboard/machine/HFR_corner - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/HFR_interface - name = "Machine Design (HFR interface)" + name = "HFR Interface Board" desc = "The circuit board for an HFR interface." id = "HFR_interface" build_path = /obj/item/circuitboard/machine/HFR_interface - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/crystallizer - name = "Machine Design (Crystallizer)" + name = "Crystallizer Board" desc = "The circuit board for a crystallizer." id = "crystallizer" build_path = /obj/item/circuitboard/machine/crystallizer - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/exoscanner - name = "Machine Design (Scanner Array)" + name = "Scanner Array Board" desc = "The circuit board for scanner array." id = "exoscanner" build_path = /obj/item/circuitboard/machine/exoscanner - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/exodrone_launcher - name = "Machine Design (Exploration Drone Launcher)" + name = "Exploration Drone Launcher Board" desc = "The circuit board for exodrone launcher." id = "exodrone_launcher" build_path = /obj/item/circuitboard/machine/exodrone_launcher - category = list (RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/board/component_printer - name = "Machine Design (Component Printer)" + name = "Component Printer Board" desc = "The circuit board for a component printer" id = "component_printer" build_path = /obj/item/circuitboard/machine/component_printer - category = list(RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/module_printer - name = "Machine Design (Module Duplicator)" + name = "Module Duplicator Board" desc = "The circuit board for a module duplicator" id = "module_duplicator" build_path = /obj/item/circuitboard/machine/module_duplicator - category = list(RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/coffeemaker - name = "Machine Design (Coffeemaker)" + name = "Coffeemaker Board" desc = "The circuit board for a coffeemaker." id = "coffeemaker" build_path = /obj/item/circuitboard/machine/coffeemaker - category = list(RND_CATEGORY_MISC_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 7fae7c44858..b9ff2a69171 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -7,7 +7,9 @@ desc = "Allows for the construction of a \"Ripley\" Central Control module." id = "ripley_main" build_path = /obj/item/circuitboard/mecha/ripley/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_RIPLEY + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/ripley_peri @@ -15,7 +17,9 @@ desc = "Allows for the construction of a \"Ripley\" Peripheral Control module." id = "ripley_peri" build_path = /obj/item/circuitboard/mecha/ripley/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_RIPLEY + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/odysseus_main @@ -23,7 +27,9 @@ desc = "Allows for the construction of a \"Odysseus\" Central Control module." id = "odysseus_main" build_path = /obj/item/circuitboard/mecha/odysseus/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_ODYSSEUS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/odysseus_peri @@ -31,7 +37,9 @@ desc = "Allows for the construction of a \"Odysseus\" Peripheral Control module." id = "odysseus_peri" build_path = /obj/item/circuitboard/mecha/odysseus/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_ODYSSEUS + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/gygax_main @@ -39,7 +47,9 @@ desc = "Allows for the construction of a \"Gygax\" Central Control module." id = "gygax_main" build_path = /obj/item/circuitboard/mecha/gygax/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_GYGAX + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/gygax_peri @@ -47,7 +57,9 @@ desc = "Allows for the construction of a \"Gygax\" Peripheral Control module." id = "gygax_peri" build_path = /obj/item/circuitboard/mecha/gygax/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_GYGAX + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/gygax_targ @@ -55,7 +67,9 @@ desc = "Allows for the construction of a \"Gygax\" Weapons & Targeting Control module." id = "gygax_targ" build_path = /obj/item/circuitboard/mecha/gygax/targeting - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_GYGAX + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/durand_main @@ -63,7 +77,9 @@ desc = "Allows for the construction of a \"Durand\" Central Control module." id = "durand_main" build_path = /obj/item/circuitboard/mecha/durand/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_DURAND + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/durand_peri @@ -71,7 +87,9 @@ desc = "Allows for the construction of a \"Durand\" Peripheral Control module." id = "durand_peri" build_path = /obj/item/circuitboard/mecha/durand/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_DURAND + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/durand_targ @@ -79,31 +97,39 @@ desc = "Allows for the construction of a \"Durand\" Weapons & Targeting Control module." id = "durand_targ" build_path = /obj/item/circuitboard/mecha/durand/targeting - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_DURAND + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/honker_main - name = "\"H.O.N.K\" Central Control module" - desc = "Allows for the construction of a \"H.O.N.K\" Central Control module." + name = "\"H.O.N.K.\" Central Control module" + desc = "Allows for the construction of a \"H.O.N.K.\" Central Control module." id = "honker_main" build_path = /obj/item/circuitboard/mecha/honker/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_HONK + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/honker_peri - name = "\"H.O.N.K\" Peripherals Control module" - desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module." + name = "\"H.O.N.K.\" Peripherals Control module" + desc = "Allows for the construction of a \"H.O.N.K.\" Peripheral Control module." id = "honker_peri" build_path = /obj/item/circuitboard/mecha/honker/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_HONK + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/honker_targ - name = "\"H.O.N.K\" Weapons & Targeting Control module" - desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module." + name = "\"H.O.N.K.\" Weapons & Targeting Control module" + desc = "Allows for the construction of a \"H.O.N.K.\" Weapons & Targeting Control module." id = "honker_targ" build_path = /obj/item/circuitboard/mecha/honker/targeting - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_HONK + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/phazon_main @@ -112,7 +138,9 @@ id = "phazon_main" materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100) build_path = /obj/item/circuitboard/mecha/phazon/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_PHAZON + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/phazon_peri @@ -121,7 +149,9 @@ id = "phazon_peri" materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100) build_path = /obj/item/circuitboard/mecha/phazon/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_PHAZON + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/phazon_targ @@ -130,7 +160,9 @@ id = "phazon_targ" materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100) build_path = /obj/item/circuitboard/mecha/phazon/targeting - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_PHAZON + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/clarke_main @@ -138,7 +170,9 @@ desc = "Allows for the construction of a \"Clarke\" Central Control module." id = "clarke_main" build_path = /obj/item/circuitboard/mecha/clarke/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_CLARKE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/clarke_peri @@ -146,7 +180,9 @@ desc = "Allows for the construction of a \"Clarke\" Peripheral Control module." id = "clarke_peri" build_path = /obj/item/circuitboard/mecha/clarke/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_CLARKE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/savannah_ivanov_main @@ -154,7 +190,9 @@ desc = "Allows for the construction of a \"Savannah-Ivanov\" Central Control module." id = "savannah_ivanov_main" build_path = /obj/item/circuitboard/mecha/savannah_ivanov/main - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_SAVANNAH_IVANOV + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/savannah_ivanov_peri @@ -162,7 +200,9 @@ desc = "Allows for the construction of a \"Savannah-Ivanov\" Peripheral Control module." id = "savannah_ivanov_peri" build_path = /obj/item/circuitboard/mecha/savannah_ivanov/peripherals - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_SAVANNAH_IVANOV + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/savannah_ivanov_targ @@ -170,7 +210,9 @@ desc = "Allows for the construction of a \"Savannah-Ivanov\" Weapons & Targeting Control module." id = "savannah_ivanov_targ" build_path = /obj/item/circuitboard/mecha/savannah_ivanov/targeting - category = list(RND_CATEGORY_EXOSUIT_MODULES) + category = list( + RND_CATEGORY_EXOSUIT_BOARDS + RND_SUBCATEGORY_EXOSUIT_BOARDS_SAVANNAH_IVANOV + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE //////////////////////////////////////// @@ -178,300 +220,742 @@ //////////////////////////////////////// /datum/design/mech_scattershot - name = "Exosuit Weapon (LBX AC 10 \"Scattershot\")" + name = "LBX AC 10 \"Scattershot\"" desc = "Allows for the construction of LBX AC 10." id = "mech_scattershot" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_scattershot_ammo - name = "LBX AC 10 Scattershot Ammunition" + name = "LBX AC 10 Ammunition" desc = "Ammunition for the LBX AC 10 exosuit weapon." id = "mech_scattershot_ammo" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = MECHFAB build_path = /obj/item/mecha_ammo/scattershot materials = list(/datum/material/iron=6000) construction_time = 20 - category = list(RND_CATEGORY_EXOSUIT_AMMUNIATION, RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_carbine - name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" + name = "FNX-99 \"Hades\" Carbine" desc = "Allows for the construction of FNX-99 \"Hades\" Carbine." id = "mech_carbine" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_carbine_ammo name = "FNX-99 Carbine Ammunition" desc = "Ammunition for the FNX-99 \"Hades\" Carbine." id = "mech_carbine_ammo" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = MECHFAB build_path = /obj/item/mecha_ammo/incendiary materials = list(/datum/material/iron=6000) construction_time = 20 - category = list(RND_CATEGORY_EXOSUIT_AMMUNIATION, RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_ion - name = "Exosuit Weapon (MKIV Ion Heavy Cannon)" + name = "MKIV Ion Heavy Cannon" desc = "Allows for the construction of MKIV Ion Heavy Cannon." id = "mech_ion" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion materials = list(/datum/material/iron=20000,/datum/material/silver=6000,/datum/material/uranium=2000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_tesla - name = "Exosuit Weapon (MKI Tesla Cannon)" + name = "MKI Tesla Cannon" desc = "Allows for the construction of MKI Tesla Cannon." id = "mech_tesla" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla materials = list(/datum/material/iron=20000,/datum/material/silver=8000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_laser - name = "Exosuit Weapon (CH-PS \"Immolator\" Laser)" + name = "CH-PS \"Immolator\" Laser" desc = "Allows for the construction of CH-PS Laser." id = "mech_laser" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_laser_heavy - name = "Exosuit Weapon (CH-LC \"Solaris\" Laser Cannon)" + name = "CH-LC \"Solaris\" Laser Cannon" desc = "Allows for the construction of CH-LC Laser Cannon." id = "mech_laser_heavy" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_disabler - name = "Exosuit Weapon (CH-DS \"Peacemaker\" Disabler)" + name = "CH-DS \"Peacemaker\" Disabler" desc = "Allows for the construction of CH-DS Disabler." id = "mech_disabler" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/disabler materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_grenade_launcher - name = "Exosuit Weapon (SGL-6 Grenade Launcher)" + name = "SGL-6 Grenade Launcher" desc = "Allows for the construction of SGL-6 Grenade Launcher." id = "mech_grenade_launcher" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang materials = list(/datum/material/iron=22000,/datum/material/gold=6000,/datum/material/silver=8000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_grenade_launcher_ammo name = "SGL-6 Grenade Launcher Ammunition" desc = "Ammunition for the SGL-6 Grenade Launcher." id = "mech_grenade_launcher_ammo" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = MECHFAB build_path = /obj/item/mecha_ammo/flashbang materials = list(/datum/material/iron=4000,/datum/material/gold=500) construction_time = 20 - category = list(RND_CATEGORY_EXOSUIT_AMMUNIATION, RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_missile_rack - name = "Exosuit Weapon (BRM-6 Missile Rack)" + name = "BRM-6 Missile Rack" desc = "Allows for the construction of an BRM-6 Breaching Missile Rack." id = "mech_missile_rack" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/breaching materials = list(/datum/material/iron=22000,/datum/material/gold=6000,/datum/material/silver=8000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_missile_rack_ammo name = "BRM-6 Missile Rack Ammunition" desc = "Ammunition for the BRM-6 Missile Rack." id = "mech_missile_rack_ammo" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = MECHFAB build_path = /obj/item/mecha_ammo/missiles_br materials = list(/datum/material/iron=8000,/datum/material/gold=500) construction_time = 20 - category = list(RND_CATEGORY_EXOSUIT_AMMUNIATION, RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/clusterbang_launcher - name = "Exosuit Weapon (SOB-3 Clusterbang Launcher)" - desc = "A weapon that violates the Geneva Convention at 3 rounds per minute" + name = "SOB-3 Clusterbang Launcher" + desc = "A weapon that violates the Geneva Convention at 3 rounds per minute." id = "clusterbang_launcher" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang materials = list(/datum/material/iron=20000,/datum/material/gold=10000,/datum/material/uranium=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/clusterbang_launcher_ammo name = "SOB-3 Clusterbang Launcher Ammunition" desc = "Ammunition for the SOB-3 Clusterbang Launcher" id = "clusterbang_launcher_ammo" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = MECHFAB build_path = /obj/item/mecha_ammo/clusterbang materials = list(/datum/material/iron=6000,/datum/material/gold=1500,/datum/material/uranium=1500) construction_time = 20 - category = list(RND_CATEGORY_EXOSUIT_AMMUNIATION, RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_WEAPONS, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_wormhole_gen - name = "Exosuit Module (Localized Wormhole Generator)" + name = "Localized Wormhole Generator" desc = "An exosuit module that allows generating of small quasi-stable wormholes." id = "mech_wormhole_gen" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/wormhole_generator materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_teleporter - name = "Exosuit Module (Teleporter Module)" + name = "Teleporter Module" desc = "An exosuit module that allows exosuits to teleport to any position in view." id = "mech_teleporter" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/teleporter materials = list(/datum/material/iron=10000,/datum/material/diamond=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_rcd - name = "Exosuit Module (RCD Module)" + name = "RCD Module" desc = "An exosuit-mounted Rapid Construction Device." id = "mech_rcd" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/rcd materials = list(/datum/material/iron=30000,/datum/material/gold=20000,/datum/material/plasma=25000,/datum/material/silver=20000) construction_time = 1200 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_thrusters - name = "Exosuit Module (RCS Thruster Package)" + name = "RCS Thruster Package" desc = "A thruster package for exosuits. Expells gas from the internal life-support air tank to generate thrust." id = "mech_thrusters" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/thrusters/gas materials = list(/datum/material/iron=25000,/datum/material/titanium=5000,/datum/material/silver=3000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_gravcatapult - name = "Exosuit Module (Gravitational Catapult Module)" + name = "Gravitational Catapult Module" desc = "An exosuit mounted Gravitational Catapult." id = "mech_gravcatapult" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_repair_droid - name = "Exosuit Module (Repair Droid Module)" + name = "Repair Droid Module" desc = "Automated Repair Droid. BEEP BOOP" id = "mech_repair_droid" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/gold=1000,/datum/material/silver=2000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_ccw_armor - name = "Exosuit Module (Reactive Armor Booster Module)" + name = "Reactive Armor Booster Module" desc = "Exosuit-mounted melee armor booster." id = "mech_ccw_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/armor/anticcw_armor_booster materials = list(/datum/material/iron=20000,/datum/material/silver=5000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_proj_armor - name = "Exosuit Module (Reflective Armor Booster Module)" + name = "Reflective Armor Booster Module" desc = "Exosuit-mounted ranged armor booster." id = "mech_proj_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster materials = list(/datum/material/iron=20000,/datum/material/gold=5000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_ODYSSEUS, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_diamond_drill - name = "Exosuit Mining (Diamond Mining Drill)" + name = "Diamond Mining Drill" desc = "An upgraded version of the standard drill." id = "mech_diamond_drill" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill materials = list(/datum/material/iron=10000,/datum/material/diamond=6500) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_plasma_cutter - name = "Exosuit Mining (217-D Heavy Plasma Cutter)" + name = "217-D Heavy Plasma Cutter" desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demolishing solid obstacles." id = "mech_plasma_cutter" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma materials = list(/datum/material/iron = 8000, /datum/material/glass = 1000, /datum/material/plasma = 2000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mecha_kineticgun - name = "Exosuit Mining (Proto-kinetic Accelerator)" + name = "Exosuit Proto-Kinetic Accelerator" desc = "An exosuit-mounted mining tool that does increased damage in low pressure. Drawing from an onboard power source allows it to project further than the handheld version." id = "mecha_kineticgun" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun materials = list(/datum/material/iron = 8000, /datum/material/glass = 1000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_lmg - name = "Exosuit Weapon (\"Ultra AC 2\" LMG)" + name = "Ultra AC 2 LMG" desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst." id = "mech_lmg" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_lmg_ammo name = "Ultra AC 2 Ammunition" desc = "Ammunition for the Ultra AC 2 LMG" id = "mech_lmg_ammo" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = MECHFAB build_path = /obj/item/mecha_ammo/lmg materials = list(/datum/material/iron=4000) construction_time = 20 - category = list(RND_CATEGORY_EXOSUIT_AMMUNIATION, RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_PHAZON, + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_sleeper - name = "Exosuit Medical (Mounted Sleeper)" + name = "Mounted Sleeper" desc = "Equipment for medical exosuits. A mounted sleeper that stabilizes patients and can inject reagents in the exosuit's reserves." id = "mech_sleeper" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/medical/sleeper materials = list(/datum/material/iron=5000, /datum/material/glass = 10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MEDICAL, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_syringe_gun name = "Exosuit Medical (Syringe Gun)" @@ -481,7 +965,15 @@ build_path = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun materials = list(/datum/material/iron=3000, /datum/material/glass = 2000) construction_time = 200 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MEDICAL, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_medical_beamgun name = "Exosuit Medical (Medical Beamgun)" @@ -491,4 +983,12 @@ materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000) construction_time = 250 build_path = /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_ODYSSEUS + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MEDICAL, + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 68142aec257..a424d2d87c5 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -6,7 +6,9 @@ build_path = /obj/item/robot_suit materials = list(/datum/material/iron=15000) construction_time = 500 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) /datum/design/borg_chest name = "Cyborg Torso" @@ -15,7 +17,9 @@ build_path = /obj/item/bodypart/chest/robot materials = list(/datum/material/iron=40000) construction_time = 350 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) /datum/design/borg_head name = "Cyborg Head" @@ -24,7 +28,9 @@ build_path = /obj/item/bodypart/head/robot materials = list(/datum/material/iron=5000) construction_time = 350 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) /datum/design/borg_l_arm name = "Cyborg Left Arm" @@ -33,7 +39,9 @@ build_path = /obj/item/bodypart/l_arm/robot materials = list(/datum/material/iron=10000) construction_time = 200 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) /datum/design/borg_r_arm name = "Cyborg Right Arm" @@ -42,7 +50,9 @@ build_path = /obj/item/bodypart/r_arm/robot materials = list(/datum/material/iron=10000) construction_time = 200 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) /datum/design/borg_l_leg name = "Cyborg Left Leg" @@ -51,7 +61,9 @@ build_path = /obj/item/bodypart/l_leg/robot materials = list(/datum/material/iron=10000) construction_time = 200 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) /datum/design/borg_r_leg name = "Cyborg Right Leg" @@ -60,7 +72,9 @@ build_path = /obj/item/bodypart/r_leg/robot materials = list(/datum/material/iron=10000) construction_time = 200 - category = list(RND_CATEGORY_CYBORG) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS + ) //Ripley /datum/design/ripley_chassis @@ -70,7 +84,9 @@ build_path = /obj/item/mecha_parts/chassis/ripley materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_RIPLEY) + category = list( + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/ripley_torso name = "Exosuit Torso (APLU \"Ripley\")" @@ -79,7 +95,9 @@ build_path = /obj/item/mecha_parts/part/ripley_torso materials = list(/datum/material/iron=20000,/datum/material/glass = 7500) construction_time = 200 - category = list(RND_CATEGORY_RIPLEY) + category = list( + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/ripley_left_arm name = "Exosuit Left Arm (APLU \"Ripley\")" @@ -88,7 +106,9 @@ build_path = /obj/item/mecha_parts/part/ripley_left_arm materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_RIPLEY) + category = list( + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/ripley_right_arm name = "Exosuit Right Arm (APLU \"Ripley\")" @@ -97,7 +117,9 @@ build_path = /obj/item/mecha_parts/part/ripley_right_arm materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_RIPLEY) + category = list( + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/ripley_left_leg name = "Exosuit Left Leg (APLU \"Ripley\")" @@ -106,7 +128,9 @@ build_path = /obj/item/mecha_parts/part/ripley_left_leg materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_RIPLEY) + category = list( + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/ripley_right_leg name = "Exosuit Right Leg (APLU \"Ripley\")" @@ -115,7 +139,9 @@ build_path = /obj/item/mecha_parts/part/ripley_right_leg materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_RIPLEY) + category = list( + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Odysseus /datum/design/odysseus_chassis @@ -125,7 +151,9 @@ build_path = /obj/item/mecha_parts/chassis/odysseus materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/odysseus_torso name = "Exosuit Torso (\"Odysseus\")" @@ -134,7 +162,9 @@ build_path = /obj/item/mecha_parts/part/odysseus_torso materials = list(/datum/material/iron=12000) construction_time = 180 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/odysseus_head name = "Exosuit Head (\"Odysseus\")" @@ -143,7 +173,9 @@ build_path = /obj/item/mecha_parts/part/odysseus_head materials = list(/datum/material/iron=6000,/datum/material/glass = 10000) construction_time = 100 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/odysseus_left_arm name = "Exosuit Left Arm (\"Odysseus\")" @@ -152,7 +184,9 @@ build_path = /obj/item/mecha_parts/part/odysseus_left_arm materials = list(/datum/material/iron=6000) construction_time = 120 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/odysseus_right_arm name = "Exosuit Right Arm (\"Odysseus\")" @@ -161,7 +195,9 @@ build_path = /obj/item/mecha_parts/part/odysseus_right_arm materials = list(/datum/material/iron=6000) construction_time = 120 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/odysseus_left_leg name = "Exosuit Left Leg (\"Odysseus\")" @@ -170,7 +206,9 @@ build_path = /obj/item/mecha_parts/part/odysseus_left_leg materials = list(/datum/material/iron=7000) construction_time = 130 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/odysseus_right_leg name = "Exosuit Right Leg (\"Odysseus\")" @@ -179,7 +217,9 @@ build_path = /obj/item/mecha_parts/part/odysseus_right_leg materials = list(/datum/material/iron=7000) construction_time = 130 - category = list(RND_CATEGORY_ODYSSEUS) + category = list( + RND_CATEGORY_MECHFAB_ODYSSEUS + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Gygax /datum/design/gygax_chassis @@ -189,7 +229,9 @@ build_path = /obj/item/mecha_parts/chassis/gygax materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_torso name = "Exosuit Torso (\"Gygax\")" @@ -198,7 +240,9 @@ build_path = /obj/item/mecha_parts/part/gygax_torso materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/gold=2000, /datum/material/silver=2000) construction_time = 300 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_head name = "Exosuit Head (\"Gygax\")" @@ -207,7 +251,9 @@ build_path = /obj/item/mecha_parts/part/gygax_head materials = list(/datum/material/iron=10000,/datum/material/glass = 5000, /datum/material/gold=2000, /datum/material/silver=2000) construction_time = 200 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_left_arm name = "Exosuit Left Arm (\"Gygax\")" @@ -216,7 +262,9 @@ build_path = /obj/item/mecha_parts/part/gygax_left_arm materials = list(/datum/material/iron=15000, /datum/material/gold=1000, /datum/material/silver=1000) construction_time = 200 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_right_arm name = "Exosuit Right Arm (\"Gygax\")" @@ -225,7 +273,9 @@ build_path = /obj/item/mecha_parts/part/gygax_right_arm materials = list(/datum/material/iron=15000, /datum/material/gold=1000, /datum/material/silver=1000) construction_time = 200 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_left_leg name = "Exosuit Left Leg (\"Gygax\")" @@ -234,7 +284,9 @@ build_path = /obj/item/mecha_parts/part/gygax_left_leg materials = list(/datum/material/iron=15000, /datum/material/gold=2000, /datum/material/silver=2000) construction_time = 200 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_right_leg name = "Exosuit Right Leg (\"Gygax\")" @@ -243,7 +295,9 @@ build_path = /obj/item/mecha_parts/part/gygax_right_leg materials = list(/datum/material/iron=15000, /datum/material/gold=2000, /datum/material/silver=2000) construction_time = 200 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/gygax_armor name = "Exosuit Armor (\"Gygax\")" @@ -252,7 +306,9 @@ build_path = /obj/item/mecha_parts/part/gygax_armor materials = list(/datum/material/iron=15000,/datum/material/gold=10000, /datum/material/silver=10000, /datum/material/titanium=10000) construction_time = 600 - category = list(RND_CATEGORY_GYGAX) + category = list( + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Durand /datum/design/durand_chassis @@ -262,7 +318,9 @@ build_path = /obj/item/mecha_parts/chassis/durand materials = list(/datum/material/iron=25000) construction_time = 100 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_torso name = "Exosuit Torso (\"Durand\")" @@ -271,7 +329,9 @@ build_path = /obj/item/mecha_parts/part/durand_torso materials = list(/datum/material/iron=25000, /datum/material/glass = 10000,/datum/material/silver=10000) construction_time = 300 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_head name = "Exosuit Head (\"Durand\")" @@ -280,7 +340,9 @@ build_path = /obj/item/mecha_parts/part/durand_head materials = list(/datum/material/iron=10000,/datum/material/glass = 15000,/datum/material/silver=2000) construction_time = 200 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_left_arm name = "Exosuit Left Arm (\"Durand\")" @@ -289,7 +351,9 @@ build_path = /obj/item/mecha_parts/part/durand_left_arm materials = list(/datum/material/iron=10000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_right_arm name = "Exosuit Right Arm (\"Durand\")" @@ -298,7 +362,9 @@ build_path = /obj/item/mecha_parts/part/durand_right_arm materials = list(/datum/material/iron=10000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_left_leg name = "Exosuit Left Leg (\"Durand\")" @@ -307,7 +373,9 @@ build_path = /obj/item/mecha_parts/part/durand_left_leg materials = list(/datum/material/iron=15000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_right_leg name = "Exosuit Right Leg (\"Durand\")" @@ -316,7 +384,9 @@ build_path = /obj/item/mecha_parts/part/durand_right_leg materials = list(/datum/material/iron=15000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/durand_armor name = "Exosuit Armor (\"Durand\")" @@ -325,7 +395,9 @@ build_path = /obj/item/mecha_parts/part/durand_armor materials = list(/datum/material/iron=30000,/datum/material/uranium=25000,/datum/material/titanium=20000) construction_time = 600 - category = list(RND_CATEGORY_DURAND) + category = list( + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //H.O.N.K /datum/design/honk_chassis @@ -335,7 +407,9 @@ build_path = /obj/item/mecha_parts/chassis/honker materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_HONK) + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/honk_torso name = "Exosuit Torso (\"H.O.N.K\")" @@ -344,7 +418,9 @@ build_path = /obj/item/mecha_parts/part/honker_torso materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/bananium=10000) construction_time = 300 - category = list(RND_CATEGORY_HONK) + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/honk_head name = "Exosuit Head (\"H.O.N.K\")" @@ -353,7 +429,9 @@ build_path = /obj/item/mecha_parts/part/honker_head materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/bananium=5000) construction_time = 200 - category = list(RND_CATEGORY_HONK) + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/honk_left_arm name = "Exosuit Left Arm (\"H.O.N.K\")" @@ -362,7 +440,9 @@ build_path = /obj/item/mecha_parts/part/honker_left_arm materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) construction_time = 200 - category = list(RND_CATEGORY_HONK) + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/honk_right_arm name = "Exosuit Right Arm (\"H.O.N.K\")" @@ -371,7 +451,9 @@ build_path = /obj/item/mecha_parts/part/honker_right_arm materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) construction_time = 200 - category = list(RND_CATEGORY_HONK) + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/honk_left_leg name = "Exosuit Left Leg (\"H.O.N.K\")" @@ -380,7 +462,9 @@ build_path =/obj/item/mecha_parts/part/honker_left_leg materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 200 - category = list(RND_CATEGORY_HONK) + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/honk_right_leg name = "Exosuit Right Leg (\"H.O.N.K\")" @@ -389,8 +473,9 @@ build_path = /obj/item/mecha_parts/part/honker_right_leg materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 200 - category = list(RND_CATEGORY_HONK) - + category = list( + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Phazon /datum/design/phazon_chassis @@ -400,7 +485,9 @@ build_path = /obj/item/mecha_parts/chassis/phazon materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_torso name = "Exosuit Torso (\"Phazon\")" @@ -409,7 +496,9 @@ build_path = /obj/item/mecha_parts/part/phazon_torso materials = list(/datum/material/iron=35000,/datum/material/glass = 10000,/datum/material/plasma=20000) construction_time = 300 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_head name = "Exosuit Head (\"Phazon\")" @@ -418,7 +507,9 @@ build_path = /obj/item/mecha_parts/part/phazon_head materials = list(/datum/material/iron=15000,/datum/material/glass = 5000,/datum/material/plasma=10000) construction_time = 200 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_left_arm name = "Exosuit Left Arm (\"Phazon\")" @@ -427,7 +518,9 @@ build_path = /obj/item/mecha_parts/part/phazon_left_arm materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_right_arm name = "Exosuit Right Arm (\"Phazon\")" @@ -436,7 +529,9 @@ build_path = /obj/item/mecha_parts/part/phazon_right_arm materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_left_leg name = "Exosuit Left Leg (\"Phazon\")" @@ -445,7 +540,9 @@ build_path = /obj/item/mecha_parts/part/phazon_left_leg materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_right_leg name = "Exosuit Right Leg (\"Phazon\")" @@ -454,7 +551,9 @@ build_path = /obj/item/mecha_parts/part/phazon_right_leg materials = list(/datum/material/iron=20000,/datum/material/plasma=10000) construction_time = 200 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/phazon_armor name = "Exosuit Armor (\"Phazon\")" @@ -463,7 +562,9 @@ build_path = /obj/item/mecha_parts/part/phazon_armor materials = list(/datum/material/iron=25000,/datum/material/plasma=20000,/datum/material/titanium=20000) construction_time = 300 - category = list(RND_CATEGORY_PHAZON) + category = list( + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Savannah-Ivanov /datum/design/savannah_ivanov_chassis @@ -473,7 +574,9 @@ build_path = /obj/item/mecha_parts/chassis/savannah_ivanov materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_torso name = "Exosuit Torso (\"Savannah-Ivanov\")" @@ -482,7 +585,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_torso materials = list(/datum/material/iron=20000,/datum/material/glass = 7500) construction_time = 200 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_head name = "Exosuit Head (\"Savannah-Ivanov\")" @@ -491,7 +596,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_head materials = list(/datum/material/iron=6000,/datum/material/glass = 10000) construction_time = 100 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_left_arm name = "Exosuit Left Arm (\"Savannah-Ivanov\")" @@ -500,7 +607,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_left_arm materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_right_arm name = "Exosuit Right Arm (\"Savannah-Ivanov\")" @@ -509,7 +618,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_right_arm materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_chassis name = "Exosuit Chassis (\"Savannah-Ivanov\")" @@ -518,7 +629,9 @@ build_path = /obj/item/mecha_parts/chassis/savannah_ivanov materials = list(/datum/material/iron=25000) construction_time = 100 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_torso name = "Exosuit Torso (\"Savannah-Ivanov\")" @@ -527,7 +640,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_torso materials = list(/datum/material/iron=25000, /datum/material/glass = 10000,/datum/material/silver=10000) construction_time = 300 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_head name = "Exosuit Head (\"Savannah-Ivanov\")" @@ -536,7 +651,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_head materials = list(/datum/material/iron=10000,/datum/material/glass = 15000,/datum/material/silver=2000) construction_time = 200 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_left_arm name = "Exosuit Left Arm (\"Savannah-Ivanov\")" @@ -545,7 +662,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_left_arm materials = list(/datum/material/iron=10000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_right_arm name = "Exosuit Right Arm (\"Savannah-Ivanov\")" @@ -554,7 +673,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_right_arm materials = list(/datum/material/iron=10000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_left_leg name = "Exosuit Left Leg (\"Savannah-Ivanov\")" @@ -563,7 +684,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_left_leg materials = list(/datum/material/iron=15000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_right_leg name = "Exosuit Right Leg (\"Savannah-Ivanov\")" @@ -572,7 +695,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_right_leg materials = list(/datum/material/iron=15000,/datum/material/silver=4000) construction_time = 200 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/savannah_ivanov_armor name = "Exosuit Armor (\"Savannah-Ivanov\")" @@ -581,7 +706,9 @@ build_path = /obj/item/mecha_parts/part/savannah_ivanov_armor materials = list(/datum/material/iron=30000,/datum/material/uranium=25000,/datum/material/titanium=20000) construction_time = 600 - category = list(RND_CATEGORY_SAVANNAH_IVANOV) + category = list( + RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Clarke /datum/design/clarke_chassis @@ -591,7 +718,9 @@ build_path = /obj/item/mecha_parts/chassis/clarke materials = list(/datum/material/iron=20000) construction_time = 100 - category = list(RND_CATEGORY_CLARKE) + category = list( + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/clarke_torso name = "Exosuit Torso (\"Clarke\")" @@ -600,7 +729,9 @@ build_path = /obj/item/mecha_parts/part/clarke_torso materials = list(/datum/material/iron=20000,/datum/material/glass = 7500) construction_time = 200 - category = list(RND_CATEGORY_CLARKE) + category = list( + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/clarke_head name = "Exosuit Head (\"Clarke\")" @@ -609,7 +740,9 @@ build_path = /obj/item/mecha_parts/part/clarke_head materials = list(/datum/material/iron=6000,/datum/material/glass = 10000) construction_time = 100 - category = list(RND_CATEGORY_CLARKE) + category = list( + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/clarke_left_arm name = "Exosuit Left Arm (\"Clarke\")" @@ -618,7 +751,9 @@ build_path = /obj/item/mecha_parts/part/clarke_left_arm materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_CLARKE) + category = list( + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) /datum/design/clarke_right_arm name = "Exosuit Right Arm (\"Clarke\")" @@ -627,264 +762,402 @@ build_path = /obj/item/mecha_parts/part/clarke_right_arm materials = list(/datum/material/iron=15000) construction_time = 150 - category = list(RND_CATEGORY_CLARKE) + category = list( + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_CHASSIS + ) //Exosuit Equipment /datum/design/ripleyupgrade - name = "Ripley MK-I to MK-II conversion kit" + name = "Ripley MK-I to MK-II Conversion Kit" id = "ripleyupgrade" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/ripleyupgrade materials = list(/datum/material/iron=10000,/datum/material/plasma=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MODULES, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + ) /datum/design/mech_hydraulic_clamp - name = "Exosuit Engineering (Hydraulic Clamp)" + name = "Hydraulic Clamp" id = "mech_hydraulic_clamp" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + ) /datum/design/mech_drill - name = "Exosuit Mining (Mining Drill)" + name = "Mining Drill" id = "mech_drill" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/drill materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_mining_scanner - name = "Exosuit Engineering (Mining Scanner)" + name = "Mining Scanner" id = "mech_mscanner" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/mining_scanner materials = list(/datum/material/iron=5000,/datum/material/glass = 2500) construction_time = 50 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MINING, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) /datum/design/mech_extinguisher - name = "Exosuit Engineering (Extinguisher)" + name = "Extinguisher" id = "mech_extinguisher" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/extinguisher materials = list(/datum/material/iron=10000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) /datum/design/mech_generator - name = "Exosuit Module (Plasma Generator)" + name = "Plasma Generator" id = "mech_generator" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/generator materials = list(/datum/material/iron=10000,/datum/material/glass = 1000,/datum/material/silver=2000,/datum/material/plasma=5000) construction_time = 100 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_mousetrap_mortar - name = "H.O.N.K Weapon (Mousetrap Mortar)" + name = "Mousetrap Mortar" id = "mech_mousetrap_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 300 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_HONK, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_banana_mortar - name = "H.O.N.K Weapon (Banana Mortar)" + name = "Banana Mortar" id = "mech_banana_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) construction_time = 300 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_HONK, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_honker - name = "H.O.N.K Weapon (HoNkER BlAsT 5000)" + name = "HoNkER BlAsT 5000" id = "mech_honker" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker materials = list(/datum/material/iron=20000,/datum/material/bananium=10000) construction_time = 500 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_HONK, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mech_punching_glove - name = "H.O.N.K Weapon (Oingo Boingo Punch-face)" + name = "Oingo Boingo Punch-face" id = "mech_punching_face" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove materials = list(/datum/material/iron=20000,/datum/material/bananium=7500) construction_time = 400 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_HONK, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE ///////////////////////////////////////// //////////////Borg Upgrades////////////// ///////////////////////////////////////// /datum/design/borg_upgrade_rename - name = "Cyborg Upgrade (Rename Board)" + name = "Rename Board" id = "borg_upgrade_rename" build_type = MECHFAB build_path = /obj/item/borg/upgrade/rename materials = list(/datum/material/iron = 5000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/borg_upgrade_restart - name = "Cyborg Upgrade (Emergency Reboot Board)" + name = "Emergency Reboot Board" id = "borg_upgrade_restart" build_type = MECHFAB build_path = /obj/item/borg_restart_board materials = list(/datum/material/iron = 20000 , /datum/material/glass = 5000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/borg_upgrade_thrusters - name = "Cyborg Upgrade (Ion Thrusters)" + name = "Ion Thrusters" id = "borg_upgrade_thrusters" build_type = MECHFAB build_path = /obj/item/borg/upgrade/thrusters materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000, /datum/material/plasma = 5000, /datum/material/uranium = 6000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/borg_upgrade_disablercooler - name = "Cyborg Upgrade (Rapid Disabler Cooling Module)" + name = "Rapid Disabler Cooling Module" id = "borg_upgrade_disablercooler" build_type = MECHFAB build_path = /obj/item/borg/upgrade/disablercooler materials = list(/datum/material/iron = 20000 , /datum/material/glass = 6000, /datum/material/gold = 2000, /datum/material/diamond = 2000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SECURITY + ) /datum/design/borg_upgrade_diamonddrill - name = "Cyborg Upgrade (Diamond Drill)" + name = "Diamond Drill" id = "borg_upgrade_diamonddrill" build_type = MECHFAB build_path = /obj/item/borg/upgrade/ddrill materials = list(/datum/material/iron=10000, /datum/material/glass = 6000, /datum/material/diamond = 2000) construction_time = 80 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) /datum/design/borg_upgrade_holding - name = "Cyborg Upgrade (Ore Satchel of Holding)" + name = "Ore Satchel of Holding" id = "borg_upgrade_holding" build_type = MECHFAB build_path = /obj/item/borg/upgrade/soh materials = list(/datum/material/iron = 10000, /datum/material/gold = 2000, /datum/material/uranium = 1000) construction_time = 40 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) /datum/design/borg_upgrade_lavaproof - name = "Cyborg Upgrade (Lavaproof Tracks)" + name = "Lavaproof Tracks" id = "borg_upgrade_lavaproof" build_type = MECHFAB build_path = /obj/item/borg/upgrade/lavaproof materials = list(/datum/material/iron = 10000, /datum/material/plasma = 4000, /datum/material/titanium = 5000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) /datum/design/borg_syndicate_module - name = "Cyborg Upgrade (Illegal Modules)" + name = "Illegal Modules" id = "borg_syndicate_module" build_type = MECHFAB build_path = /obj/item/borg/upgrade/syndicate materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/diamond = 10000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/borg_transform_clown - name = "Cyborg Upgrade (Clown Model)" + name = "Clown Module" id = "borg_transform_clown" build_type = MECHFAB build_path = /obj/item/borg/upgrade/transform/clown materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/bananium = 1000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/borg_upgrade_selfrepair - name = "Cyborg Upgrade (Self-repair)" + name = "Self-Repair Module" id = "borg_upgrade_selfrepair" build_type = MECHFAB build_path = /obj/item/borg/upgrade/selfrepair materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000) construction_time = 80 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/borg_upgrade_expandedsynthesiser - name = "Cyborg Upgrade (Hypospray Expanded Synthesiser)" + name = "Expanded Hypospray Synthesiser" id = "borg_upgrade_expandedsynthesiser" build_type = MECHFAB build_path = /obj/item/borg/upgrade/hypospray/expanded materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/plasma = 8000, /datum/material/uranium = 8000) construction_time = 80 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL + ) /datum/design/borg_upgrade_piercinghypospray - name = "Cyborg Upgrade (Piercing Hypospray)" + name = "Piercing Hypospray" id = "borg_upgrade_piercinghypospray" build_type = MECHFAB build_path = /obj/item/borg/upgrade/piercing_hypospray materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/titanium = 5000, /datum/material/diamond = 3000) construction_time = 80 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL + ) /datum/design/borg_upgrade_defibrillator - name = "Cyborg Upgrade (Defibrillator)" + name = "Defibrillator" id = "borg_upgrade_defibrillator" build_type = MECHFAB build_path = /obj/item/borg/upgrade/defib materials = list(/datum/material/iron = 8000, /datum/material/glass = 5000, /datum/material/silver = 4000, /datum/material/gold = 3000) construction_time = 80 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL + ) /datum/design/borg_upgrade_surgicalprocessor - name = "Cyborg Upgrade (Surgical Processor)" + name = "Surgical Processor" id = "borg_upgrade_surgicalprocessor" build_type = MECHFAB build_path = /obj/item/borg/upgrade/processor materials = list(/datum/material/iron = 5000, /datum/material/glass = 4000, /datum/material/silver = 4000) construction_time = 40 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL + ) /datum/design/borg_upgrade_trashofholding - name = "Cyborg Upgrade (Trash Bag of Holding)" + name = "Trash Bag of Holding" id = "borg_upgrade_trashofholding" build_type = MECHFAB build_path = /obj/item/borg/upgrade/tboh materials = list(/datum/material/gold = 2000, /datum/material/uranium = 1000) construction_time = 40 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR + ) /datum/design/borg_upgrade_advancedmop - name = "Cyborg Upgrade (Advanced Mop)" + name = "Advanced Mop" id = "borg_upgrade_advancedmop" build_type = MECHFAB build_path = /obj/item/borg/upgrade/amop materials = list(/datum/material/iron = 2000, /datum/material/glass = 2000) construction_time = 40 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR + ) /datum/design/borg_upgrade_prt - name = "Cyborg Upgrade (Plating Repair Tool)" + name = "Plating Repair Tool" id = "borg_upgrade_prt" build_type = MECHFAB build_path = /obj/item/borg/upgrade/prt materials = list(/datum/material/iron = 2500, /datum/material/glass = 750) //same price as a cautery construction_time = 40 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR + ) /datum/design/borg_upgrade_expand - name = "Cyborg Upgrade (Expand)" + name = "Expand Module" id = "borg_upgrade_expand" build_type = MECHFAB build_path = /obj/item/borg/upgrade/expand materials = list(/datum/material/iron = 200000, /datum/material/titanium = 5000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL + ) /datum/design/boris_ai_controller name = "B.O.R.I.S. AI-Cyborg Remote Control" @@ -893,63 +1166,127 @@ build_path = /obj/item/borg/upgrade/ai materials = list(/datum/material/iron = 1200, /datum/material/glass = 1500, /datum/material/gold = 200) construction_time = 50 - category = list(RND_CATEGORY_CONTROL_INTERFACES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CONTROL_INTERFACES + ) search_metadata = "boris" /datum/design/borg_upgrade_rped - name = "Cyborg Upgrade (RPED)" + name = "Rapid Part Exchange Device" id = "borg_upgrade_rped" build_type = MECHFAB build_path = /obj/item/borg/upgrade/rped materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ENGINEERING + ) /datum/design/borg_upgrade_circuit_app - name = "Cyborg Upgrade (Circuit Manipulator)" + name = "Circuit Manipulator" id = "borg_upgrade_circuitapp" build_type = MECHFAB build_path = /obj/item/borg/upgrade/circuit_app materials = list(/datum/material/iron = 2000, /datum/material/titanium = 500) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ENGINEERING + ) /datum/design/borg_upgrade_beaker_app - name = "Cyborg Upgrade (Beaker Storage)" + name = "Secondary Beaker Storage" id = "borg_upgrade_beakerapp" build_type = MECHFAB build_path = /obj/item/borg/upgrade/beaker_app materials = list(/datum/material/iron = 2000, /datum/material/glass = 2250) //Need glass for the new beaker too construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL + ) /datum/design/borg_upgrade_pinpointer - name = "Cyborg Upgrade (Crew pinpointer)" + name = "Crew Pinpointer" id = "borg_upgrade_pinpointer" build_type = MECHFAB build_path = /obj/item/borg/upgrade/pinpointer materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL + ) /datum/design/borg_upgrade_broomer - name = "Cyborg Upgrade (Experimental Push Broom)" + name = "Experimental Push Broom" id = "borg_upgrade_broomer" build_type = MECHFAB build_path = /obj/item/borg/upgrade/broomer materials = list(/datum/material/iron = 4000, /datum/material/glass = 500) construction_time = 120 - category = list(RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR + ) + +/datum/design/mmi + name = "Man-Machine Interface" + desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity." + id = "mmi" + build_type = MECHFAB + materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) + construction_time = 75 + build_path = /obj/item/mmi + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CONTROL_INTERFACES + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/mmi/medical + build_type = PROTOLATHE | AWAY_LATHE + id = "mmi_m" + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/posibrain + name = "Positronic Brain" + desc = "The latest in Artificial Intelligences." + id = "mmi_posi" + build_type = MECHFAB + materials = list(/datum/material/iron = 1700, /datum/material/glass = 1350, /datum/material/gold = 500) + construction_time = 75 + build_path = /obj/item/mmi/posibrain + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CONTROL_INTERFACES + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE //Misc /datum/design/mecha_tracking - name = "Exosuit Tracker (Exosuit Tracking Beacon)" + name = "Exosuit Tracking Beacon" id = "mecha_tracking" build_type = MECHFAB build_path =/obj/item/mecha_parts/mecha_tracking materials = list(/datum/material/iron=500) construction_time = 50 - category = list(RND_CATEGORY_EXOSUIT_EQUIPMENT) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_MISC, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/mecha_tracking_ai_control name = "AI Control Beacon" @@ -958,7 +1295,25 @@ build_path = /obj/item/mecha_parts/mecha_tracking/ai_control materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/silver = 200) construction_time = 50 - category = list(RND_CATEGORY_CONTROL_INTERFACES) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT, + RND_CATEGORY_MECHFAB_RIPLEY, + RND_CATEGORY_MECHFAB_GYGAX, + RND_CATEGORY_MECHFAB_DURAND, + RND_CATEGORY_MECHFAB_HONK, + RND_CATEGORY_MECHFAB_PHAZON, + RND_CATEGORY_MECHFAB_CLARKE + ) + category = list( + RND_CATEGORY_MECHFAB_EQUIPMENT + RND_SUBCATEGORY_MECHFAB_EQUIPMENT_CONTROL_INTERFACES, + RND_CATEGORY_MECHFAB_RIPLEY + RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES, + RND_CATEGORY_MECHFAB_GYGAX + RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES, + RND_CATEGORY_MECHFAB_DURAND + RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES, + RND_CATEGORY_MECHFAB_HONK + RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES, + RND_CATEGORY_MECHFAB_PHAZON + RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES, + RND_CATEGORY_MECHFAB_CLARKE + RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/synthetic_flash name = "Flash" @@ -968,69 +1323,87 @@ materials = list(/datum/material/iron = 750, /datum/material/glass = 750) construction_time = 100 build_path = /obj/item/assembly/flash/handheld - category = list(RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + ) + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_COMPONENTS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE //MODsuit construction /datum/design/mod_shell - name = "MOD shell" + name = "MOD Shell" desc = "A 'Nakamura Engineering' designed shell for a Modular Suit." id = "mod_shell" build_type = MECHFAB materials = list(/datum/material/iron = 10000, /datum/material/plasma = 5000) construction_time = 25 SECONDS build_path = /obj/item/mod/construction/shell - category = list(RND_CATEGORY_MOD_CONSTRUCTION) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODUITS_CHASSIS + ) /datum/design/mod_helmet - name = "MOD helmet" + name = "MOD Helmet" desc = "A 'Nakamura Engineering' designed helmet for a Modular Suit." id = "mod_helmet" build_type = MECHFAB materials = list(/datum/material/iron = 5000) construction_time = 10 SECONDS build_path = /obj/item/mod/construction/helmet - category = list(RND_CATEGORY_MOD_CONSTRUCTION) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODUITS_CHASSIS + ) /datum/design/mod_chestplate - name = "MOD chestplate" + name = "MOD Chestplate" desc = "A 'Nakamura Engineering' designed chestplate for a Modular Suit." id = "mod_chestplate" build_type = MECHFAB materials = list(/datum/material/iron = 5000) construction_time = 10 SECONDS build_path = /obj/item/mod/construction/chestplate - category = list(RND_CATEGORY_MOD_CONSTRUCTION) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODUITS_CHASSIS + ) /datum/design/mod_gauntlets - name = "MOD gauntlets" + name = "MOD Gauntlets" desc = "'Nakamura Engineering' designed gauntlets for a Modular Suit." id = "mod_gauntlets" build_type = MECHFAB materials = list(/datum/material/iron = 5000) construction_time = 10 SECONDS build_path = /obj/item/mod/construction/gauntlets - category = list(RND_CATEGORY_MOD_CONSTRUCTION) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODUITS_CHASSIS + ) /datum/design/mod_boots - name = "MOD boots" + name = "MOD Boots" desc = "'Nakamura Engineering' designed boots for a Modular Suit." id = "mod_boots" build_type = MECHFAB materials = list(/datum/material/iron = 5000) construction_time = 10 SECONDS build_path = /obj/item/mod/construction/boots - category = list(RND_CATEGORY_MOD_CONSTRUCTION) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODUITS_CHASSIS + ) /datum/design/mod_plating - name = "MOD external plating" + name = "MOD External Plating" desc = "External plating for a MODsuit." id = "mod_plating_standard" - build_type = MECHFAB|PROTOLATHE + build_type = MECHFAB materials = list(/datum/material/iron = 6000, /datum/material/glass = 3000, /datum/material/plasma = 1000) construction_time = 15 SECONDS build_path = /obj/item/mod/construction/plating - category = list(RND_CATEGORY_MOD_CONSTRUCTION, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODSUITS_PLATING + ) research_icon = 'icons/obj/clothing/modsuit/mod_construction.dmi' research_icon_state = "standard-plating" @@ -1038,10 +1411,10 @@ . = ..() var/obj/item/mod/construction/plating/armor_type = build_path var/datum/mod_theme/theme = GLOB.mod_themes[initial(armor_type.theme)] - name = "MOD [theme.name] plating" desc = "External plating for a MODsuit. [theme.desc]" /datum/design/mod_plating/engineering + name = "MOD Engineering Plating" id = "mod_plating_engineering" build_path = /obj/item/mod/construction/plating/engineering materials = list(/datum/material/iron = 6000, /datum/material/gold = 2000, /datum/material/glass = 1000, /datum/material/plasma = 1000) @@ -1049,6 +1422,7 @@ research_icon_state = "engineering-plating" /datum/design/mod_plating/atmospheric + name = "MOD Atmospheric Plating" id = "mod_plating_atmospheric" build_path = /obj/item/mod/construction/plating/atmospheric materials = list(/datum/material/iron = 6000, /datum/material/titanium = 2000, /datum/material/glass = 1000, /datum/material/plasma = 1000) @@ -1056,6 +1430,7 @@ research_icon_state = "atmospheric-plating" /datum/design/mod_plating/medical + name = "MOD Medical Plating" id = "mod_plating_medical" build_path = /obj/item/mod/construction/plating/medical materials = list(/datum/material/iron = 6000, /datum/material/silver = 2000, /datum/material/glass = 1000, /datum/material/plasma = 1000) @@ -1063,14 +1438,15 @@ research_icon_state = "medical-plating" /datum/design/mod_plating/security + name = "MOD Security Plating" id = "mod_plating_security" build_path = /obj/item/mod/construction/plating/security materials = list(/datum/material/iron = 6000, /datum/material/uranium = 2000, /datum/material/glass = 1000, /datum/material/plasma = 1000) departmental_flags = DEPARTMENT_BITFLAG_SECURITY research_icon_state = "security-plating" - build_type = PROTOLATHE /datum/design/mod_plating/cosmohonk + name = "MOD Cosmohonk Plating" id = "mod_plating_cosmohonk" build_path = /obj/item/mod/construction/plating/cosmohonk materials = list(/datum/material/iron = 6000, /datum/material/bananium = 2000, /datum/material/glass = 1000, /datum/material/plasma = 1000) @@ -1078,14 +1454,16 @@ research_icon_state = "cosmohonk-plating" /datum/design/mod_paint_kit - name = "MOD paint kit" + name = "MOD Paint Kit" desc = "A paint kit for Modular Suits." id = "mod_paint_kit" build_type = MECHFAB materials = list(/datum/material/iron = 1000, /datum/material/plastic = 500) construction_time = 5 SECONDS build_path = /obj/item/mod/paint - category = list(RND_CATEGORY_MISC) + category = list( + RND_CATEGORY_MODSUITS + RND_SUBCATEGORY_MODSUITS_MISC + ) //MODsuit modules @@ -1095,8 +1473,9 @@ construction_time = 1 SECONDS materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) build_path = /obj/item/mod/module - category = list(RND_CATEGORY_MOD_MODULES) - var/department_type = MODULE_GENERAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_GENERAL + ) /datum/design/module/New() . = ..() @@ -1104,336 +1483,400 @@ desc = "[initial(module.desc)] It uses [initial(module.complexity)] complexity." /datum/design/module/mod_storage - name = "MOD Module: Storage" + name = "Storage Module" id = "mod_storage" materials = list(/datum/material/iron = 2500, /datum/material/glass = 500) build_path = /obj/item/mod/module/storage /datum/design/module/mod_storage_expanded - name = "MOD Module: Expanded Storage" + name = "Expanded Storage Module" id = "mod_storage_expanded" materials = list(/datum/material/iron = 5000, /datum/material/uranium = 2000) build_path = /obj/item/mod/module/storage/large_capacity /datum/design/module/mod_visor_medhud - name = "MOD Module: Medical Visor" + name = "Medical Visor Module" id = "mod_visor_medhud" materials = list(/datum/material/silver = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/visor/medhud - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/mod_visor_diaghud - name = "MOD Module: Diagnostic Visor" + name = "Diagnostic Visor Module" id = "mod_visor_diaghud" materials = list(/datum/material/gold = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/visor/diaghud - department_type = MODULE_SCIENCE - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE + ) /datum/design/module/mod_visor_sechud - name = "MOD Module: Security Visor" + name = "Security Visor Module" id = "mod_visor_sechud" materials = list(/datum/material/titanium = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/visor/sechud - department_type = MODULE_SECURITY - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) /datum/design/module/mod_visor_meson - name = "MOD Module: Meson Visor" + name = "Meson Visor Module" id = "mod_visor_meson" materials = list(/datum/material/uranium = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/visor/meson - department_type = MODULE_SUPPLY - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) /datum/design/module/mod_visor_welding - name = "MOD Module: Welding Protection" + name = "Welding Protection Module" id = "mod_welding" materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/welding - department_type = MODULE_ENGINEERING - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_t_ray - name = "MOD Module: T-Ray Scanner" + name = "T-Ray Scanner Module" id = "mod_t_ray" materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/t_ray - department_type = MODULE_ENGINEERING - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_health_analyzer - name = "MOD Module: Health Analyzer" + name = "Health Analyzer Module" id = "mod_health_analyzer" materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/health_analyzer - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/mod_stealth - name = "MOD Module: Cloak" + name = "Cloak Module" id = "mod_stealth" materials = list(/datum/material/iron = 1000, /datum/material/bluespace = 500) build_path = /obj/item/mod/module/stealth - department_type = MODULE_SECURITY - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) /datum/design/module/mod_jetpack - name = "MOD Module: Ion Jetpack" + name = "Ion Jetpack Module" id = "mod_jetpack" materials = list(/datum/material/iron = 1500, /datum/material/plasma = 1000) build_path = /obj/item/mod/module/jetpack /datum/design/module/mod_magboot - name = "MOD Module: Magnetic Stabilizator" + name = "Magnetic Stabilizator Module" id = "mod_magboot" materials = list(/datum/material/iron = 1000, /datum/material/gold = 500) build_path = /obj/item/mod/module/magboot - department_type = MODULE_ENGINEERING + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_mag_harness - name = "MOD Module: Magnetic Harness" + name = "Magnetic Harness Module" id = "mod_mag_harness" materials = list(/datum/material/iron = 1500, /datum/material/silver = 500) build_path = /obj/item/mod/module/magnetic_harness - department_type = MODULE_SECURITY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) /datum/design/module/mod_tether - name = "MOD Module: Emergency Tether" + name = "Emergency Tether Module" id = "mod_tether" materials = list(/datum/material/iron = 1000, /datum/material/silver = 500) build_path = /obj/item/mod/module/tether - department_type = MODULE_ENGINEERING + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_mouthhole - name = "MOD Module: Eating Apparatus" + name = "Eating Apparatus Module" id = "mod_mouthhole" materials = list(/datum/material/iron = 1500) build_path = /obj/item/mod/module/mouthhole /datum/design/module/mod_rad_protection - name = "MOD Module: Radiation Protection" + name = "Radiation Protection Module" id = "mod_rad_protection" materials = list(/datum/material/iron = 1000, /datum/material/uranium = 1000) build_path = /obj/item/mod/module/rad_protection - department_type = MODULE_ENGINEERING - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_emp_shield - name = "MOD Module: EMP Shield" + name = "EMP Shield Module" id = "mod_emp_shield" materials = list(/datum/material/iron = 1000, /datum/material/plasma = 1000) build_path = /obj/item/mod/module/emp_shield /datum/design/module/mod_flashlight - name = "MOD Module: Flashlight" + name = "Flashlight Module" id = "mod_flashlight" materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/flashlight /datum/design/module/mod_reagent_scanner - name = "MOD Module: Reagent Scanner" + name = "Reagent Scanner Module" id = "mod_reagent_scanner" materials = list(/datum/material/glass = 1000) build_path = /obj/item/mod/module/reagent_scanner - department_type = MODULE_SCIENCE + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE + ) /datum/design/module/mod_gps - name = "MOD Module: Internal GPS" + name = "Internal GPS Module" id = "mod_gps" materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/mod/module/gps - department_type = MODULE_SUPPLY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) /datum/design/module/mod_constructor - name = "MOD Module: Constructor" + name = "Constructor Module" id = "mod_constructor" materials = list(/datum/material/iron = 1000, /datum/material/titanium = 500) build_path = /obj/item/mod/module/constructor - department_type = MODULE_ENGINEERING - + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_quick_carry - name = "MOD Module: Quick Carry" + name = "Quick Carry Module" id = "mod_quick_carry" materials = list(/datum/material/iron = 1000, /datum/material/titanium = 500) build_path = /obj/item/mod/module/quick_carry - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/mod_longfall - name = "MOD Module: Longfall" + name = "Longfall Module" id = "mod_longfall" materials = list(/datum/material/iron = 1000) build_path = /obj/item/mod/module/longfall /datum/design/module/mod_thermal_regulator - name = "MOD Module: Thermal Regulator" + name = "Thermal Regulator Module" id = "mod_thermal_regulator" materials = list(/datum/material/iron = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/thermal_regulator /datum/design/module/mod_injector - name = "MOD Module: Injector" + name = "Injector Module" id = "mod_injector" materials = list(/datum/material/iron = 1000, /datum/material/diamond = 500) build_path = /obj/item/mod/module/injector - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/mod_bikehorn - name = "MOD Module: Bike Horn" + name = "Bike Horn Module" id = "mod_bikehorn" materials = list(/datum/material/plastic = 500, /datum/material/iron = 500) build_path = /obj/item/mod/module/bikehorn - department_type = MODULE_SERVICE + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE + ) /datum/design/module/mod_microwave_beam - name = "MOD Module: Microwave Beam" + name = "Microwave Beam Module" id = "mod_microwave_beam" materials = list(/datum/material/iron = 1000, /datum/material/uranium = 500) build_path = /obj/item/mod/module/microwave_beam - department_type = MODULE_SERVICE + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE + ) /datum/design/module/mod_waddle - name = "MOD Module: Waddle" + name = "Waddle Module" id = "mod_waddle" materials = list(/datum/material/plastic = 1000, /datum/material/iron = 1000) build_path = /obj/item/mod/module/waddle - department_type = MODULE_SERVICE + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SERVICE + ) /datum/design/module/mod_clamp - name = "MOD Module: Crate Clamp" + name = "Crate Clamp Module" id = "mod_clamp" materials = list(/datum/material/iron = 2000) build_path = /obj/item/mod/module/clamp - department_type = MODULE_SUPPLY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) /datum/design/module/mod_drill - name = "MOD Module: Drill" + name = "Drill Module" id = "mod_drill" materials = list(/datum/material/silver = 1000, /datum/material/iron = 2000) build_path = /obj/item/mod/module/drill - department_type = MODULE_SUPPLY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) /datum/design/module/mod_orebag - name = "MOD Module: Ore Bag" + name = "Ore Bag Module" id = "mod_orebag" materials = list(/datum/material/iron = 1500) build_path = /obj/item/mod/module/orebag - department_type = MODULE_SUPPLY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) /datum/design/module/mod_organ_thrower - name = "MOD Module: Organ Thrower" + name = "Organ Thrower Module" id = "mod_organ_thrower" materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) build_path = /obj/item/mod/module/organ_thrower - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/mod_pathfinder - name = "MOD Module: Pathfinder" + name = "Pathfinder Module" id = "mod_pathfinder" materials = list(/datum/material/uranium = 1000, /datum/material/iron = 1000) build_path = /obj/item/mod/module/pathfinder /datum/design/module/mod_dna_lock - name = "MOD Module: DNA Lock" + name = "DNA Lock Module" id = "mod_dna_lock" materials = list(/datum/material/diamond = 500, /datum/material/glass = 1000) build_path = /obj/item/mod/module/dna_lock /datum/design/module/mod_plasma_stabilizer - name = "MOD Module: Plasma Stabilizer" + name = "Plasma Stabilizer Module" id = "mod_plasma" materials = list(/datum/material/plasma = 1000, /datum/material/glass = 1000) build_path = /obj/item/mod/module/plasma_stabilizer /datum/design/module/mod_glove_translator - name = "MOD Module: Glove Translator" + name = "Glove Translator Module" id = "mod_sign_radio" materials = list(/datum/material/iron = 750, /datum/material/glass = 500) build_path = /obj/item/mod/module/signlang_radio /datum/design/module/mister_atmos - name = "MOD Module: Resin Mister" + name = "Resin Mister Module" id = "mod_mister_atmos" materials = list(/datum/material/glass = 1000, /datum/material/titanium = 1500) build_path = /obj/item/mod/module/mister/atmos - department_type = MODULE_ENGINEERING + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) /datum/design/module/mod_holster - name = "MOD Module: Holster" + name = "Holster Module" id = "mod_holster" materials = list(/datum/material/iron = 1500, /datum/material/glass = 500) build_path = /obj/item/mod/module/holster - department_type = MODULE_SECURITY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) /datum/design/module/mod_sonar - name = "MOD Module: Active Sonar" + name = "Active Sonar Module" id = "mod_sonar" materials = list(/datum/material/titanium = 250, /datum/material/glass = 1000, /datum/material/gold = 500, /datum/material/uranium = 250) build_path = /obj/item/mod/module/active_sonar - department_type = MODULE_SECURITY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) /datum/design/module/projectile_dampener - name = "MOD Module: Projectile Dampener" + name = "Projectile Dampener Module" id = "mod_projectile_dampener" materials = list(/datum/material/iron = 1000, /datum/material/bluespace = 500) build_path = /obj/item/mod/module/projectile_dampener - department_type = MODULE_SECURITY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) /datum/design/module/surgicalprocessor - name = "MOD Module: Surgical Processor" + name = "Surgical Processor Module" id = "mod_surgicalprocessor" materials = list(/datum/material/titanium = 250, /datum/material/glass = 1000, /datum/material/silver = 1500) build_path = /obj/item/mod/module/surgical_processor - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/threadripper - name = "MOD Module: Thread Ripper" + name = "Thread Ripper Module" id = "mod_threadripper" materials = list(/datum/material/titanium = 250, /datum/material/plastic = 1000, /datum/material/silver = 1500) build_path = /obj/item/mod/module/thread_ripper - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/defibrillator - name = "MOD Module: Defibrillator" + name = "Defibrillator Module" id = "mod_defib" materials = list(/datum/material/titanium = 250, /datum/material/diamond = 1000, /datum/material/silver = 1500) build_path = /obj/item/mod/module/defibrillator - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/patienttransport - name = "MOD Module: Patient Transport" + name = "Patient Transport Module" id = "mod_patienttransport" materials = list(/datum/material/iron = 1000, /datum/material/bluespace = 1000) build_path = /obj/item/mod/module/criminalcapture/patienttransport - department_type = MODULE_MEDICAL + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) /datum/design/module/criminalcapture - name = "MOD Module: Criminal Capture" + name = "Criminal Capture Module" id = "mod_criminalcapture" materials = list(/datum/material/iron = 1000, /datum/material/bluespace = 1000) build_path = /obj/item/mod/module/criminalcapture - department_type = MODULE_SECURITY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SECURITY + ) //MODsuit bepis modules - /datum/design/module/disposal - name = "MOD Module: Disposal Connector" + name = "Disposal Connector Module" id = "mod_disposal" materials = list(/datum/material/iron = 2500, /datum/material/titanium = 1000) build_path = /obj/item/mod/module/disposal_connector - department_type = MODULE_SUPPLY + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SUPPLY + ) //MODsuit anomalock modules - /datum/design/module/mod_antigrav - name = "MOD Module: Anti-Gravity" + name = "Anti-Gravity Module" id = "mod_antigrav" materials = list(/datum/material/iron = 2500, /datum/material/glass = 2000, /datum/material/uranium = 2000) build_path = /obj/item/mod/module/anomaly_locked/antigrav - department_type = MODULE_SCIENCE + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE + ) /datum/design/module/mod_teleporter - name = "MOD Module: Teleporter" + name = "Teleporter Module" id = "mod_teleporter" materials = list(/datum/material/iron = 2500, /datum/material/glass = 2000, /datum/material/bluespace = 2000) build_path = /obj/item/mod/module/anomaly_locked/teleporter - department_type = MODULE_SCIENCE + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_SCIENCE + ) /datum/design/module/mod_kinesis - name = "MOD Module: Kinesis" + name = "Kinesis Module" id = "mod_kinesis" materials = list(/datum/material/iron = 2500, /datum/material/glass = 2000, /datum/material/uranium = 1000, /datum/material/bluespace = 1000) build_path = /obj/item/mod/module/anomaly_locked/kinesis - department_type = MODULE_ENGINEERING + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING + ) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 38d93f42ba7..81b40250a30 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -8,29 +8,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 50) build_path = /obj/item/healthanalyzer - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL - -/datum/design/mmi - name = "Man-Machine Interface" - desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity." - id = "mmi" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB - materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) - construction_time = 75 - build_path = /obj/item/mmi - category = list(RND_CATEGORY_CONTROL_INTERFACES, RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE - -/datum/design/posibrain - name = "Positronic Brain" - desc = "The latest in Artificial Intelligences." - id = "mmi_posi" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB - materials = list(/datum/material/iron = 1700, /datum/material/glass = 1350, /datum/material/gold = 500) //Gold, because SWAG. - construction_time = 75 - build_path = /obj/item/mmi/posibrain - category = list(RND_CATEGORY_CONTROL_INTERFACES, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/bluespacebeaker @@ -39,7 +19,9 @@ id = "bluespacebeaker" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 5000, /datum/material/plastic = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) build_path = /obj/item/reagent_containers/cup/beaker/bluespace departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE @@ -49,36 +31,44 @@ id = "splitbeaker" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) build_path = /obj/item/reagent_containers/cup/beaker/noreact - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/xlarge_beaker name = "X-large Beaker" id = "xlarge_beaker" build_type = PROTOLATHE | AWAY_LATHE - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) build_path = /obj/item/reagent_containers/cup/beaker/plastic + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/meta_beaker name = "Metamaterial Beaker" id = "meta_beaker" build_type = PROTOLATHE | AWAY_LATHE - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000, /datum/material/gold = 1000, /datum/material/titanium = 1000) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) build_path = /obj/item/reagent_containers/cup/beaker/meta + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/ph_meter name = "Chemical Analyzer" id = "ph_meter" build_type = PROTOLATHE | AWAY_LATHE - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/glass = 2500, /datum/material/gold = 1000, /datum/material/titanium = 1000) build_path = /obj/item/ph_meter - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/bluespacesyringe name = "Bluespace Syringe" @@ -87,7 +77,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 2000, /datum/material/plasma = 1000, /datum/material/diamond = 1000, /datum/material/bluespace = 500) build_path = /obj/item/reagent_containers/syringe/bluespace - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/dna_disk @@ -97,8 +89,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver = 50) build_path = /obj/item/disk/data - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GENETICS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/piercesyringe name = "Piercing Syringe" @@ -107,8 +101,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 2000, /datum/material/diamond = 1000) build_path = /obj/item/reagent_containers/syringe/piercing - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/bluespacebodybag name = "Bluespace Body Bag" @@ -117,18 +113,22 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/plasma = 2000, /datum/material/diamond = 500, /datum/material/bluespace = 500) build_path = /obj/item/bodybag/bluespace - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/plasmarefiller - name = "Plasma-Man Jumpsuit Refill" + name = "Plasmaman Jumpsuit Refill" desc = "A refill pack for the auto-extinguisher on Plasma-man suits." id = "plasmarefiller" //Why did this have no plasmatech build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/plasma = 1000) build_path = /obj/item/extinguisher_refill - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) + departmental_flags = ALL /datum/design/crewpinpointer name = "Crew Pinpointer" @@ -137,7 +137,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 1500, /datum/material/gold = 500) build_path = /obj/item/pinpointer/crew - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/defibrillator @@ -147,7 +149,9 @@ build_type = PROTOLATHE | AWAY_LATHE build_path = /obj/item/defibrillator materials = list(/datum/material/iron = 8000, /datum/material/glass = 4000, /datum/material/silver = 3000, /datum/material/gold = 1500) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/defibrillator_mount @@ -157,7 +161,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/wallframe/defib_mount - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/defibrillator_mount_charging @@ -167,10 +173,11 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000, /datum/material/silver = 500) build_path = /obj/item/wallframe/defib_mount/charging - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL - /datum/design/defibrillator_compact name = "Compact Defibrillator" desc = "A compact defibrillator that can be worn on a belt." @@ -178,7 +185,9 @@ build_type = PROTOLATHE | AWAY_LATHE build_path = /obj/item/defibrillator/compact materials = list(/datum/material/iron = 16000, /datum/material/glass = 8000, /datum/material/silver = 6000, /datum/material/gold = 3000) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/genescanner @@ -188,8 +197,10 @@ build_path = /obj/item/sequence_scanner build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 500) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GENETICS + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/healthanalyzer_advanced name = "Advanced Health Analyzer" @@ -198,7 +209,9 @@ build_path = /obj/item/healthanalyzer/advanced build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 2000, /datum/material/gold = 1500) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/medigel @@ -208,7 +221,9 @@ build_path = /obj/item/reagent_containers/medigel build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 500) - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/surgical_drapes @@ -217,7 +232,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 2000) build_path = /obj/item/surgical_drapes - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE /datum/design/laserscalpel @@ -227,8 +244,10 @@ build_path = /obj/item/scalpel/advanced build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 6000, /datum/material/glass = 1500, /datum/material/silver = 2000, /datum/material/gold = 1500, /datum/material/diamond = 200, /datum/material/titanium = 4000) - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/mechanicalpinches name = "Mechanical Pinches" @@ -237,8 +256,10 @@ build_path = /obj/item/retractor/advanced build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 12000, /datum/material/glass = 4000, /datum/material/silver = 4000, /datum/material/titanium = 5000) - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/searingtool name = "Searing Tool" @@ -247,18 +268,22 @@ build_path = /obj/item/cautery/advanced build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 2000, /datum/material/plasma = 2000, /datum/material/uranium = 3000, /datum/material/titanium = 3000) - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/medical_spray_bottle name = "Medical Spray Bottle" desc = "A traditional spray bottle used to generate a fine mist. Not to be confused with a medspray." id = "med_spray_bottle" build_type = PROTOLATHE | AWAY_LATHE - departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/plastic = 2000) build_path = /obj/item/reagent_containers/spray/medical - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/chem_pack name = "Intravenous Medicine Bag" @@ -268,7 +293,10 @@ departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/plastic = 2000) build_path = /obj/item/reagent_containers/chem_pack - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/blood_pack name = "Blood Pack" @@ -278,7 +306,10 @@ departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/plastic = 1000) build_path = /obj/item/reagent_containers/blood - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/portable_chem_mixer name = "Portable Chemical Mixer" @@ -288,7 +319,10 @@ departmental_flags = DEPARTMENT_BITFLAG_MEDICAL materials = list(/datum/material/plastic = 5000, /datum/material/iron = 10000, /datum/material/glass = 3000) build_path = /obj/item/storage/portable_chem_mixer - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL ///////////////////////////////////////// //////////Cybernetic Implants//////////// @@ -302,7 +336,9 @@ construction_time = 40 materials = list(/datum/material/iron = 600, /datum/material/glass = 400) build_path = /obj/item/organ/internal/eyes/robotic/shield - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_gloweyes @@ -313,7 +349,9 @@ construction_time = 40 materials = list(/datum/material/iron = 600, /datum/material/glass = 1000) build_path = /obj/item/organ/internal/eyes/robotic/glow - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_breather @@ -324,7 +362,9 @@ construction_time = 35 materials = list(/datum/material/iron = 600, /datum/material/glass = 250) build_path = /obj/item/organ/internal/cyberimp/mouth/breathing_tube - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_surgical @@ -335,7 +375,9 @@ materials = list (/datum/material/iron = 2500, /datum/material/glass = 1500, /datum/material/silver = 1500) construction_time = 200 build_path = /obj/item/organ/internal/cyberimp/arm/surgery - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_toolset @@ -346,7 +388,9 @@ materials = list (/datum/material/iron = 2500, /datum/material/glass = 1500, /datum/material/silver = 1500) construction_time = 200 build_path = /obj/item/organ/internal/cyberimp/arm/toolset - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_medical_hud @@ -357,7 +401,9 @@ construction_time = 50 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 500, /datum/material/gold = 500) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/medical - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_security_hud @@ -368,7 +414,9 @@ construction_time = 50 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 750, /datum/material/gold = 750) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/security - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_diagnostic_hud @@ -379,7 +427,9 @@ construction_time = 50 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600) build_path = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_xray @@ -390,7 +440,9 @@ construction_time = 60 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/uranium = 1000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000) build_path = /obj/item/organ/internal/eyes/robotic/xray - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_thermals @@ -401,7 +453,9 @@ construction_time = 60 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000) build_path = /obj/item/organ/internal/eyes/robotic/thermals - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_antidrop @@ -412,7 +466,9 @@ construction_time = 60 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 400, /datum/material/gold = 400) build_path = /obj/item/organ/internal/cyberimp/brain/anti_drop - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_antistun @@ -423,7 +479,9 @@ construction_time = 60 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 500, /datum/material/gold = 1000) build_path = /obj/item/organ/internal/cyberimp/brain/anti_stun - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_nutriment @@ -434,7 +492,9 @@ construction_time = 40 materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/gold = 500) build_path = /obj/item/organ/internal/cyberimp/chest/nutriment - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_nutriment_plus @@ -445,7 +505,9 @@ construction_time = 50 materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/gold = 500, /datum/material/uranium = 750) build_path = /obj/item/organ/internal/cyberimp/chest/nutriment/plus - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_reviver @@ -456,7 +518,9 @@ construction_time = 60 materials = list(/datum/material/iron = 800, /datum/material/glass = 800, /datum/material/gold = 300, /datum/material/uranium = 500) build_path = /obj/item/organ/internal/cyberimp/chest/reviver - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cyberimp_thrusters @@ -467,7 +531,9 @@ construction_time = 80 materials = list(/datum/material/iron = 4000, /datum/material/glass = 2000, /datum/material/silver = 1000, /datum/material/diamond = 1000) build_path = /obj/item/organ/internal/cyberimp/chest/thrusters - category = list(RND_CATEGORY_IMPLANTS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL ///////////////////////////////////////// @@ -481,8 +547,8 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 200) build_path = /obj/item/implanter - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL + category = list(RND_SUBCATEGORY_IMPLANTS) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL /datum/design/implantcase name = "Implant Case" @@ -491,8 +557,8 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500) build_path = /obj/item/implantcase - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL + category = list(RND_SUBCATEGORY_IMPLANTS) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL /datum/design/implant_sadtrombone name = "Sad Trombone Implant Case" @@ -501,8 +567,8 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500, /datum/material/bananium = 500) build_path = /obj/item/implantcase/sad_trombone - category = list(RND_CATEGORY_MEDICAL_DESIGNS) - + category = list(RND_SUBCATEGORY_IMPLANTS) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/implant_chem name = "Chemical Implant Case" @@ -511,7 +577,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 700) build_path = /obj/item/implantcase/chem - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list(RND_SUBCATEGORY_IMPLANTS) departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL /datum/design/implant_tracking @@ -521,7 +587,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/implantcase/tracking - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list(RND_SUBCATEGORY_IMPLANTS) departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL //Cybernetic organs @@ -534,7 +600,9 @@ construction_time = 40 materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/internal/liver/cybernetic - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_liver/tier2 @@ -560,7 +628,9 @@ construction_time = 40 materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/internal/heart/cybernetic - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_heart/tier2 @@ -586,7 +656,9 @@ construction_time = 40 materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/internal/lungs/cybernetic - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_lungs/tier2 @@ -612,7 +684,9 @@ construction_time = 40 materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/internal/stomach/cybernetic - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_stomach/tier2 @@ -638,7 +712,9 @@ construction_time = 30 materials = list(/datum/material/iron = 250, /datum/material/glass = 400) build_path = /obj/item/organ/internal/ears/cybernetic - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_ears_u @@ -649,7 +725,9 @@ construction_time = 40 materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500) build_path = /obj/item/organ/internal/ears/cybernetic/upgraded - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_eyes @@ -660,7 +738,9 @@ construction_time = 30 materials = list(/datum/material/iron = 250, /datum/material/glass = 400) build_path = /obj/item/organ/internal/eyes/robotic/basic - category = list(RND_CATEGORY_CYBERNETICS, RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cybernetic_eyes/improved diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index 4e8165fb7ca..d964de0e3da 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -3,23 +3,27 @@ /////////////////Mining////////////////// ///////////////////////////////////////// /datum/design/cargo_express - name = "Computer Design (Express Supply Console)"//shes beautiful + name = "Express Supply Console Board"//shes beautiful desc = "Allows for the construction of circuit boards used to build an Express Supply Console."//who? id = "cargoexpress"//the coder reading this build_type = IMPRINTER materials = list(/datum/material/glass = 1000) build_path = /obj/item/circuitboard/computer/cargo/express - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/bluespace_pod - name = "Supply Drop Pod Upgrade Disk" + name = "Express Supply Drop Pod Upgrade Disk" desc = "Allows the Cargo Express Console to call down the Bluespace Drop Pod, greatly increasing user safety."//who? id = "bluespace_pod"//the coder reading this build_type = PROTOLATHE materials = list(/datum/material/glass = 1000) build_path = /obj/item/disk/cargo/bluespace_pod - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/drill @@ -29,7 +33,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 6000, /datum/material/glass = 1000) //expensive, but no need for miners. build_path = /obj/item/pickaxe/drill - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/drill_diamond @@ -39,7 +45,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 6000, /datum/material/glass = 1000, /datum/material/diamond = 2000) //Yes, a whole diamond is needed. build_path = /obj/item/pickaxe/drill/diamonddrill - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/plasmacutter @@ -49,7 +57,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1500, /datum/material/glass = 500, /datum/material/plasma = 400) build_path = /obj/item/gun/energy/plasmacutter - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/plasmacutter_adv @@ -59,7 +69,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000, /datum/material/plasma = 2000, /datum/material/gold = 500) build_path = /obj/item/gun/energy/plasmacutter/adv - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/jackhammer @@ -69,7 +81,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 6000, /datum/material/glass = 2000, /datum/material/silver = 2000, /datum/material/diamond = 6000) build_path = /obj/item/pickaxe/drill/jackhammer - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/superresonator @@ -79,7 +93,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 1500, /datum/material/silver = 1000, /datum/material/uranium = 1000) build_path = /obj/item/resonator/upgraded - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/trigger_guard_mod @@ -89,45 +105,87 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/trigger_guard - category = list(RND_CATEGORY_MINING_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO /datum/design/damage_mod name = "Kinetic Accelerator Damage Mod" desc = "A device which allows kinetic accelerators to deal more damage." id = "damagemod" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/damage - category = list(RND_CATEGORY_MINING_DESIGNS, RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO +/datum/design/damage_mod/borg + id = "damagemod_b" + build_type = MECHFAB + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/cooldown_mod name = "Kinetic Accelerator Cooldown Mod" desc = "A device which decreases the cooldown of a Kinetic Accelerator." id = "cooldownmod" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/cooldown - category = list(RND_CATEGORY_MINING_DESIGNS, RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO +/datum/design/cooldown_mod/borg + id = "cooldownmod_b" + build_type = MECHFAB + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/range_mod name = "Kinetic Accelerator Range Mod" desc = "A device which allows kinetic accelerators to fire at a further range." id = "rangemod" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000) build_path = /obj/item/borg/upgrade/modkit/range - category = list(RND_CATEGORY_MINING_DESIGNS, RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO +/datum/design/range_mod/borg + id = "rangemod_b" + build_type = MECHFAB + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + /datum/design/hyperaccelerator name = "Kinetic Accelerator Mining AoE Mod" desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock." id = "hypermod" - build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 8000, /datum/material/glass = 1500, /datum/material/silver = 2000, /datum/material/gold = 2000, /datum/material/diamond = 2000) build_path = /obj/item/borg/upgrade/modkit/aoe/turfs - category = list(RND_CATEGORY_MINING_DESIGNS, RND_CATEGORY_CYBORG_UPGRADE_MODULES) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO + +/datum/design/hyperaccelerator/borg + id = "hypermod_b" + build_type = MECHFAB + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 3b62c82398e..81cd2d3fe23 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -10,7 +10,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/hud/health - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/health_hud_night @@ -20,7 +22,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/silver = 350) build_path = /obj/item/clothing/glasses/hud/health/night - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/security_hud @@ -30,7 +34,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/hud/security - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/security_hud_night @@ -40,7 +46,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/gold = 350) build_path = /obj/item/clothing/glasses/hud/security/night - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/diagnostic_hud @@ -50,7 +58,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/hud/diagnostic - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/diagnostic_hud_night @@ -60,7 +70,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/plasma = 300) build_path = /obj/item/clothing/glasses/hud/diagnostic/night - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE ///////////////////////////////////////// @@ -74,7 +86,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/welding - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/welding_mask @@ -84,7 +98,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000) build_path = /obj/item/clothing/mask/gas/welding - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/bright_helmet @@ -94,8 +110,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000, /datum/material/plastic = 3000, /datum/material/silver = 500) build_path = /obj/item/clothing/head/hardhat/red/upgraded - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/mauna_mug name = "Mauna Mug" @@ -103,9 +121,11 @@ id = "mauna_mug" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 100) - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) build_path = /obj/item/reagent_containers/cup/maunamug - + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/rolling_table name = "Rolly poly" @@ -114,8 +134,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000) build_path = /obj/structure/table/rolling - category = list(RND_CATEGORY_EQUIPMENT) - + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/portaseeder name = "Portable Seed Extractor" @@ -124,7 +146,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 400) build_path = /obj/item/storage/bag/plants/portaseeder - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_TOOLS_BOTANY + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/air_horn @@ -134,8 +158,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/bananium = 1000) build_path = /obj/item/bikehorn/airhorn - category = list(RND_CATEGORY_EQUIPMENT) - + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/mesons name = "Optical Meson Scanners" @@ -144,7 +170,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/meson - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/engine_goggles @@ -154,7 +182,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/plasma = 100) build_path = /obj/item/clothing/glasses/meson/engine - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/tray_goggles @@ -164,7 +194,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/meson/engine/tray - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ATMOSPHERICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/atmos_thermal @@ -184,7 +216,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000) build_path = /obj/item/clothing/glasses/meson/night - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO /datum/design/night_vision_goggles @@ -194,7 +228,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000) build_path = /obj/item/clothing/glasses/night - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MISC + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SECURITY /datum/design/magboots @@ -204,7 +240,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4500, /datum/material/silver = 1500, /datum/material/gold = 2500) build_path = /obj/item/clothing/shoes/magboots - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/forcefield_projector @@ -214,7 +252,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 1000) build_path = /obj/item/forcefield_projector - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/sci_goggles @@ -224,8 +264,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/clothing/glasses/science - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL /datum/design/nv_sci_goggles name = "Night Vision Science Goggles" @@ -234,8 +276,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000) build_path = /obj/item/clothing/glasses/science/night - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL /datum/design/roastingstick name = "Advanced Roasting Stick" @@ -244,7 +288,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=1000, /datum/material/glass = 500, /datum/material/bluespace = 250) build_path = /obj/item/melee/roastingstick - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/locator @@ -254,7 +300,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=1000, /datum/material/glass = 500, /datum/material/silver = 500) build_path = /obj/item/locator - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/quantum_keycard @@ -264,8 +312,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500, /datum/material/iron = 500, /datum/material/silver = 500, /datum/material/bluespace = 1000) build_path = /obj/item/quantum_keycard - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/anomaly_neutralizer name = "Anomaly Neutralizer" @@ -274,8 +324,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/gold = 2000, /datum/material/plasma = 5000, /datum/material/uranium = 2000) build_path = /obj/item/anomaly_neutralizer - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/donksoft_refill name = "Donksoft Toy Vendor Refill" @@ -284,7 +336,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 25000, /datum/material/glass = 15000, /datum/material/plasma = 20000, /datum/material/gold = 10000, /datum/material/silver = 10000) build_path = /obj/item/vending_refill/donksoft - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_MISC + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/oxygen_tank name = "Oxygen Tank" @@ -293,8 +348,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000) build_path = /obj/item/tank/internals/oxygen/empty - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO /datum/design/plasma_tank name = "Plasma Tank" @@ -303,7 +360,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000) build_path = /obj/item/tank/internals/plasma/empty - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/id @@ -313,7 +372,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=200, /datum/material/glass = 100) build_path = /obj/item/card/id/advanced - category = list(RND_CATEGORY_ELECTRONICS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/eng_gloves @@ -323,7 +384,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=2000, /datum/material/silver=1500, /datum/material/gold = 1000) build_path = /obj/item/clothing/gloves/color/latex/engineering - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/lavarods @@ -332,7 +395,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=1000, /datum/material/plasma=500, /datum/material/titanium=2000) build_path = /obj/item/stack/rods/lava - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/plasticducky @@ -342,7 +407,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 1000) build_path = /obj/item/bikehorn/rubberducky/plasticducky - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/pneumatic_seal name = "Pneumatic Airlock Seal" @@ -351,7 +419,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000, /datum/material/plasma = 10000) build_path = /obj/item/door_seal - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_SCIENCE ///////////////////////////////////////// @@ -365,7 +435,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 200) build_path = /obj/item/mop/advanced - category = list(RND_CATEGORY_EQUIPMENT, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/normtrash @@ -375,7 +447,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 2000) build_path = /obj/item/storage/bag/trash - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/blutrash @@ -385,7 +459,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/gold = 1500, /datum/material/uranium = 250, /datum/material/plasma = 1500) build_path = /obj/item/storage/bag/trash/bluespace - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/light_replacer @@ -395,8 +471,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1500, /datum/material/silver = 150, /datum/material/glass = 3000) build_path = /obj/item/lightreplacer - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/buffer_upgrade name = "Floor Buffer Upgrade" @@ -405,7 +483,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 200) build_path = /obj/item/janicart_upgrade/buffer - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_JANITOR + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/vacuum_upgrade @@ -415,7 +495,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 200) build_path = /obj/item/janicart_upgrade/vacuum - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_JANITOR + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/paint_remover @@ -426,7 +508,9 @@ materials = list(/datum/material/iron = 1000) reagents_list = list(/datum/reagent/acetone = 60) build_path = /obj/item/paint/paint_remover - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/spraybottle @@ -436,7 +520,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 200) build_path = /obj/item/reagent_containers/spray - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/beartrap @@ -446,7 +532,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/titanium = 1000) build_path = /obj/item/restraints/legcuffs/beartrap - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE @@ -459,7 +547,9 @@ id = "adv_watering_can" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 200) - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS, RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY_ADVANCED + ) build_path = /obj/item/reagent_containers/cup/watering_can/advanced departmental_flags = DEPARTMENT_BITFLAG_SERVICE @@ -474,7 +564,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/holosign_creator - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/holobarrier_jani @@ -484,10 +576,11 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/janibarrier - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE - /datum/design/holosignsec name = "Security Holobarrier Projector" desc = "A holographic projector that creates holographic security barriers." @@ -495,7 +588,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/security - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/holosignengi @@ -505,7 +600,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/engineering - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/holosignatmos @@ -515,7 +612,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/atmos - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/holobarrier_med @@ -525,7 +624,9 @@ build_path = /obj/item/holosign_creator/medical materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease) id = "holobarrier_med" - category = list(RND_CATEGORY_MEDICAL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL ///////////////////////////////////////// @@ -539,8 +640,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/diamond = 5000, /datum/material/uranium = 8000, /datum/material/silver = 4500, /datum/material/gold = 5000) build_path = /obj/item/reactive_armour_shell - category = list(RND_CATEGORY_EQUIPMENT) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/knight_armour name = "Knight Armour" @@ -573,7 +676,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500) build_path = /obj/item/flashlight/seclite - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/detective_scanner @@ -583,7 +688,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 2500, /datum/material/silver = 2000) build_path = /obj/item/detective_scanner - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/pepperspray @@ -593,7 +700,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000) build_path = /obj/item/reagent_containers/spray/pepper/empty - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/bola_energy @@ -603,7 +712,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/silver = 500, /datum/material/plasma = 500, /datum/material/titanium = 500) build_path = /obj/item/restraints/legcuffs/bola/energy - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -614,7 +725,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 250) build_path = /obj/item/restraints/handcuffs/cable/zipties - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/evidencebag @@ -624,7 +737,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 100) build_path = /obj/item/evidencebag - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/inspector @@ -634,7 +749,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/uranium = 2000) build_path = /obj/item/inspector - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/plumbing_rcd @@ -643,24 +760,32 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500, /datum/material/plastic = 1000) build_path = /obj/item/construction/plumbing - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PLUMBING + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/gas_filter - name = "Gas filter" + name = "Gas Filter" id = "gas_filter" build_type = PROTOLATHE | AUTOLATHE materials = list(/datum/material/iron = 100) build_path = /obj/item/gas_filter - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) + departmental_flags = ALL /datum/design/plasmaman_gas_filter - name = "Plasmaman gas filter" + name = "Plasmaman Gas Filter" id = "plasmaman_gas_filter" build_type = PROTOLATHE | AUTOLATHE materials = list(/datum/material/iron = 100) build_path = /obj/item/gas_filter/plasmaman - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS + ) + departmental_flags = ALL ///////////////////////////////////////// /////////////////Tape//////////////////// @@ -672,7 +797,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 3000) build_path = /obj/item/stack/sticky_tape/super - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/pointy_tape @@ -681,7 +808,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1500, /datum/material/plastic = 1000) build_path = /obj/item/stack/sticky_tape/pointy - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/super_pointy_tape @@ -690,7 +819,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/plastic = 2000) build_path = /obj/item/stack/sticky_tape/pointy/super - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE ///////////////////////////////////////// @@ -703,7 +834,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 2500) build_path = /obj/item/clothing/gloves/tackler/dolphin - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/tackle_rocket @@ -712,7 +845,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plasma = 1000, /datum/material/plastic = 2000) build_path = /obj/item/clothing/gloves/tackler/rocket - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY @@ -728,7 +863,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/holosign_creator/robot_seat/restaurant - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/holosign/bar @@ -738,7 +875,9 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000) build_path = /obj/item/holosign_creator/robot_seat/bar - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/oven_tray @@ -748,7 +887,9 @@ build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500) build_path = /obj/item/plate/oven_tray - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE ///////////////////////////////////////// @@ -761,7 +902,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/uranium = 1000, /datum/material/plastic = 2000) build_path = /obj/item/fishing_rod/tech - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE ///////////////////////////////////////// /////////Coffeemaker Stuff/////////////// @@ -773,7 +917,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 500, /datum/material/plastic = 500) build_path = /obj/item/reagent_containers/cup/coffeepot - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/coffeepot_bluespace name = "Bluespace Coffeepot" @@ -781,7 +928,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/plastic = 500, /datum/material/bluespace = 500) build_path = /obj/item/reagent_containers/cup/coffeepot/bluespace - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/coffee_cartridge name = "Blank Coffee Cartridge" @@ -789,4 +939,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 1000) build_path = /obj/item/blank_coffee_cartridge - category = list(RND_CATEGORY_EQUIPMENT) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 227bb8967c8..89377a8e1d4 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -10,7 +10,10 @@ materials = list(/datum/material/iron = 700, /datum/material/glass = 50) construction_time=100 build_path = /obj/item/stock_parts/cell/empty - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/high_cell name = "High-Capacity Power Cell" @@ -20,7 +23,9 @@ materials = list(/datum/material/iron = 700, /datum/material/glass = 60) construction_time=100 build_path = /obj/item/stock_parts/cell/high/empty - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/super_cell @@ -31,7 +36,9 @@ materials = list(/datum/material/iron = 700, /datum/material/glass = 70) construction_time=100 build_path = /obj/item/stock_parts/cell/super/empty - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/hyper_cell @@ -42,7 +49,9 @@ materials = list(/datum/material/iron = 700, /datum/material/gold = 150, /datum/material/silver = 150, /datum/material/glass = 80) construction_time=100 build_path = /obj/item/stock_parts/cell/hyper/empty - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/bluespace_cell @@ -53,7 +62,9 @@ materials = list(/datum/material/iron = 800, /datum/material/gold = 120, /datum/material/glass = 160, /datum/material/diamond = 160, /datum/material/titanium = 300, /datum/material/bluespace = 100) construction_time=100 build_path = /obj/item/stock_parts/cell/bluespace/empty - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/inducer @@ -63,43 +74,56 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000) build_path = /obj/item/inducer/sci - category = list(RND_CATEGORY_POWER_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING /datum/design/board/pacman - name = "Machine Design (PACMAN-type Generator Board)" - desc = "The circuit board that for a PACMAN-type portable generator." + name = "PACMAN Board" + desc = "The circuit board for a PACMAN-type portable generator." id = "pacman" build_path = /obj/item/circuitboard/machine/pacman - category = list(RND_CATEGORY_ENGINEERING_MACHINERY) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/turbine_part_compressor - name = "Turbine Part - Compressor" + name = "Turbine Compressor" desc = "The basic tier of a compressor blade." id = "turbine_part_compressor" - build_type = PROTOLATHE | AUTOLATHE + build_type = PROTOLATHE materials = list(/datum/material/iron = 500) construction_time = 100 build_path = /obj/item/turbine_parts/compressor - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TURBINE + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/turbine_part_rotor - name = "Turbine Part - Rotor" + name = "Turbine Rotor" desc = "The basic tier of a rotor shaft." id = "turbine_part_rotor" - build_type = PROTOLATHE | AUTOLATHE + build_type = PROTOLATHE materials = list(/datum/material/iron = 500) construction_time = 100 build_path = /obj/item/turbine_parts/rotor - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TURBINE + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/turbine_part_stator - name = "Turbine Part - Stator" + name = "Turbine Stator" desc = "The basic tier of a stator." id = "turbine_part_stator" - build_type = PROTOLATHE | AUTOLATHE + build_type = PROTOLATHE materials = list(/datum/material/iron = 500) construction_time = 100 build_path = /obj/item/turbine_parts/stator - category = list(RND_CATEGORY_MISC, RND_CATEGORY_POWER_DESIGNS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TURBINE + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/designs/smelting_designs.dm b/code/modules/research/designs/smelting_designs.dm index 84d875dd267..156bc875990 100644 --- a/code/modules/research/designs/smelting_designs.dm +++ b/code/modules/research/designs/smelting_designs.dm @@ -1,63 +1,74 @@ ///////SMELTABLE ALLOYS/////// /datum/design/plasteel_alloy - name = "Plasma + Iron alloy" + name = "Plasteel" id = "plasteel" build_type = SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/plasma = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasteel - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING maxstack = 50 - /datum/design/plastitanium_alloy - name = "Plasma + Titanium alloy" + name = "Plastitanium" id = "plastitanium" build_type = SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT, /datum/material/plasma = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/mineral/plastitanium - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING maxstack = 50 /datum/design/plaglass_alloy - name = "Plasma + Glass alloy" + name = "Plasma Glass" id = "plasmaglass" build_type = SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasmaglass - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING maxstack = 50 /datum/design/plasmarglass_alloy - name = "Plasma + Iron + Glass alloy" + name = "Reinforced Plasma Glass" id = "plasmareinforcedglass" build_type = SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plasmarglass - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING maxstack = 50 /datum/design/titaniumglass_alloy - name = "Titanium + Glass alloy" + name = "Titanium Glass" id = "titaniumglass" build_type = SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/titaniumglass - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING maxstack = 50 /datum/design/plastitaniumglass_alloy - name = "Plasma + Titanium + Glass alloy" + name = "Plastitanium Glass" id = "plastitaniumglass" build_type = SMELTER | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/titanium = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT) build_path = /obj/item/stack/sheet/plastitaniumglass - category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING maxstack = 50 @@ -68,5 +79,7 @@ build_type = PROTOLATHE | AWAY_LATHE | SMELTER materials = list(/datum/material/iron = 4000, /datum/material/plasma = 4000) build_path = /obj/item/stack/sheet/mineral/abductor - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MATERIALS + ) departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index 03444c6cd78..e6520d72c8e 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -9,7 +9,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) //hardcore build_path = /obj/item/storage/part_replacer - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_EXCHANGERS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/bs_rped @@ -19,7 +21,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 15000, /datum/material/glass = 5000, /datum/material/silver = 2500) //hardcore build_path = /obj/item/storage/part_replacer/bluespace - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_EXCHANGERS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE //Capacitors @@ -30,7 +34,9 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/stock_parts/capacitor - category = list(RND_CATEGORY_STOCK_PARTS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -41,7 +47,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150, /datum/material/glass = 150) build_path = /obj/item/stock_parts/capacitor/adv - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -52,7 +60,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/gold = 100) build_path = /obj/item/stock_parts/capacitor/super - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -63,7 +73,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/gold = 100, /datum/material/diamond = 100) build_path = /obj/item/stock_parts/capacitor/quadratic - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -75,7 +87,9 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/stock_parts/scanning_module - category = list(RND_CATEGORY_STOCK_PARTS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -86,7 +100,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150, /datum/material/glass = 100) build_path = /obj/item/stock_parts/scanning_module/adv - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -97,7 +113,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 150, /datum/material/silver = 60) build_path = /obj/item/stock_parts/scanning_module/phasic - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -108,7 +126,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/diamond = 30, /datum/material/bluespace = 30) build_path = /obj/item/stock_parts/scanning_module/triphasic - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -120,7 +140,9 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 100) build_path = /obj/item/stock_parts/manipulator - category = list(RND_CATEGORY_STOCK_PARTS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -131,7 +153,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150) build_path = /obj/item/stock_parts/manipulator/nano - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -142,7 +166,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200) build_path = /obj/item/stock_parts/manipulator/pico - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -153,7 +179,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/diamond = 30, /datum/material/titanium = 30) build_path = /obj/item/stock_parts/manipulator/femto - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -165,7 +193,9 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 50) build_path = /obj/item/stock_parts/micro_laser - category = list(RND_CATEGORY_STOCK_PARTS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -176,7 +206,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150, /datum/material/glass = 100) build_path = /obj/item/stock_parts/micro_laser/high - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -187,7 +219,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 150, /datum/material/uranium = 60) build_path = /obj/item/stock_parts/micro_laser/ultra - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -198,7 +232,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/uranium = 100, /datum/material/diamond = 60) build_path = /obj/item/stock_parts/micro_laser/quadultra - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -209,7 +245,9 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/iron = 100) build_path = /obj/item/stock_parts/matter_bin - category = list(RND_CATEGORY_STOCK_PARTS, RND_CATEGORY_MACHINERY, RND_CATEGORY_INITIAL) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_1 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -220,7 +258,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 150) build_path = /obj/item/stock_parts/matter_bin/adv - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_2 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -231,7 +271,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200) build_path = /obj/item/stock_parts/matter_bin/super - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_3 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -242,7 +284,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 250, /datum/material/diamond = 100, /datum/material/bluespace = 100) build_path = /obj/item/stock_parts/matter_bin/bluespace - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_4 + ) lathe_time_factor = 0.2 departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE @@ -254,7 +298,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/silver = 100) build_path = /obj/item/stock_parts/subspace/ansible - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/hyperwave_filter @@ -264,7 +310,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/silver = 100) build_path = /obj/item/stock_parts/subspace/filter - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/subspace_amplifier @@ -274,7 +322,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/gold = 100, /datum/material/uranium = 100) build_path = /obj/item/stock_parts/subspace/amplifier - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/subspace_treatment @@ -284,7 +334,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/silver = 200) build_path = /obj/item/stock_parts/subspace/treatment - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/subspace_analyzer @@ -294,7 +346,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/gold = 100) build_path = /obj/item/stock_parts/subspace/analyzer - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/subspace_crystal @@ -304,7 +358,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 800, /datum/material/silver = 100, /datum/material/gold = 100) build_path = /obj/item/stock_parts/subspace/crystal - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/subspace_transmitter @@ -314,7 +370,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 100, /datum/material/silver = 100, /datum/material/uranium = 100) build_path = /obj/item/stock_parts/subspace/transmitter - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/card_reader @@ -324,7 +382,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=50, /datum/material/glass=10) build_path = /obj/item/stock_parts/card_reader - category = list(RND_CATEGORY_STOCK_PARTS) + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_MISC + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/water_recycler name = "Water Recycler" @@ -333,5 +394,7 @@ build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE materials = list(/datum/material/plastic = 200, /datum/material/iron = 50) build_path = /obj/item/stock_parts/water_recycler - category = list(RND_CATEGORY_STOCK_PARTS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_MISC + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm index f50fce1fa62..69655f8adae 100644 --- a/code/modules/research/designs/telecomms_designs.dm +++ b/code/modules/research/designs/telecomms_designs.dm @@ -3,65 +3,81 @@ /////////////////////////////////// /datum/design/board/subspace_receiver - name = "Machine Design (Subspace Receiver)" + name = "Subspace Receiver Board" desc = "Allows for the construction of Subspace Receiver equipment." id = "s_receiver" build_path = /obj/item/circuitboard/machine/telecomms/receiver - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/telecomms_bus - name = "Machine Design (Bus Mainframe)" + name = "Bus Mainframe Board" desc = "Allows for the construction of Telecommunications Bus Mainframes." id = "s_bus" build_path = /obj/item/circuitboard/machine/telecomms/bus - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/telecomms_hub - name = "Machine Design (Hub Mainframe)" + name = "Hub Mainframe Board" desc = "Allows for the construction of Telecommunications Hub Mainframes." id = "s_hub" build_path = /obj/item/circuitboard/machine/telecomms/hub - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/telecomms_relay - name = "Machine Design (Relay Mainframe)" + name = "Relay Mainframe Board" desc = "Allows for the construction of Telecommunications Relay Mainframes." id = "s_relay" build_path = /obj/item/circuitboard/machine/telecomms/relay - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/telecomms_processor - name = "Machine Design (Processor Unit)" + name = "Processor Unit Board" desc = "Allows for the construction of Telecommunications Processor equipment." id = "s_processor" build_path = /obj/item/circuitboard/machine/telecomms/processor - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/telecomms_server - name = "Machine Design (Server Mainframe)" + name = "Server Mainframe Board" desc = "Allows for the construction of Telecommunications Servers." id = "s_server" build_path = /obj/item/circuitboard/machine/telecomms/server - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/telecomms_messaging - name = "Machine Design (Messaging Server)" + name = "Messaging Server Board" desc = "Allows for the construction of Telecommunications Messaging Servers." id = "s_messaging" build_path = /obj/item/circuitboard/machine/telecomms/message_server - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/board/subspace_broadcaster - name = "Machine Design (Subspace Broadcaster)" + name = "Subspace Broadcaster Board" desc = "Allows for the construction of Subspace Broadcasting equipment." id = "s_broadcaster" build_path = /obj/item/circuitboard/machine/telecomms/broadcaster - category = list(RND_CATEGORY_SUBSPACE_TELECOMMS) + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_TELECOMMS + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm index bcd925dad96..25468263fb1 100644 --- a/code/modules/research/designs/tool_designs.dm +++ b/code/modules/research/designs/tool_designs.dm @@ -10,7 +10,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3500, /datum/material/silver = 1500, /datum/material/titanium = 2500) build_path = /obj/item/screwdriver/power - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/jawsoflife @@ -20,7 +22,9 @@ build_path = /obj/item/crowbar/power build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4500, /datum/material/silver = 2500, /datum/material/titanium = 3500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING autolathe_exportable = FALSE @@ -31,8 +35,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/plasma = 1500, /datum/material/uranium = 200) build_path = /obj/item/weldingtool/experimental - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rangedanalyzer name = "Experimental Long-range Gas Analyzer" @@ -41,8 +47,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 20, /datum/material/gold = 300, /datum/material/bluespace=200) build_path = /obj/item/analyzer/ranged - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags= DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SCIENCE /datum/design/rpd name = "Rapid Pipe Dispenser (RPD)" @@ -50,19 +58,33 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500) build_path = /obj/item/pipe_dispenser - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rcd_loaded name = "Rapid Construction Device" desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly." id = "rcd_loaded" build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron = 60000, /datum/material/glass = 5000) // costs more than what it did in the autolathe, this one comes loaded. + materials = list(/datum/material/iron = 60000, /datum/material/glass = 5000) build_path = /obj/item/construction/rcd/loaded - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING +/datum/design/rcd_ammo + name = "RCD Matter Cartridge" + id = "rcd_ammo" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = 12000, /datum/material/glass = 8000) + build_path = /obj/item/rcd_ammo + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rcd_upgrade/frames name = "RCD frames designs upgrade" @@ -71,7 +93,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 1500, /datum/material/titanium = 2000) build_path = /obj/item/rcd_upgrade/frames - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rcd_upgrade/simple_circuits @@ -81,7 +105,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 1500, /datum/material/titanium = 2000) build_path = /obj/item/rcd_upgrade/simple_circuits - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rcd_upgrade/furnishing @@ -91,7 +117,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 1500, /datum/material/titanium = 2000) build_path = /obj/item/rcd_upgrade/furnishing - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rcd_upgrade/silo_link @@ -101,7 +129,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 2500, /datum/material/silver = 2500, /datum/material/titanium = 2500, /datum/material/bluespace = 2500) build_path = /obj/item/rcd_upgrade/silo_link - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rpd_upgrade/unwrench @@ -111,7 +141,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) build_path = /obj/item/rpd_upgrade/unwrench - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/rld_mini @@ -121,8 +153,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000, /datum/material/glass = 10000, /datum/material/plastic = 8000, /datum/material/gold = 2000) build_path = /obj/item/construction/rld/mini - category = list(RND_CATEGORY_TOOL_DESIGNS) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SERVICE /datum/design/geneshears name = "Botanogenetic Plant Shears" @@ -131,7 +165,9 @@ build_path = /obj/item/geneshears build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron=4000, /datum/material/uranium=1500, /datum/material/silver=500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/plumbing_rcd_sci @@ -140,7 +176,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500, /datum/material/plastic = 1000) build_path = /obj/item/construction/plumbing/research - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PLUMBING + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/plumbing_rcd_service @@ -149,7 +187,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500, /datum/material/plastic = 1000) build_path = /obj/item/construction/plumbing/service - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PLUMBING + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/biopsy_tool @@ -158,7 +198,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 3000) build_path = /obj/item/biopsy_tool - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_XENOBIOLOGY + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE ///////////////////////////////////////// @@ -172,7 +214,9 @@ build_path = /obj/item/wrench/abductor build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/alienwirecutters @@ -182,7 +226,9 @@ build_path = /obj/item/wirecutters/abductor build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/alienscrewdriver @@ -192,7 +238,9 @@ build_path = /obj/item/screwdriver/abductor build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/aliencrowbar @@ -202,7 +250,9 @@ build_path = /obj/item/crowbar/abductor build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/alienwelder @@ -212,7 +262,9 @@ build_path = /obj/item/weldingtool/abductor build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 5000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING /datum/design/alienmultitool @@ -222,7 +274,9 @@ build_path = /obj/item/multitool/abductor build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 5000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING ///////////////////////////////////////// @@ -236,7 +290,9 @@ build_path = /obj/item/scalpel/alien build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/alienhemostat @@ -246,7 +302,9 @@ build_path = /obj/item/hemostat/alien build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/alienretractor @@ -256,7 +314,9 @@ build_path = /obj/item/retractor/alien build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/aliensaw @@ -266,7 +326,9 @@ build_path = /obj/item/circular_saw/alien build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 1500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/aliendrill @@ -276,7 +338,9 @@ build_path = /obj/item/surgicaldrill/alien build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 1500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/aliencautery @@ -286,7 +350,9 @@ build_path = /obj/item/cautery/alien build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500) - category = list(RND_CATEGORY_TOOL_DESIGNS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/wirebrush @@ -297,5 +363,8 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_TOOLS) materials = list(/datum/material/iron = 200, /datum/material/glass = 200) build_path = /obj/item/wirebrush - category = list(RND_CATEGORY_EQUIPMENT) + category = list(RND_CATEGORY_TOOLS) departmental_flags = DEPARTMENT_BITFLAG_SERVICE + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL + ) diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 424984ac071..050af7f91c7 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -5,7 +5,9 @@ /datum/design/c38/sec id = "sec_38" build_type = PROTOLATHE | AWAY_LATHE - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE //Redundant, there's already an autolathe version. @@ -16,7 +18,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000, /datum/material/silver = 5000, /datum/material/gold = 1000) build_path = /obj/item/ammo_box/c38/trac - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c38_hotshot @@ -26,7 +30,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000, /datum/material/plasma = 5000) build_path = /obj/item/ammo_box/c38/hotshot - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c38_iceblox @@ -36,7 +42,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000, /datum/material/plasma = 5000) build_path = /obj/item/ammo_box/c38/iceblox - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c38_rubber @@ -46,34 +54,44 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 20000) build_path = /obj/item/ammo_box/c38/match/bouncy - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/rubbershot/sec id = "sec_rshot" build_type = PROTOLATHE | AWAY_LATHE - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE //Redundant /datum/design/beanbag_slug/sec id = "sec_beanbag_slug" build_type = PROTOLATHE | AWAY_LATHE - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE /datum/design/shotgun_dart/sec id = "sec_dart" build_type = PROTOLATHE | AWAY_LATHE - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE /datum/design/incendiary_slug/sec id = "sec_Islug" build_type = PROTOLATHE | AWAY_LATHE - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -84,7 +102,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 500, /datum/material/glass = 300) build_path = /obj/item/firing_pin/test_range - category = list(RND_CATEGORY_FIRING_PINS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_FIRING_PINS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/pin_mindshield @@ -94,7 +114,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/silver = 600, /datum/material/diamond = 600, /datum/material/uranium = 200) build_path = /obj/item/firing_pin/implant/mindshield - category = list(RND_CATEGORY_FIRING_PINS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_FIRING_PINS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/pin_explorer @@ -104,7 +126,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/silver = 1000, /datum/material/gold = 1000, /datum/material/iron = 500) build_path = /obj/item/firing_pin/explorer - category = list(RND_CATEGORY_FIRING_PINS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_FIRING_PINS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/stunrevolver @@ -114,7 +138,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 10000, /datum/material/silver = 10000) build_path = /obj/item/weaponcrafting/gunkit/tesla - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -125,7 +151,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 2000, /datum/material/uranium = 3000, /datum/material/titanium = 1000) build_path = /obj/item/weaponcrafting/gunkit/nuclear - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -136,7 +164,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 4000, /datum/material/glass = 4000, /datum/material/silver = 300, /datum/material/titanium = 200) build_path = /obj/item/shield/riot/tele - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_MELEE + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -147,7 +177,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000, /datum/material/diamond = 5000, /datum/material/uranium = 8000, /datum/material/silver = 4500, /datum/material/gold = 5000) build_path = /obj/item/weaponcrafting/gunkit/beam_rifle - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -158,7 +190,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/gold = 5000, /datum/material/uranium = 10000) build_path = /obj/item/weaponcrafting/gunkit/decloner - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -169,7 +203,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000) build_path = /obj/item/gun/syringe/rapidsyringe - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL //uwu /datum/design/temp_gun @@ -179,7 +215,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 500, /datum/material/silver = 3000) build_path = /obj/item/weaponcrafting/gunkit/temperature - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -190,48 +228,58 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/glass = 500, /datum/material/uranium = 2000) build_path = /obj/item/gun/energy/floragun - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_BOTANY_ADVANCED + ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE /datum/design/large_grenade - name = "Large Grenade" + name = "Large Grenade Casing" desc = "A grenade that affects a larger area and use larger containers." id = "large_grenade" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000) build_path = /obj/item/grenade/chem_grenade/large - category = list(RND_CATEGORY_WEAPONS) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/pyro_grenade - name = "Pyro Grenade" + name = "Pyro Grenade Casing" desc = "An advanced grenade that is able to self ignite its mixture." id = "pyro_grenade" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/plasma = 500) build_path = /obj/item/grenade/chem_grenade/pyro - category = list(RND_CATEGORY_WEAPONS) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/cryo_grenade - name = "Cryo Grenade" + name = "Cryo Grenade Casing" desc = "An advanced grenade that rapidly cools its contents upon detonation." id = "cryo_grenade" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/silver = 500) build_path = /obj/item/grenade/chem_grenade/cryo - category = list(RND_CATEGORY_WEAPONS) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/adv_grenade - name = "Advanced Release Grenade" + name = "Advanced Release Grenade Casing" desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter." id = "adv_grenade" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 3000, /datum/material/glass = 500) build_path = /obj/item/grenade/chem_grenade/adv_release - category = list(RND_CATEGORY_WEAPONS) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_MEDICAL + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_CHEMISTRY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL /datum/design/xray name = "X-ray Laser Gun Part Kit" @@ -240,18 +288,22 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/gold = 5000, /datum/material/uranium = 4000, /datum/material/iron = 5000, /datum/material/titanium = 2000, /datum/material/bluespace = 2000) build_path = /obj/item/weaponcrafting/gunkit/xray - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE /datum/design/ioncarbine name = "Ion Carbine Part Kit" - desc = "How to dismantle a cyborg : The gun." + desc = "How to Dismantle a Cyborg: The Gun." id = "ioncarbine" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/silver = 6000, /datum/material/iron = 8000, /datum/material/uranium = 2000) build_path = /obj/item/weaponcrafting/gunkit/ion - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_KITS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -262,7 +314,9 @@ build_type = PROTOLATHE materials = list(/datum/material/silver = 2000, /datum/material/iron = 5000, /datum/material/diamond = 2000, /datum/material/bluespace = 3000) build_path = /obj/item/gun/energy/wormhole_projector - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/stunshell @@ -272,7 +326,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 200) build_path = /obj/item/ammo_casing/shotgun/stunslug - category = list(RND_CATEGORY_AMMO) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/techshell @@ -282,8 +338,10 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 200) build_path = /obj/item/ammo_casing/shotgun/techshell - category = list(RND_CATEGORY_AMMO) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_SCIENCE + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/suppressor name = "Suppressor" @@ -292,7 +350,9 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 2000, /datum/material/silver = 500) build_path = /obj/item/suppressor - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_PARTS + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/gravitygun @@ -302,17 +362,21 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/silver = 8000, /datum/material/uranium = 8000, /datum/material/glass = 12000, /datum/material/iron = 12000, /datum/material/diamond = 3000, /datum/material/bluespace = 3000) build_path = /obj/item/gun/energy/gravity_gun - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE + ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE /datum/design/largecrossbow name = "Energy Crossbow Part Kit" - desc = "A kit to reverse-engineer a proto-kinetic acceleratr into an energy crossbow, favored by syndicate infiltration teams and carp hunters." + desc = "A kit to reverse-engineer a proto-kinetic accelerator into an energy crossbow, favored by syndicate infiltration teams and carp hunters." id = "largecrossbow" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1500, /datum/material/uranium = 1500, /datum/material/silver = 1500) build_path = /obj/item/weaponcrafting/gunkit/ebow - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY autolathe_exportable = FALSE @@ -332,5 +396,7 @@ build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/iron = 10000, /datum/material/glass = 4000, /datum/material/silver = 10000, /datum/material/gold = 2000) build_path = /obj/item/melee/baton/security/boomerang - category = list(RND_CATEGORY_WEAPONS) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED + ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY diff --git a/code/modules/research/designs/wiremod_designs.dm b/code/modules/research/designs/wiremod_designs.dm index 7ef6ef884fd..edf04e0d6eb 100644 --- a/code/modules/research/designs/wiremod_designs.dm +++ b/code/modules/research/designs/wiremod_designs.dm @@ -3,8 +3,10 @@ desc = "The foundation of all circuits. All Circuitry go onto this." id = "integrated_circuit" build_path = /obj/item/integrated_circuit - build_type = IMPRINTER | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_CORE) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE + ) materials = list(/datum/material/glass = 1000, /datum/material/iron = 1000) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE @@ -13,8 +15,10 @@ desc = "A circuit multitool to mark entities and load them into." id = "circuit_multitool" build_path = /obj/item/multitool/circuit - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_CORE) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE + ) materials = list(/datum/material/glass = 1000, /datum/material/iron = 1000) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE @@ -23,8 +27,10 @@ desc = "A cable that allows certain shells to connect to nearby computers and machines." id = "usb_cable" build_path = /obj/item/usb_cable - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_CORE) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE + ) // Yes, it would make sense to make them take plastic, but then less people would make them, and I think they're cool materials = list(/datum/material/iron = 2500) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE @@ -32,10 +38,12 @@ /datum/design/component name = "Component ( NULL ENTRY )" desc = "A component that goes into an integrated circuit." - build_type = IMPRINTER | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list(/datum/material/glass = 1000) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_COMPONENTS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_COMPONENTS + ) /datum/design/component/New() . = ..() @@ -334,7 +342,9 @@ build_path = /obj/item/circuit_component/pinpointer /datum/design/component/bci - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_BCI_COMPONENTS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_BCI_COMPONENTS + ) /datum/design/component/bci/bci_action name = "BCI Action Component" @@ -422,26 +432,32 @@ id = "compact_remote_shell" build_path = /obj/item/compact_remote materials = list(/datum/material/glass = 2000, /datum/material/iron = 5000) - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/controller_shell name = "Controller Shell" desc = "A handheld shell with several buttons." id = "controller_shell" build_path = /obj/item/controller - build_type = PROTOLATHE | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list(/datum/material/glass = 2000, /datum/material/iron = 7000) - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/scanner_shell name = "Scanner Shell" desc = "A handheld scanner shell that can scan entities." id = "scanner_shell" build_path = /obj/item/wiremod_scanner - build_type = PROTOLATHE | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list(/datum/material/glass = 2000, /datum/material/iron = 7000) - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/keyboard_shell name = "Keyboard Shell" @@ -449,48 +465,58 @@ id = "keyboard_shell" build_path = /obj/item/keyboard_shell materials = list(/datum/material/glass = 2000, /datum/material/iron = 10000) - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list("Circuitry", "Shells") + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/gun_shell name = "Gun Shell" desc = "A handheld shell that can fire projectiles to output entities." id = "gun_shell" build_path = /obj/item/gun/energy/wiremod_gun - build_type = PROTOLATHE | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list(/datum/material/glass = 2000, /datum/material/iron = 10000, /datum/material/plasma = 100) - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/bot_shell name = "Bot Shell" desc = "An immobile shell that can store more components. Has a USB port to be able to connect to computers and machines." id = "bot_shell" build_path = /obj/item/shell/bot - build_type = PROTOLATHE | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list(/datum/material/glass = 2000, /datum/material/iron = 10000) - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/money_bot_shell name = "Money Bot Shell" desc = "An immobile shell that is similar to a regular bot shell, but accepts monetary inputs and can also dispense money." id = "money_bot_shell" build_path = /obj/item/shell/money_bot - build_type = PROTOLATHE | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list(/datum/material/glass = 2000, /datum/material/iron = 10000, /datum/material/gold = 50) - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/drone_shell name = "Drone Shell" desc = "A shell with the ability to move itself around." id = "drone_shell" build_path = /obj/item/shell/drone - build_type = PROTOLATHE | COMPONENT_PRINTER + build_type = COMPONENT_PRINTER materials = list( /datum/material/glass = 2000, /datum/material/iron = 11000, /datum/material/gold = 500, ) - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/server_shell name = "Server Shell" @@ -502,8 +528,10 @@ /datum/material/gold = 1500, ) build_path = /obj/item/shell/server - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/airlock_shell name = "Airlock Shell" @@ -514,8 +542,10 @@ /datum/material/iron = 15000, ) build_path = /obj/item/shell/airlock - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/dispenser_shell name = "Dispenser Shell" @@ -526,8 +556,10 @@ /datum/material/iron = 15000, ) build_path = /obj/item/shell/dispenser - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/bci_shell name = "Brain-Computer Interface Shell" @@ -538,8 +570,10 @@ /datum/material/iron = 8000, ) build_path = /obj/item/shell/bci - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/scanner_gate_shell name = "Scanner Gate Shell" @@ -550,16 +584,20 @@ /datum/material/iron = 12000, ) build_path = /obj/item/shell/scanner_gate - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/board/bci_implanter name = "Brain-Computer Interface Manipulation Chamber" desc = "A machine that, when given a brain-computer interface, will implant it into an occupant. Otherwise, will remove any brain-computer interfaces they already have." id = "bci_implanter" build_path = /obj/item/circuitboard/machine/bci_implanter - build_type = IMPRINTER | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_CORE) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE + ) /datum/design/assembly_shell name = "Assembly Shell" @@ -567,8 +605,10 @@ id = "assembly_shell" materials = list(/datum/material/glass = 2000, /datum/material/iron = 5000) build_path = /obj/item/assembly/wiremod - build_type = PROTOLATHE | COMPONENT_PRINTER - category = list(RND_CATEGORY_CIRCUITRY, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) /datum/design/mod_module_shell name = "MOD Module Shell" @@ -576,5 +616,7 @@ id = "module_shell" materials = list(/datum/material/glass = 2000) build_path = /obj/item/mod/module/circuit - build_type = MECHFAB | COMPONENT_PRINTER - category = list(RND_CATEGORY_MOD_MODULES, RND_CATEGORY_SHELLS) + build_type = COMPONENT_PRINTER + category = list( + RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS + ) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index af9706b5aea..f7667d364e5 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -59,10 +59,12 @@ // We're probably going to get more than one update (design) at a time, so batch // them together. - addtimer(CALLBACK(src, .proc/update_designs), 0.25 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/update_designs), 2 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) /// Updates the list of designs this fabricator can print. /obj/machinery/rnd/production/proc/update_designs() + var/previous_design_count = cached_designs.len + cached_designs.Cut() for(var/design_id in stored_research.researched_designs) @@ -71,6 +73,12 @@ if((isnull(allowed_department_flags) || (design.departmental_flags & allowed_department_flags)) && (design.build_type & allowed_buildtypes)) cached_designs |= design + var/design_delta = cached_designs.len - previous_design_count + + if(design_delta > 0) + say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].") + playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + update_static_data_for_all_viewers() /obj/machinery/rnd/production/RefreshParts() @@ -82,6 +90,7 @@ /obj/machinery/rnd/production/ui_assets(mob/user) return list( get_asset_datum(/datum/asset/spritesheet/sheetmaterials), + get_asset_datum(/datum/asset/spritesheet/research_designs) ) /obj/machinery/rnd/production/ui_interact(mob/user, datum/tgui/ui) @@ -97,6 +106,9 @@ var/list/data = list() var/list/designs = list() + var/datum/asset/spritesheet/research_designs/spritesheet = get_asset_datum(/datum/asset/spritesheet/research_designs) + var/size32x32 = "[spritesheet.name]32x32" + for(var/datum/design/design in cached_designs) var/cost = list() @@ -104,16 +116,20 @@ var/coefficient = efficient_with(design.build_path) ? efficiency_coeff : 1 cost[material.name] = design.materials[material] * coefficient + var/icon_size = spritesheet.icon_size_id(design.id) + designs[design.id] = list( "name" = design.name, "desc" = design.get_description(), "cost" = cost, "id" = design.id, - "categories" = design.category + "categories" = design.category, + "icon" = "[icon_size == size32x32 ? "" : "[icon_size] "][design.id]", + "constructionTime" = 0 ) data["designs"] = designs - data["fab_name"] = name + data["fabName"] = name return data @@ -121,8 +137,10 @@ var/list/data = list() data["materials"] = materials.mat_container?.ui_data() - data["on_hold"] = materials.on_hold() + data["onHold"] = materials.on_hold() data["busy"] = busy + data["materialMaximum"] = materials.local_size + data["queue"] = list() return data diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 1d5777f6442..9045f3dbeec 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -41,14 +41,14 @@ var/list/available_experiments = list() /// Completed experiments var/list/completed_experiments = list() - + /** * Assoc list of relationships with various partners * scientific_cooperation[partner_typepath] = relationship */ var/list/scientific_cooperation /** - * Assoc list of papers already published by the crew. + * Assoc list of papers already published by the crew. * published_papers[experiment_typepath][tier] = paper * Filled with nulls on init, populated only on publication. */ @@ -456,7 +456,7 @@ /datum/techweb/specialized/autounlocking var/design_autounlock_buildtypes = NONE - var/design_autounlock_categories = list("initial") //if a design has a buildtype that matches the abovea and either has a category in this or this is null, unlock it. + var/design_autounlock_categories = list(RND_CATEGORY_INITIAL) //if a design has a buildtype that matches the abovea and either has a category in this or this is null, unlock it. var/node_autounlock_ids = list() //autounlock nodes of this type. /datum/techweb/specialized/autounlocking/New() @@ -512,7 +512,7 @@ // If we haven't published a paper in the same topic ... if(locate(paper_to_add.experiment_path) in published_papers[paper_to_add.experiment_path]) - return TRUE + return TRUE // Quickly add and complete it. // PS: It's also possible to use add_experiment() together with a list/available_experiments check // to determine if we need to run all this, but this pretty much does the same while only needing one evaluation. @@ -527,6 +527,6 @@ complete_experiment(experiment) if(length(GLOB.experiment_handlers)) var/datum/component/experiment_handler/handler = GLOB.experiment_handlers[1] - handler.announce_message_to_all("The [experiment.name] has been completed!") - + handler.announce_message_to_all("The [experiment.name] has been completed!") + return TRUE diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 41cbb398be3..4a8e7e0960a 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -15,31 +15,67 @@ "basic_micro_laser", "basic_scanning", "bepis", + "blast", + "bounced_radio", + "bowl", "bucket", - "c38_rubber", "c-reader", - "circuit_imprinter", + "c38_rubber", + "camera_assembly", + "camera_film", + "camera", + "capbox", + "chisel", "circuit_imprinter_offstation", + "circuit_imprinter", + "circuit", + "circuitgreen", + "circuitred", + "coffee_cartridge", "coffeemaker", "coffeepot", - "coffee_cartridge", + "condenser", "conveyor_belt", "conveyor_switch", + "custom_vendor_refill", "design_disk", "destructive_analyzer", "destructive_scanner", "desttagger", "doppler_array", + "drinking_glass", + "earmuffs", + "electropack", "experi_scanner", "experimentor", + "extinguisher", "fax", + "fishing_rod", + "flashlight", + "fluid_ducts", + "foam_dart", + "fork", "gas_filter", + "handcuffs_s", "handlabel", + "health_sensor", + "holodisk", + "igniter", + "infrared_emitter", + "intercom_frame", + "kitchen_knife", + "laptop", + "light_bulb", + "light_tube", "mechfab", "micro_mani", + "miniature_power_cell", + "newscaster_frame", "oven_tray", "packagewrap", + "pet_carrier", "plasmaglass", + "plasmaman_gas_filter", "plasmareinforcedglass", "plasteel", "plastic_fork", @@ -47,28 +83,49 @@ "plastic_spoon", "plastitanium", "plastitaniumglass", - "plasmaman_gas_filter", + "plate", + "prox_sensor", + "radio_headset", "rdconsole", "rdserver", "rdservercontrol", - "restaurant_portal", + "receiver", + "recorder", "rglass", "roll", "salestagger", "sec_38", - "sec_Islug", "sec_beanbag_slug", "sec_dart", + "sec_Islug", "sec_rshot", + "servingtray", + "shaker", + "shot_glass", + "signaler", + "slime_scanner", + "solar_panel", + "solar_tracker", "space_heater", + "spoon", + "status_display_frame", + "sticky_tape", + "tablet", + "tape", "tech_disk", + "timer", "titaniumglass", - "toner", "toner_large", + "toner", + "toy_armblade", + "toy_balloon", + "toygun", "trapdoor_electronics", "turbine_part_compressor", "turbine_part_rotor", "turbine_part_stator", + "turret_control", + "voice_analyzer", "watering_can", ) @@ -216,6 +273,7 @@ "dropper", "hemostat", "large_beaker", + "mmi_m", "operating", "petri_dish", "pillbottle", @@ -551,6 +609,7 @@ "forcefield_projector", "magboots", "rcd_loaded", + "rcd_ammo", "rpd_loaded", "sheetifier", "weldingmask", diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index f9a8d71b6a5..8e384046e03 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -11,23 +11,32 @@ subsystem_type = /datum/controller/subsystem/processing/fastprocess /// Current items in the build queue. - var/list/queue = list() + var/list/datum/design/queue = list() + /// Whether or not the machine is building the entire queue automagically. var/process_queue = FALSE /// The current design datum that the machine is building. var/datum/design/being_built + /// World time when the build will finish. var/build_finish = 0 + /// World time when the build started. var/build_start = 0 + + /// The job ID of the part currently being processed. This is used for ordering list items for the client UI. + var/top_job_id = 0 + /// Reference to all materials used in the creation of the item being_built. var/list/build_materials + /// Part currently stored in the Exofab. var/obj/item/stored_part /// Coefficient for the speed of item building. Based on the installed parts. var/time_coeff = 1 + /// Coefficient for the efficiency of material usage in item building. Based on the installed parts. var/component_coeff = 1 @@ -40,37 +49,13 @@ /// Reference to a remote material inventory, such as an ore silo. var/datum/component/remote_materials/rmat - /// A list of part sets used for TGUI static data. Updated on Init() and syncing with the R&D console. - var/list/final_sets = list() - - /// A list of individual parts used for TGUI static data. Updated on Init() and syncing with the R&D console. - var/list/buildable_parts = list() - - /// A list of categories that valid MECHFAB design datums will broadly categorise themselves under. - var/list/part_sets = list( - "Cyborg", - "Ripley", - "Odysseus", - "Clarke", - "Gygax", - "Durand", - "H.O.N.K", - "Phazon", - "Savannah-Ivanov", - "Exosuit Equipment", - "Exosuit Ammunition", - "Cyborg Upgrade Modules", - "Cybernetics", - "Implants", - "Control Interfaces", - "MOD Construction", - "MOD Modules", - "Misc" - ) + /// All designs in the techweb that can be fabricated by this machine, since the last update. + var/list/datum/design/cached_designs /obj/machinery/mecha_part_fabricator/Initialize(mapload) stored_research = SSresearch.science_tech rmat = AddComponent(/datum/component/remote_materials, "mechfab", mapload && link_on_init, mat_container_flags=BREAKDOWN_FLAGS_LATHE) + cached_designs = list() RefreshParts() //Recalculating local material sizes if the fab isn't linked update_menu_tech() RegisterSignal( @@ -85,7 +70,7 @@ // We're probably going to get more than one update (design) at a time, so batch // them together. - addtimer(CALLBACK(src, .proc/update_menu_tech), 0.25 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) + addtimer(CALLBACK(src, .proc/update_menu_tech), 2 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE) /obj/machinery/mecha_part_fabricator/RefreshParts() . = ..() @@ -134,115 +119,25 @@ balloon_alert(user, "rotated to [dir2text(dir)].") return TRUE -/** - * Generates an info list for a given part. - * - * Returns a list of part information. - * * D - Design datum to get information on. - * * categories - Boolean, whether or not to parse snowflake categories into the part information list. - */ -/obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D, categories = FALSE) - var/cost = list() - for(var/c in D.materials) - var/datum/material/M = c - cost[M.name] = get_resource_cost_w_coeff(D, M) - - var/obj/built_item = D.build_path - - var/list/category_override = null - var/list/sub_category = null - - if(categories) - // Handle some special cases to build up sub-categories for the fab interface. - // Start with checking if this design builds a cyborg module. - if(ispath(built_item, /obj/item/borg/upgrade)) - var/obj/item/borg/upgrade/U = built_item - var/model_types = initial(U.model_flags) - sub_category = list() - if(model_types) - if(model_types & BORG_MODEL_SECURITY) - sub_category += "Security" - if(model_types & BORG_MODEL_MINER) - sub_category += "Mining" - if(model_types & BORG_MODEL_JANITOR) - sub_category += "Janitor" - if(model_types & BORG_MODEL_MEDICAL) - sub_category += "Medical" - if(model_types & BORG_MODEL_ENGINEERING) - sub_category += "Engineering" - else - sub_category += "All Cyborgs" - - else if(ispath(built_item, /obj/item/mecha_parts/mecha_equipment)) - var/obj/item/mecha_parts/mecha_equipment/E = built_item - var/mech_types = initial(E.mech_flags) - sub_category = "Equipment" - if(mech_types) - category_override = list() - if(mech_types & EXOSUIT_MODULE_RIPLEY) - category_override += "Ripley" - if(mech_types & EXOSUIT_MODULE_ODYSSEUS) - category_override += "Odysseus" - if(mech_types & EXOSUIT_MODULE_CLARKE) - category_override += "Clarke" - if(mech_types & EXOSUIT_MODULE_GYGAX) - category_override += "Gygax" - if(mech_types & EXOSUIT_MODULE_DURAND) - category_override += "Durand" - if(mech_types & EXOSUIT_MODULE_HONK) - category_override += "H.O.N.K" - if(mech_types & EXOSUIT_MODULE_PHAZON) - category_override += "Phazon" - if(mech_types & EXOSUIT_MODULE_SAVANNAH) - category_override += "Savannah-Ivanov" - - else if(ispath(built_item, /obj/item/borg_restart_board)) - sub_category += "All Cyborgs" //Otherwise the restart board shows in the "parts" category, which seems dumb - - else if(istype(D, /datum/design/module)) - var/datum/design/module/module_design = D - sub_category = list(module_design.department_type) - - var/list/part = list( - "name" = D.name, - "desc" = D.get_description(), - "printTime" = get_construction_time_w_coeff(initial(D.construction_time))/10, - "cost" = cost, - "id" = D.id, - "subCategory" = sub_category, - "category_override" = category_override, - "searchMeta" = D.search_metadata - ) - - return part - /** * Updates the `final_sets` and `buildable_parts` for the current mecha fabricator. */ /obj/machinery/mecha_part_fabricator/proc/update_menu_tech() - final_sets = list() - buildable_parts = list() - final_sets += part_sets + var/previous_design_count = cached_designs.len + + cached_designs.Cut() for(var/v in stored_research.researched_designs) - var/datum/design/D = SSresearch.techweb_design_by_id(v) - if(D.build_type & MECHFAB) - // This is for us. - var/list/part = output_part_info(D, TRUE) + var/datum/design/design = SSresearch.techweb_design_by_id(v) - if(part["category_override"]) - for(var/cat in part["category_override"]) - buildable_parts[cat] += list(part) - if(!(cat in part_sets)) - final_sets += cat - continue + if(design.build_type & MECHFAB) + cached_designs |= design - for(var/cat in part_sets) - // Find all matching categories. - if(!(cat in D.category)) - continue + var/design_delta = cached_designs.len - previous_design_count - buildable_parts[cat] += list(part) + if(design_delta > 0) + say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].") + playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) update_static_data_for_all_viewers() @@ -399,20 +294,10 @@ say("The fabrication of [I] is now complete.") I.forceMove(exit) - return TRUE -/** - * Adds a list of datum designs to the build queue. - * - * Will only add designs that are in this machine's stored techweb. - * Does final checks for datum IDs and makes sure this machine can build the designs. - * * part_list - List of datum design ids for designs to add to the queue. - */ -/obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(list/part_list) - for(var/v in stored_research.researched_designs) - var/datum/design/D = SSresearch.techweb_design_by_id(v) - if((D.build_type & MECHFAB) && (D.id in part_list)) - add_to_queue(D) + top_job_id += 1 + + return TRUE /** * Adds a datum design to the build queue. @@ -423,9 +308,11 @@ /obj/machinery/mecha_part_fabricator/proc/add_to_queue(datum/design/D) if(!istype(queue)) queue = list() + if(D) queue[++queue.len] = D return TRUE + return FALSE /** @@ -440,21 +327,6 @@ queue.Cut(index,++index) return TRUE -/** - * Generates a list of parts formatted for tgui based on the current build queue. - * - * Returns a formatted list of lists containing formatted part information for every part in the build queue. - */ -/obj/machinery/mecha_part_fabricator/proc/list_queue() - if(!istype(queue) || !length(queue)) - return null - - var/list/queued_parts = list() - for(var/datum/design/D in queue) - var/list/part = output_part_info(D) - queued_parts += list(part) - return queued_parts - /** * Calculates the coefficient-modified resource cost of a single material component of a design's recipe. * @@ -478,7 +350,8 @@ /obj/machinery/mecha_part_fabricator/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/sheetmaterials) + get_asset_datum(/datum/asset/spritesheet/sheetmaterials), + get_asset_datum(/datum/asset/spritesheet/research_designs) ) /obj/machinery/mecha_part_fabricator/ui_interact(mob/user, datum/tgui/ui) @@ -489,9 +362,30 @@ /obj/machinery/mecha_part_fabricator/ui_static_data(mob/user) var/list/data = list() + var/list/designs = list() - data["partSets"] = final_sets - data["buildableParts"] = buildable_parts + var/datum/asset/spritesheet/research_designs/spritesheet = get_asset_datum(/datum/asset/spritesheet/research_designs) + var/size32x32 = "[spritesheet.name]32x32" + + for(var/datum/design/design in cached_designs) + var/cost = list() + + for(var/datum/material/material in design.materials) + cost[material.name] = get_resource_cost_w_coeff(design, material) + + var/icon_size = spritesheet.icon_size_id(design.id) + + designs[design.id] = list( + "name" = design.name, + "desc" = design.get_description(), + "cost" = cost, + "id" = design.id, + "categories" = design.category, + "icon" = "[icon_size == size32x32 ? "" : "[icon_size] "][design.id]", + "constructionTime" = get_construction_time_w_coeff(design.construction_time) + ) + + data["designs"] = designs return data @@ -499,30 +393,34 @@ var/list/data = list() data["materials"] = rmat.mat_container?.ui_data() + data["queue"] = list() + data["processing"] = process_queue if(being_built) - var/list/part = list( - "name" = being_built.name, - "duration" = build_finish - world.time, - "printTime" = get_construction_time_w_coeff(initial(being_built.construction_time)) - ) - data["buildingPart"] = part - else - data["buildingPart"] = null + data["queue"] += list(list( + "jobId" = top_job_id, + "designId" = being_built.id, + "processing" = TRUE, + "timeLeft" = (build_finish - world.time) + )) - data["queue"] = list_queue() + var/offset = 0 - if(stored_part) - data["storedPart"] = stored_part.name - else - data["storedPart"] = null + for(var/datum/design/design in queue) + offset += 1 - data["isProcessingQueue"] = process_queue + data["queue"] += list(list( + "jobId" = top_job_id + offset, + "designId" = design.id, + "processing" = FALSE, + "timeLeft" = get_construction_time_w_coeff(design.construction_time) / 10 + )) return data /obj/machinery/mecha_part_fabricator/ui_act(action, list/params) . = ..() + if(.) return @@ -532,69 +430,68 @@ usr.set_machine(src) switch(action) - if("add_queue_set") - // Add all parts of a set to queue - var/part_list = params["part_list"] - add_part_set_to_queue(part_list) - return - if("add_queue_part") - // Add a specific part to queue - var/id = params["id"] - if(!stored_research.researched_designs.Find(id)) - stack_trace("ID did not map to a researched datum [id]") + if("build") + var/designs = params["designs"] + + if(!islist(designs)) return - var/datum/design/design = SSresearch.techweb_design_by_id(id) - if(!(design.build_type & MECHFAB) || design.id != id) - return - add_to_queue(design) + + for(var/design_id in designs) + if(!istext(design_id)) + continue + + if(!stored_research.researched_designs.Find(design_id)) + continue + + var/datum/design/design = SSresearch.techweb_design_by_id(design_id) + + if(!(design.build_type & MECHFAB) || design.id != design_id) + continue + + add_to_queue(design) + + if(params["now"]) + if(process_queue) + return + + process_queue = TRUE + + if(!being_built) + begin_processing() + return + if("del_queue_part") // Delete a specific from from the queue var/index = text2num(params["index"]) remove_from_queue(index) + return + if("clear_queue") // Delete everything from queue queue.Cut() + return + if("build_queue") // Build everything in queue if(process_queue) return + process_queue = TRUE if(!being_built) begin_processing() + return + if("stop_queue") // Pause queue building. Also known as stop. process_queue = FALSE - return - if("build_part") - // Build a single part - if(being_built || process_queue) - return - - var/id = params["id"] - if(!stored_research.researched_designs.Find(id)) - stack_trace("ID did not map to a researched datum [id]") - return - var/datum/design/design = SSresearch.techweb_design_by_id(id) - if(!(design.build_type & MECHFAB) || design.id != id) - return - if(build_part(design)) - on_start_printing() - begin_processing() return - if("move_queue_part") - // Moves a part up or down in the queue. - var/index = text2num(params["index"]) - var/new_index = index + text2num(params["newindex"]) - if(isnum(index) && isnum(new_index) && ISINTEGER(index) && ISINTEGER(new_index)) - if(ISINRANGE(new_index,1,length(queue))) - queue.Swap(index,new_index) - return + if("remove_mat") var/datum/material/material = locate(params["ref"]) var/amount = text2num(params["amount"]) diff --git a/code/modules/wiremod/core/component_printer.dm b/code/modules/wiremod/core/component_printer.dm index 0bbc37c5a03..746fddc3ff8 100644 --- a/code/modules/wiremod/core/component_printer.dm +++ b/code/modules/wiremod/core/component_printer.dm @@ -128,20 +128,27 @@ /obj/machinery/component_printer/ui_static_data(mob/user) var/list/data = list() - var/list/designs = list() + var/datum/asset/spritesheet/research_designs/spritesheet = get_asset_datum(/datum/asset/spritesheet/research_designs) + var/size32x32 = "[spritesheet.name]32x32" + // for (var/datum/design/component/component_design_type as anything in subtypesof(/datum/design/component)) for (var/researched_design_id in techweb.researched_designs) var/datum/design/design = SSresearch.techweb_design_by_id(researched_design_id) if (!(design.build_type & COMPONENT_PRINTER)) continue + var/icon_size = spritesheet.icon_size_id(design.id) + designs[researched_design_id] = list( "name" = design.name, - "description" = design.desc, - "materials" = get_material_cost_data(design.materials), + "desc" = design.desc, + "cost" = get_material_cost_data(design.materials), + "id" = researched_design_id, "categories" = design.category, + "icon" = "[icon_size == size32x32 ? "" : "[icon_size] "][design.id]", + "constructionTime" = -1 ) data["designs"] = designs @@ -228,7 +235,8 @@ /obj/machinery/debug_component_printer/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/sheetmaterials) + get_asset_datum(/datum/asset/spritesheet/sheetmaterials), + get_asset_datum(/datum/asset/spritesheet/research_designs) ) /obj/machinery/debug_component_printer/ui_act(action, list/params) @@ -296,7 +304,8 @@ /obj/machinery/module_duplicator/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/sheetmaterials) + get_asset_datum(/datum/asset/spritesheet/sheetmaterials), + get_asset_datum(/datum/asset/spritesheet/research_designs) ) /obj/machinery/module_duplicator/ui_act(action, list/params) @@ -411,6 +420,8 @@ balloon_alert(user, "module has been saved.") playsound(src, 'sound/machines/ping.ogg', 50) + update_static_data_for_all_viewers() + /obj/machinery/module_duplicator/ui_data(mob/user) var/list/data = list() data["materials"] = materials.mat_container.ui_data() @@ -422,12 +433,15 @@ var/list/designs = list() var/index = 1 + for (var/list/design as anything in scanned_designs) designs["[index]"] = list( "name" = design["name"], - "description" = design["desc"], - "materials" = get_material_cost_data(design["materials"]), - "categories" = list("Circuitry"), + "desc" = design["desc"], + "cost" = get_material_cost_data(design["materials"]), + "id" = "[index]", + "icon" = "integrated_circuit", + "categories" = list("/Saved Circuits"), ) index++ diff --git a/tgui/packages/tgui/interfaces/Autolathe.js b/tgui/packages/tgui/interfaces/Autolathe.js deleted file mode 100644 index d0c4f8065d7..00000000000 --- a/tgui/packages/tgui/interfaces/Autolathe.js +++ /dev/null @@ -1,224 +0,0 @@ -import { useBackend, useLocalState } from '../backend'; -import { Button, LabeledList, Section, ProgressBar, Flex, Box, Table, Collapsible, Input, Dimmer, Icon } from '../components'; -import { Window } from '../layouts'; -import { capitalize } from 'common/string'; - -export const Autolathe = (props, context) => { - const { act, data } = useBackend(context); - // Extract `health` and `color` variables from the `data` object. - const { - materialtotal, - materialsmax, - materials = [], - categories = [], - designs = [], - active, - } = data; - const [current_category, setCategory] = useLocalState( - context, - 'current_category', - 'None' - ); - const filteredmaterials = materials.filter( - (material) => material.mineral_amount > 0 - ); - return ( - - -
- - - - {materialtotal + '/' + materialsmax + ' cm³'} - - - - {filteredmaterials.length > 0 && ( - - - {filteredmaterials.map((filteredmaterial) => ( - - -
- {filteredmaterial.mineral_amount + ' cm³'} -
-
-
- ))} -
-
- )} -
-
-
-
- { - if (value.length) { - act('search', { - to_search: value, - }); - setCategory('results for "' + value + '"'); - } - }} - /> -
-
- - {categories.map((category) => ( - // eslint-disable-next-line react/jsx-key -
- {current_category.toString() !== 'None' && ( -
{ - act('menu'); - setCategory('None'); - }} - /> - }> - {active === 1 && ( - - - {'Building items...'} - - )} - - - {(designs.length && - designs.map((design) => ( - - -
-
-
- )} -
-
- ); -}; diff --git a/tgui/packages/tgui/interfaces/Autolathe.tsx b/tgui/packages/tgui/interfaces/Autolathe.tsx new file mode 100644 index 00000000000..f60a838061c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Autolathe.tsx @@ -0,0 +1,254 @@ +import { useBackend } from '../backend'; +import { LabeledList, Section, ProgressBar, Collapsible, Stack, Icon, Box, Tooltip, Button } from '../components'; +import { Window } from '../layouts'; +import { capitalize } from 'common/string'; +import { Design, MaterialMap } from './Fabrication/Types'; +import { DesignBrowser } from './Fabrication/DesignBrowser'; +import { BooleanLike, classes } from 'common/react'; +import { MaterialCostSequence } from './Fabrication/MaterialCostSequence'; +import { Material } from './Fabrication/Types'; + +type AutolatheDesign = Design & { + buildable: BooleanLike; + mult5: BooleanLike; + mult10: BooleanLike; + mult25: BooleanLike; + mult50: BooleanLike; + sheet: BooleanLike; + maxmult: number; +}; + +type AutolatheData = { + materials: Material[]; + materialtotal: number; + materialsmax: number; + designs: AutolatheDesign[]; + active: BooleanLike; +}; + +export const Autolathe = (props, context) => { + const { act, data } = useBackend(context); + const { materialtotal, materialsmax, materials, designs, active } = data; + + const filteredMaterials = materials.filter((material) => material.amount > 0); + + const availableMaterials: MaterialMap = {}; + + for (const material of filteredMaterials) { + availableMaterials[material.name] = material.amount; + } + + return ( + + + + +
+ + + + {materialtotal + '/' + materialsmax + ' cm³'} + + + + {filteredMaterials.length > 0 && ( + + + {filteredMaterials.map((material) => ( + + +
+ {material.amount + ' cm³'} +
+
+
+ ))} +
+
+ )} +
+
+
+
+ + ( + + )} + /> + +
+
+
+ ); +}; + +type PrintButtonProps = { + design: Design; + quantity: number; + availableMaterials: MaterialMap; +}; + +const PrintButton = (props: PrintButtonProps, context) => { + const { act, data } = useBackend(context); + const { design, quantity, availableMaterials } = props; + + const canPrint = !Object.entries(design.cost).some( + ([material, amount]) => + !availableMaterials[material] || + amount * quantity > (availableMaterials[material] ?? 0) + ); + + return ( + + }> +
act('make', { id: design.id, multiplier: quantity })}> + ×{quantity} +
+
+ ); +}; + +type AutolatheRecipeProps = { + design: AutolatheDesign; + availableMaterials: MaterialMap; +}; + +const AutolatheRecipe = (props: AutolatheRecipeProps, context) => { + const { act, data } = useBackend(context); + const { design, availableMaterials } = props; + + const canPrint = !Object.entries(design.cost).some( + ([material, amount]) => + !availableMaterials[material] || + amount > (availableMaterials[material] ?? 0) + ); + + return ( +
+ +
+ +
+
+ + }> +
act('make', { id: design.id, multiplier: 1 })}> +
+ +
+
{design.name}
+
+
+ + {!!design.mult5 && ( + + )} + + {!!design.mult10 && ( + + )} + + {!!design.mult25 && ( + + )} + + {!!design.mult50 && ( + + )} + +
+ + act('make', { + id: design.id, + multiplier: value, + }) + } + /> +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/ComponentPrinter.tsx b/tgui/packages/tgui/interfaces/ComponentPrinter.tsx index ed483dc6645..02960e655f8 100644 --- a/tgui/packages/tgui/interfaces/ComponentPrinter.tsx +++ b/tgui/packages/tgui/interfaces/ComponentPrinter.tsx @@ -1,183 +1,106 @@ -import { createSearch } from 'common/string'; -import { useBackend, useLocalState } from '../backend'; -import { Material, MaterialAmount, MaterialFormatting, Materials, MATERIAL_KEYS } from './common/Materials'; +import { useBackend } from '../backend'; +import { Material } from './Fabrication/Types'; import { Window } from '../layouts'; -import { Box, Button, Input, Section, Stack, Tabs } from '../components'; - -const CATEGORY_ALL = 'All'; - -const searchFor = (searchText) => - createSearch(searchText, ([_, thing]) => thing.name + thing.description); - -const getCategory = (category: string[]) => { - return category[0] === 'Circuitry' ? category[1] : category[0]; -}; - -type Design = { - name: string; - description: string; - materials: Record; - categories: string[]; -}; +import { Box, Tooltip, Icon, Stack, Section } from '../components'; +import { Design } from './Fabrication/Types'; +import { MaterialCostSequence } from './Fabrication/MaterialCostSequence'; +import { MaterialMap } from './Fabrication/Types'; +import { classes } from 'common/react'; +import { DesignBrowser } from './Fabrication/DesignBrowser'; +import { MaterialAccessBar } from './Fabrication/MaterialAccessBar'; type ComponentPrinterData = { designs: Record; materials: Material[]; }; -const canProduce = ( - designMaterials: Design['materials'], - storedMaterials: Material[] -) => { - for (const material of storedMaterials) { - const amountNeeded = designMaterials[material.name]; - - if (amountNeeded && amountNeeded > material.amount) { - return false; - } - } - - return true; -}; - -const MaterialCost = (props: { materials: Design['materials'] }) => { - return ( - - {Object.entries(props.materials).map(([material, amount]) => { - return ( - - - - ); - })} - - ); -}; - export const ComponentPrinter = (props, context) => { const { act, data } = useBackend(context); + const { designs, materials } = data; - const [currentCategory, setCurrentCategory] = useLocalState( - context, - 'category', - CATEGORY_ALL - ); - const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); + // Reduce the material count array to a map of actually available materials. + const availableMaterials: MaterialMap = {}; + + for (const material of data.materials) { + availableMaterials[material.name] = material.amount; + } return ( - - - - -
- { - act('remove_mat', { - ref: ref, - amount: amount, - }); - }} - /> -
+ + + + + } + /> - - -
- - {Object.values(data.designs) - .reduce( - (categories, design) => { - const category = getCategory(design.categories); - if (categories.indexOf(category) === -1) { - return [category, ...categories]; - } else { - return categories; - } - }, - [CATEGORY_ALL] - ) - .sort() - .map((category) => { - return ( - setCurrentCategory(category)} - selected={category === currentCategory} - fluid> - {category} - - ); - })} - -
-
- - -
- - - setSearchText(value)} - /> - - - {Object.entries(data.designs) - .filter( - ([_, design]) => - currentCategory === CATEGORY_ALL || - design.categories.indexOf(currentCategory) !== -1 - ) - .filter(searchFor(searchText)) - .map(([designId, design]) => { - return ( - -
{ - act('print', { - designId, - }); - }} - disabled={ - !canProduce( - design.materials, - data.materials - ) - } - px={1.5}> - Print - - }> - - {design.description} - - -
-
- ); - })} -
-
-
-
+
+ + act('remove_mat', { ref: material.ref, amount }) + } + /> +
); }; + +const Recipe = (props: { design: Design; available: MaterialMap }, context) => { + const { act, data } = useBackend(context); + const { design, available } = props; + + const canPrint = !Object.entries(design.cost).some( + ([material, amount]) => + !available[material] || amount > (available[material] ?? 0) + ); + + return ( +
+ +
+ +
+
+ + }> +
act('print', { designId: design.id, amount: 1 })}> +
+ +
+
{design.name}
+
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/ExosuitFabricator.js b/tgui/packages/tgui/interfaces/ExosuitFabricator.js deleted file mode 100644 index 701832f13b6..00000000000 --- a/tgui/packages/tgui/interfaces/ExosuitFabricator.js +++ /dev/null @@ -1,529 +0,0 @@ -import { uniqBy } from 'common/collections'; -import { createSearch } from 'common/string'; -import { Fragment } from 'inferno'; -import { useBackend, useSharedState } from '../backend'; -import { Box, Button, Icon, Input, ProgressBar, Section, Stack } from '../components'; -import { Materials, MaterialAmount, MaterialFormatting } from './common/Materials'; -import { formatMoney } from '../format'; -import { Window } from '../layouts'; - -const COLOR_NONE = 0; -const COLOR_AVERAGE = 1; -const COLOR_BAD = 2; - -const COLOR_KEYS = { - [COLOR_NONE]: false, - [COLOR_AVERAGE]: 'average', - [COLOR_BAD]: 'bad', -}; - -const materialArrayToObj = (materials) => { - let materialObj = {}; - - materials.forEach((m) => { - materialObj[m.name] = m.amount; - }); - - return materialObj; -}; - -const partBuildColor = (cost, tally, material) => { - if (cost > material) { - return { color: COLOR_BAD, deficit: cost - material }; - } - - if (tally > material) { - return { color: COLOR_AVERAGE, deficit: cost }; - } - - if (cost + tally > material) { - return { color: COLOR_AVERAGE, deficit: cost + tally - material }; - } - - return { color: COLOR_NONE, deficit: 0 }; -}; - -const partCondFormat = (materials, tally, part) => { - let format = { 'textColor': COLOR_NONE }; - - Object.keys(part.cost).forEach((mat) => { - format[mat] = partBuildColor(part.cost[mat], tally[mat], materials[mat]); - - if (format[mat].color > format['textColor']) { - format['textColor'] = format[mat].color; - } - }); - - return format; -}; - -const queueCondFormat = (materials, queue) => { - let materialTally = {}; - let matFormat = {}; - let missingMatTally = {}; - let textColors = {}; - - queue.forEach((part, i) => { - textColors[i] = COLOR_NONE; - Object.keys(part.cost).forEach((mat) => { - materialTally[mat] = materialTally[mat] || 0; - missingMatTally[mat] = missingMatTally[mat] || 0; - - matFormat[mat] = partBuildColor( - part.cost[mat], - materialTally[mat], - materials[mat] - ); - - if (matFormat[mat].color !== COLOR_NONE) { - if (textColors[i] < matFormat[mat].color) { - textColors[i] = matFormat[mat].color; - } - } else { - materialTally[mat] += part.cost[mat]; - } - - missingMatTally[mat] += matFormat[mat].deficit; - }); - }); - return { materialTally, missingMatTally, textColors, matFormat }; -}; - -const searchFilter = (search, allparts) => { - if (!search.length) { - return; - } - const resultFilter = createSearch( - search, - (part) => (part.name || '') + (part.desc || '') + (part.searchMeta || '') - ); - let searchResults = []; - Object.keys(allparts).forEach((category) => { - allparts[category].filter(resultFilter).forEach((e) => { - searchResults.push(e); - }); - }); - searchResults = uniqBy((part) => part.name)(searchResults); - return searchResults; -}; - -export const ExosuitFabricator = (props, context) => { - const { act, data } = useBackend(context); - const queue = data.queue || []; - const materialAsObj = materialArrayToObj(data.materials || []); - const { materialTally, missingMatTally, textColors } = queueCondFormat( - materialAsObj, - queue - ); - const [displayMatCost, setDisplayMatCost] = useSharedState( - context, - 'display_mats', - false - ); - return ( - - - - - - -
- { - act('remove_mat', { - ref: ref, - amount: amount, - }); - }} - /> -
-
- -
- setDisplayMatCost(!displayMatCost)} - checked={displayMatCost}> - Display Material Costs - -
-
-
-
- - - -
- -
-
- - - - - - -
-
-
-
-
- ); -}; - -const PartSets = (props, context) => { - const { data } = useBackend(context); - const partSets = data.partSets || []; - const buildableParts = data.buildableParts || {}; - const [selectedPartTab, setSelectedPartTab] = useSharedState( - context, - 'part_tab', - partSets.length ? buildableParts[0] : '' - ); - return partSets - .filter((set) => buildableParts[set]) - .map((set) => ( - - )); -}; - -const PartLists = (props, context) => { - const { data } = useBackend(context); - - const getFirstValidPartSet = (sets) => { - for (let set of sets) { - if (buildableParts[set]) { - return set; - } - } - return null; - }; - - const partSets = data.partSets || []; - const buildableParts = data.buildableParts || []; - - const { queueMaterials, materials } = props; - - const [selectedPartTab, setSelectedPartTab] = useSharedState( - context, - 'part_tab', - getFirstValidPartSet(partSets) - ); - - const [searchText, setSearchText] = useSharedState( - context, - 'search_text', - '' - ); - - if (!selectedPartTab || !buildableParts[selectedPartTab]) { - const validSet = getFirstValidPartSet(partSets); - if (validSet) { - setSelectedPartTab(validSet); - } else { - return; - } - } - - let partsList; - // Build list of sub-categories if not using a search filter. - if (!searchText) { - partsList = { 'Parts': [] }; - buildableParts[selectedPartTab].forEach((part) => { - part['format'] = partCondFormat(materials, queueMaterials, part); - if (!part.subCategory) { - partsList['Parts'].push(part); - return; - } - if (!(part.subCategory in partsList)) { - partsList[part.subCategory] = []; - } - partsList[part.subCategory].push(part); - }); - } else { - partsList = []; - searchFilter(searchText, buildableParts).forEach((part) => { - part['format'] = partCondFormat(materials, queueMaterials, part); - partsList.push(part); - }); - } - - return ( - - -
- - - - - - setSearchText(v)} - /> - - -
-
- -
- {(!!searchText && ( - - )) || - Object.keys(partsList).map((category) => ( - - ))} -
-
-
- ); -}; - -const PartCategory = (props, context) => { - const { act, data } = useBackend(context); - const { buildingPart } = data; - const { parts, name, forceShow, placeholder } = props; - const [displayMatCost] = useSharedState(context, 'display_mats', false); - if (!forceShow && parts.length === 0) { - return null; - } - return ( -
- act('add_queue_set', { - part_list: parts.map((part) => part.id), - }) - } - /> - }> - {!parts.length && placeholder} - {parts.map((part) => ( - - - -
- ); -}; - -const Queue = (props, context) => { - const { act, data } = useBackend(context); - const { isProcessingQueue } = data; - const queue = data.queue || []; - const { queueMaterials, missingMaterials, textColors } = props; - return ( - - -
- act('clear_queue')} - /> - {(!!isProcessingQueue && ( -
-
- {!!queue.length && ( - -
- -
-
- )} -
- ); -}; - -const QueueMaterials = (props, context) => { - const { queueMaterials, missingMaterials } = props; - return ( - - {Object.keys(queueMaterials).map((material) => ( - - - {!!missingMaterials[material] && ( - {formatMoney(missingMaterials[material])} - )} - - ))} - - ); -}; - -const QueueList = (props, context) => { - const { act, data } = useBackend(context); - - const { textColors } = props; - - const queue = data.queue || []; - - if (!queue.length) { - return <>No parts in queue.; - } - - return queue.map((part, index) => ( - - - + )} + /> + + +
+ { + act('remove_mat', { ref: material.ref, amount }); + }} + /> +
+
+
+
+ + + +
+
+
+ ); +}; + +const Recipe = (props: { design: Design; available: MaterialMap }, context) => { + const { act, data } = useBackend(context); + const { design, available } = props; + + const canPrint = !Object.entries(design.cost).some( + ([material, amount]) => + !available[material] || amount > (available[material] ?? 0) + ); + + return ( +
+ +
+ +
+
+ + }> +
act('build', { designs: [design.id], now: true })}> +
+ +
+
{design.name}
+
+
+ + +
act('build', { designs: [design.id] })}> + +
+
+ + +
act('build', { designs: [design.id], now: true })}> + +
+
+
+ ); +}; + +const Queue = (props: { availableMaterials: MaterialMap }, context) => { + const { act, data } = useBackend(context); + const { availableMaterials } = props; + const { designs, processing } = data; + + const queue = data.queue || []; + + const materialCosts: MaterialMap = {}; + + for (const entry of queue) { + const design = designs[entry.designId]; + + if (!design) { + continue; + } + + for (const [materialName, materialCost] of Object.entries(design.cost)) { + materialCosts[materialName] = + (materialCosts[materialName] || 0) + materialCost; + } + } + + return ( +
+ + +
+ act('clear_queue')} + /> + {(!!processing && ( +
+
+ +
+ +
+
+
+
+ ); +}; + +const QueueList = (props: { availableMaterials: MaterialMap }, context) => { + const { act, data } = useBackend(context); + const { availableMaterials } = props; + + const queue = data.queue || []; + const designs = data.designs; + + if (!queue.length) { + return null; + } + + const accumulatedCosts: MaterialMap = {}; + + return ( + <> + {queue + .map((job, index) => ({ job, index, design: designs[job.designId] })) + .map((entry) => { + // TODO: Side effects in map are gross but at the same time I gotta + // accumulate these *costs* + let canPrint = true; + + for (const [material, amount] of entry.design + ? Object.entries(entry.design.cost) + : []) { + accumulatedCosts[material] = + (accumulatedCosts[material] || 0) + amount; + + if (accumulatedCosts[material] > availableMaterials[material]) { + canPrint = false; + } + } + + return { canPrint, ...entry }; + }) + .map((entry) => ( +
+ {!!entry.job.processing && ( +
+ )} + + }> +
+
+ +
+
+ {entry.design && entry.design.name} +
+
+
+ + {!entry.job.processing && ( +
{ + act('del_queue_part', { + index: entry.index + (queue[0]!.processing ? 0 : 1), + }); + }}> + + + +
+ )} +
+ ))} + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/CategoryTabs.tsx b/tgui/packages/tgui/interfaces/Fabrication/CategoryTabs.tsx deleted file mode 100644 index 7af7041d1b6..00000000000 --- a/tgui/packages/tgui/interfaces/Fabrication/CategoryTabs.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { sortBy } from 'common/collections'; -import { Stack, Section, Tabs } from '../../components'; - -/** - * A single category in a category tab list. - */ -export type Category = { - /** - * The human-readable name of this category. - */ - displayName?: string; - - /** - * The key used to identify this category. - */ - key: string; -}; - -/** - * The properties of a category tab list. - */ -export type CategoryTabsProps = { - /** - * The current key of the selected category. - */ - currentCategory: string; - - /** - * The categories in this list. - */ - categories: Category[]; - - /** - * Invoked with a category's key when a new category is selected. - */ - onCategorySelected?: (newCategory: string) => void; -}; - -/** - * A tab list used for category selection. - */ -export const CategoryTabs = (props: CategoryTabsProps, context) => { - const { - currentCategory, - categories, - onCategorySelected: setCategory, - } = props; - - return ( -
- - -
- - -
- - {sortBy((c: Category) => c.displayName || c.key)(categories).map( - (descriptor) => ( - { - currentCategory !== descriptor.key && - setCategory && - setCategory(descriptor.key); - }} - fluid - color="transparent"> - {descriptor.displayName || descriptor.key} - - ) - )} - -
-
- -
- ); -}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/DesignBrowser.tsx b/tgui/packages/tgui/interfaces/Fabrication/DesignBrowser.tsx new file mode 100644 index 00000000000..579c7c1a391 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Fabrication/DesignBrowser.tsx @@ -0,0 +1,500 @@ +import { sortBy } from 'common/collections'; +import { classes } from 'common/react'; +import { InfernoNode } from 'inferno'; +import { useSharedState } from '../../backend'; +import { Stack, Section, Icon, Dimmer } from '../../components'; +import { Design, MaterialMap } from './Types'; +import { SearchBar } from './SearchBar'; + +/** + * A function that does nothing. + */ +const NOOP = () => {}; + +export type DesignBrowserProps = { + /** + * All of the designs available to the browser. + */ + designs: T[]; + + /** + * A map of materials available for printing designs. + */ + availableMaterials?: MaterialMap; + + /** + * Invoked when the user attempts to print a design. + */ + onPrintDesign?: (design: T, amount: number) => void; + + /** + * If present, dims out the recipe list with a "building items" animation. + */ + busy?: boolean; + + /** + * Invoked for every recipe visible in the design browser. Returns a single + * row to be rendered to the output. + */ + buildRecipeElement: ( + /** + * The design being rendered. + */ + design: T, + + /** + * The materials available to print the design. + */ + availableMaterials: MaterialMap, + + /** + * A callback to print the design. + */ + onPrintDesign: (design: T, amount: number) => void + ) => InfernoNode; + + /** + * If provided, renders a node into each category in the output. + */ + categoryButtons?: (category: Category) => InfernoNode; +}; + +/** + * A meta-category that, when selected, renders all designs to the output. + */ +const ALL_CATEGORY = 'All Designs'; + +/** + * A meta-category that collects all designs without a single category. + */ +const UNCATEGORIZED = '/Uncategorized'; + +/** + * A single category in the category tree. + */ +type Category = { + /** + * The human-readable title of this category. + */ + title: string; + + /** + * The `id` of the `Section` rendering this category in the browser. + */ + anchorKey: string; + + /** + * The set of all designs appearing in this category its descendant + * categories, grouped by design ID. + */ + descendants: Record; + + /** + * All designs within this specific category. + */ + children: T[]; + + /** + * The subcategories within this one, keyed by their titles. + */ + subcategories: Record>; +}; + +/** + * Categories present in this object are not rendered to the final fabricator + * UI. + */ +const BLACKLISTED_CATEGORIES: Record = { + 'initial': true, + 'core': true, + 'hacked': true, +}; + +/** + * A universal design browser. Takes an arbitrary array of designs, and + * generates tabs, a search bar, and a list of designs. Each row of the + * resulting table is generated by the provided `buildRecipeElement` function. + */ +export const DesignBrowser = ( + props: DesignBrowserProps, + context +) => { + const { + designs, + availableMaterials, + onPrintDesign, + buildRecipeElement, + busy, + categoryButtons, + } = props; + + const [selectedCategory, setSelectedCategory] = useSharedState( + context, + 'selected_category', + ALL_CATEGORY + ); + + const [searchText, setSearchText] = useSharedState( + context, + 'search_text', + '' + ); + + const onCategorySelected = (newCategory: string) => { + if (newCategory === selectedCategory) { + return; + } + + setSelectedCategory(newCategory); + setSearchText(''); + }; + + // Build a root category from the designs. + const root: Category = { + title: ALL_CATEGORY, + anchorKey: ALL_CATEGORY.replace(/ /g, ''), + descendants: {}, + children: [], + subcategories: {}, + }; + + // Sort every design into a single category in the tree. + for (const design of designs) { + // For designs without any categories, assign them to the "uncategorized" + // category. + const categories = + design.categories.length === 0 ? [UNCATEGORIZED] : design.categories; + + for (const category of categories) { + // If the category is a blacklisted meta-category, skip it entirely. + if (BLACKLISTED_CATEGORIES[category]) { + continue; + } + + // Categories are slash-delimited. + const nodes = category.split('/'); + + // We always lead with a slash, so the first group is always empty. + nodes.shift(); + + // Find where this goes, and put it there. + let parent = root; + + while (nodes.length > 0) { + parent.descendants[design.id] = design; + + const node = nodes.shift()!; + + if (!parent.subcategories[node]) { + parent.subcategories[node] = { + title: node, + anchorKey: node.replace(/ /g, ''), + descendants: {}, + children: [], + subcategories: {}, + }; + } + + parent = parent.subcategories[node]!; + } + + // This is our leaf. + parent.descendants[design.id] = design; + parent.children.push(design); + } + } + + return ( + + {/* Left Column */} + +
+ + +
+ + +
+
+
onCategorySelected(ALL_CATEGORY)}> +
+
+ All Designs +
+
+ ({Object.entries(root.descendants).length}) +
+
+
+ + {sortBy((category: Category) => category.title)( + Object.values(root.subcategories) + ).map((category) => ( + + ))} +
+
+
+ +
+
+ + {/* Right Column */} + +
0 + ? `Results for "${searchText}"` + : selectedCategory === ALL_CATEGORY + ? 'All Designs' + : selectedCategory + } + fill> + + +
+ +
+
+ +
+ {searchText.length > 0 ? ( + sortBy((design: T) => design.name)( + Object.values(root.descendants) + ) + .filter((design) => + design.name + .toLowerCase() + .includes(searchText.toLowerCase()) + ) + .map((design) => + buildRecipeElement( + design, + availableMaterials || {}, + onPrintDesign || NOOP + ) + ) + ) : selectedCategory === ALL_CATEGORY ? ( + <> + {sortBy((design: T) => design.name)( + Object.values(root.descendants) + ).map((design) => + buildRecipeElement( + design, + availableMaterials || {}, + onPrintDesign || NOOP + ) + )} + + ) : ( + root.subcategories[selectedCategory] && ( + + ) + )} +
+
+ {!!busy && ( + + + {' Building items...'} + + )} +
+
+
+
+ ); +}; + +type DesignBrowserTabProps = { + category: Category; + depth?: number; + maxDepth?: number; + selectedCategory: string; + setSelectedCategory: (newCategory: string) => void; +}; + +const DesignBrowserTab = ( + props: DesignBrowserTabProps, + context +) => { + let { category, depth, maxDepth, selectedCategory, setSelectedCategory } = + props; + + depth ??= 0; + maxDepth ??= 3; + + return ( +
setSelectedCategory(category.title) + : /* For deeper categories, scroll the subcategory header into view. */ + () => { + document.getElementById(category.anchorKey)?.scrollIntoView(true); + } + }> +
+
{category.title}
+ {depth === 0 && ( + /** Show recipe counts on top-level categories. */ +
+ ({Object.entries(category.descendants).length}) +
+ )} +
+ {depth < maxDepth && + Object.entries(category.subcategories).length > 0 && + selectedCategory === category.title && ( +
+ {sortBy((category: Category) => category.title)( + Object.values(category.subcategories) + ).map((subcategory) => ( + + ))} +
+ )} +
+ ); +}; + +type CategoryViewProps = { + /** + * The category being rendered. + */ + category: Category; + + /** + * A map of materials available for printing designs. + */ + availableMaterials?: MaterialMap; + + /** + * The depth of this category in the view. + */ + depth?: number; + + /** + * Invoked when the user attempts to print a design. + */ + onPrintDesign?: (design: T, amount: number) => void; + + /** + * Invoked for every recipe visible in the design browser. Returns a single + * row to be rendered to the output. + */ + buildRecipeElement: ( + /** + * The design being rendered. + */ + design: T, + + /** + * The materials available to print the design. + */ + availableMaterials: MaterialMap, + + /** + * A callback to print the design. + */ + onPrintDesign: (design: T, amount: number) => void + ) => InfernoNode; + + /** + * If provided, renders a node into each category in the output. + */ + categoryButtons?: (category: Category) => InfernoNode; +}; + +const CategoryView = ( + props: CategoryViewProps, + context +) => { + let { + depth, + category, + availableMaterials, + onPrintDesign, + buildRecipeElement, + categoryButtons, + } = props; + + depth ??= 0; + + const body = ( + <> + {sortBy((design: T) => design.name)(category.children).map((design) => + buildRecipeElement( + design, + availableMaterials || {}, + onPrintDesign || NOOP + ) + )} + + {Object.keys(category.subcategories) + .sort() + .map((categoryName: string) => category.subcategories[categoryName]) + .map((category) => ( + + ))} + + ); + + if (depth === 0 || category.children.length === 0) { + return body; + } + + return ( +
+ {body} +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/DesignCategoryTabs.tsx b/tgui/packages/tgui/interfaces/Fabrication/DesignCategoryTabs.tsx deleted file mode 100644 index 8174532314d..00000000000 --- a/tgui/packages/tgui/interfaces/Fabrication/DesignCategoryTabs.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { CategoryTabs } from './CategoryTabs'; -import { Design } from './Types'; - -/** - * A dummy category that, when selected, renders ALL recipes to the UI. - */ -export const ALL_CATEGORY = '__ALL'; - -/** - * Categories present in this object are not rendered to the final fabricator - * UI. - */ -const BLACKLISTED_CATEGORIES: Record = { - 'initial': true, - 'core': true, - 'hacked': true, -}; - -export type DesignCategoryTabsProps = { - /** - * The designs to generate categories from. - */ - designs: Design[]; - - /** - * The currently selected category. - */ - currentCategory: string; - - /** - * Invoked when the user selects a new category. - */ - onCategorySelected?: (newCategory: string) => void; -}; - -/** - * A list of tabs generated on the fly from a number of techfab designs. - */ -export const DesignCategoryTabs = (props: DesignCategoryTabsProps, context) => { - const { designs, currentCategory, onCategorySelected } = props; - - // Find the number of items in each unique category, and the sum total of all - // printable items. - const categoryCounts: Record = {}; - let totalRecipes = 0; - - for (const design of designs) { - totalRecipes += 1; - - for (const category of design.categories ?? []) { - categoryCounts[category] = (categoryCounts[category] ?? 0) + 1; - } - } - - // Strip blacklisted categories from the output. - for (const blacklistedCategory in BLACKLISTED_CATEGORIES) { - delete categoryCounts[blacklistedCategory]; - } - - const categories = Object.entries(categoryCounts).map(([name, count]) => ({ - key: name, - displayName: `${name} (${count})`, - })); - - categories.unshift({ - key: ALL_CATEGORY, - displayName: `All Designs (${totalRecipes})`, - }); - - return ( - - ); -}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/DesignCostList.tsx b/tgui/packages/tgui/interfaces/Fabrication/DesignCostList.tsx deleted file mode 100644 index edd51fe7d38..00000000000 --- a/tgui/packages/tgui/interfaces/Fabrication/DesignCostList.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { Design, MaterialMap } from './Types'; -import { Stack } from '../../components'; -import { MaterialAmount, MATERIAL_KEYS, MaterialFormatting } from '../common/Materials'; - -export type DesignCostListProps = { - /** - * The design being printed. - */ - design: Design; - - /** - * The amount of times to print. - */ - amount: number; - - /** - * The materials available to complete the job. - */ - available: MaterialMap; -}; - -/** - * A horizontal sequence of material costs, indicating the effect of queueing - * a print job. Orange labels indicate that the job can only be completed once, - * and red labels indicate the job can't be completed at all. - */ -export const DesignCostList = (props: DesignCostListProps, context) => { - const { design, amount, available } = props; - - return ( - - {Object.entries(design.cost).map(([material, cost]) => ( - - available[material] - ? 'bad' - : cost * amount * 2 > available[material] - ? 'average' - : 'normal' - } - /> - - ))} - - ); -}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/MineralAccessBar.tsx b/tgui/packages/tgui/interfaces/Fabrication/MaterialAccessBar.tsx similarity index 75% rename from tgui/packages/tgui/interfaces/Fabrication/MineralAccessBar.tsx rename to tgui/packages/tgui/interfaces/Fabrication/MaterialAccessBar.tsx index c21acc1b6f8..578feadb8e2 100644 --- a/tgui/packages/tgui/interfaces/Fabrication/MineralAccessBar.tsx +++ b/tgui/packages/tgui/interfaces/Fabrication/MaterialAccessBar.tsx @@ -1,27 +1,28 @@ import { sortBy } from 'common/collections'; +import { classes } from 'common/react'; import { useLocalState } from '../../backend'; import { Flex, Button, Stack, AnimatedNumber } from '../../components'; import { formatSiUnit } from '../../format'; -import { Material, MaterialIcon } from '../common/Materials'; -import { MaterialName } from './Types'; +import { MaterialIcon } from './MaterialIcon'; +import { Material } from './Types'; // by popular demand of discord people (who are always right and never wrong) // this is completely made up -const MINERAL_RARITY: Record = { - 'iron': 1, +const MATERIAL_RARITY: Record = { 'glass': 0, + 'iron': 1, + 'plastic': 2, + 'titanium': 3, + 'plasma': 4, 'silver': 5, 'gold': 6, - 'diamond': 8, - 'plasma': 4, 'uranium': 7, - 'bananium': 10, - 'titanium': 3, + 'diamond': 8, 'bluespace crystal': 9, - 'plastic': 2, + 'bananium': 10, }; -export type MineralAccessBarProps = { +export type MaterialAccessBarProps = { /** * All materials currently available to the user. */ @@ -43,15 +44,15 @@ const LABEL_FORMAT = (value: number) => formatSiUnit(value, 0); * the ore silo. Has pop-out docks for each material type for ejecting up to * fifty sheets. */ -export const MineralAccessBar = (props: MineralAccessBarProps, context) => { +export const MaterialAccessBar = (props: MaterialAccessBarProps, context) => { const { availableMaterials, onEjectRequested } = props; return ( - {sortBy((m: Material) => MINERAL_RARITY[m.name])(availableMaterials).map( + {sortBy((m: Material) => MATERIAL_RARITY[m.name])(availableMaterials).map( (material) => ( - - + onEjectRequested && onEjectRequested(material, quantity) @@ -64,12 +65,12 @@ export const MineralAccessBar = (props: MineralAccessBarProps, context) => { ); }; -type MineralCounterProps = { +type MaterialCounterProps = { material: Material; onEjectRequested: (quantity: number) => void; }; -const MineralCounter = (props: MineralCounterProps, context) => { +const MaterialCounter = (props: MaterialCounterProps, context) => { const { material, onEjectRequested } = props; const [hovering, setHovering] = useLocalState( @@ -78,18 +79,28 @@ const MineralCounter = (props: MineralCounterProps, context) => { false ); + const canEject = material.amount > 2_000; + return (
setHovering(true)} onMouseLeave={() => setHovering(false)} - className={`MaterialDock ${hovering ? 'MaterialDock--active' : ''}`}> + className={classes([ + 'MaterialDock', + hovering && 'MaterialDock--active', + !canEject && 'MaterialDock--disabled', + ])}> onEjectRequested(1)}> + onClick={() => onEjectRequested(1)} + className="MaterialDock__Label"> - + @@ -144,9 +155,10 @@ const EjectButton = (props: EjectButtonProps, context) => { diff --git a/tgui/packages/tgui/interfaces/Fabrication/MaterialCostSequence.tsx b/tgui/packages/tgui/interfaces/Fabrication/MaterialCostSequence.tsx new file mode 100644 index 00000000000..80b9859fc4f --- /dev/null +++ b/tgui/packages/tgui/interfaces/Fabrication/MaterialCostSequence.tsx @@ -0,0 +1,98 @@ +import { Flex } from '../../components'; +import { Design, MaterialMap } from './Types'; +import { MaterialIcon } from './MaterialIcon'; +import { formatSiUnit } from '../../format'; + +export type MaterialCostSequenceProps = { + /** + * A map of available materials. + */ + available?: MaterialMap; + + /** + * If provided, the materials to be consumed. By default, generated from + * `design`; otherwise, an empty list. + */ + costMap?: MaterialMap; + + /** + * A design to generate the cost map from. + */ + design?: Design; + + /** + * The amount of times the provided design will be printed. By default, one. + */ + amount?: number; + + /** + * The `align-items` flex property provided to the generated list. + */ + align?: string; + + /** + * The `justify-content` flex property provided to the generated list. + */ + justify?: string; +}; + +/** + * A horizontal list of material costs, with labels. + * + * For a given material set that can only be printed once, the label for + * offending materials is orange. + * + * For a given material set that can't be printed at all, the label for + * offending materials is red. + * + * Otherwise, the labels are white. + */ +export const MaterialCostSequence = ( + props: MaterialCostSequenceProps, + context +) => { + const { design, amount, available, align, justify } = props; + let { costMap } = props; + + if (!costMap && !design) { + return null; + } + + costMap ??= {}; + + if (design) { + for (const [name, value] of Object.entries(design.cost)) { + costMap[name] = (costMap[name] || 0) + value; + } + } + + return ( + + {Object.entries(costMap).map(([material, quantity]) => ( + + + + + + + {formatSiUnit((amount || 1) * quantity, 0)} + + + + ))} + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/MaterialIcon.tsx b/tgui/packages/tgui/interfaces/Fabrication/MaterialIcon.tsx new file mode 100644 index 00000000000..55d9321424f --- /dev/null +++ b/tgui/packages/tgui/interfaces/Fabrication/MaterialIcon.tsx @@ -0,0 +1,95 @@ +import { classes } from 'common/react'; +import { Icon } from '../../components'; + +const MATERIAL_ICONS: Record = { + 'iron': [ + [0, 'sheet-metal'], + [17, 'sheet-metal_2'], + [34, 'sheet-metal_3'], + ], + 'glass': [ + [0, 'sheet-glass'], + [17, 'sheet-glass_2'], + [34, 'sheet-glass_3'], + ], + 'silver': [ + [0, 'sheet-silver'], + [17, 'sheet-silver_2'], + [34, 'sheet-silver_3'], + ], + 'gold': [ + [0, 'sheet-gold'], + [17, 'sheet-gold_2'], + [34, 'sheet-gold_3'], + ], + 'diamond': [[0, 'sheet-diamond']], + 'plasma': [ + [0, 'sheet-plasma'], + [17, 'sheet-plasma_2'], + [34, 'sheet-plasma_3'], + ], + 'uranium': [[0, 'sheet-uranium']], + 'bananium': [[0, 'sheet-bananium']], + 'titanium': [ + [0, 'sheet-titanium'], + [17, 'sheet-titanium_2'], + [34, 'sheet-titanium_3'], + ], + 'bluespace crystal': [[0, 'bluespace_crystal']], + 'plastic': [ + [0, 'sheet-plastic'], + [17, 'sheet-plastic_2'], + [34, 'sheet-plastic_3'], + ], +}; + +export type MaterialIconProps = { + /** + * The name of the material. + */ + materialName: string; + + /** + * The amount of material. One sheet is 2,000 units. By default, the icon + * attempts to render a full stack (200,000 units). + */ + amount?: number; +}; + +/** + * A 32x32 material icon. Animates between different stack sizes of the given + * material. + */ +export const MaterialIcon = (props: MaterialIconProps) => { + const { materialName, amount } = props; + const icons = MATERIAL_ICONS[materialName]; + + if (!icons) { + return ; + } + + let activeIdx = 0; + + while ( + icons[activeIdx + 1] && + icons[activeIdx + 1][0] <= (amount ?? 200_000) / 2_000 + ) { + activeIdx += 1; + } + + return ( +
+ {icons.map(([_, iconState], idx) => ( +
+ ))} +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Fabrication/SearchBar.tsx b/tgui/packages/tgui/interfaces/Fabrication/SearchBar.tsx index c0a2b1558e1..9a2c8889e27 100644 --- a/tgui/packages/tgui/interfaces/Fabrication/SearchBar.tsx +++ b/tgui/packages/tgui/interfaces/Fabrication/SearchBar.tsx @@ -1,3 +1,4 @@ +import { Component } from 'inferno'; import { Stack, Input, Icon } from '../../components'; /** @@ -20,25 +21,34 @@ export type SearchBarProps = { onSearchTextChanged: (newSearchText: string) => void; }; -/** - * A simple, stylized search bar. - */ -export const SearchBar = (props: SearchBarProps, context) => { - const { searchText, onSearchTextChanged, hint } = props; +export class SearchBar extends Component { + timeout?: NodeJS.Timeout; - return ( - - - - - - onSearchTextChanged(v)} - value={searchText} - /> - - - ); -}; + onInput(value: string) { + if (this.timeout) { + clearTimeout(this.timeout); + } + + this.timeout = setTimeout(() => this.props.onSearchTextChanged(value), 200); + } + + render() { + const { searchText, hint } = this.props; + + return ( + + + + + + this.onInput(v)} + value={searchText} + /> + + + ); + } +} diff --git a/tgui/packages/tgui/interfaces/Fabrication/Types.ts b/tgui/packages/tgui/interfaces/Fabrication/Types.ts index 21fed80ccc5..c3c44658f59 100644 --- a/tgui/packages/tgui/interfaces/Fabrication/Types.ts +++ b/tgui/packages/tgui/interfaces/Fabrication/Types.ts @@ -1,14 +1,45 @@ -import { Material, MATERIAL_KEYS } from '../common/Materials'; - -/** - * A named material. - */ -export type MaterialName = keyof typeof MATERIAL_KEYS; +import { BooleanLike } from 'common/react'; /** * A map of keyed materials to a quantity. */ -export type MaterialMap = Partial>; +export type MaterialMap = Record; + +/** + * A single, uniquely identifiable material. + */ +export type Material = { + /** + * The human-readable name of the material. + */ + name: string; + + /** + * An internal reference to the material that the server can use to uniquely + * identify the material. + */ + ref: string; + + /** + * The amount of material; 2,000 units is one sheet. + */ + amount: number; + + /** + * The number of sheets. + */ + sheets: number; + + /** + * Whether the material can be removed. + */ + removable: BooleanLike; + + /** + * The color of the material. + */ + color: string; +}; /** * A single design that the fabricator can print. @@ -36,9 +67,22 @@ export type Design = { id: string; /** - * The categories the design should be present in. + * The categories the design should be present in. Subcategories are + * slash-delimited, and categories always start with a slash. */ - categories?: string[]; + categories: string[]; + + /** + * The icon used to represent this design, generated in + * /datum/asset/spritesheet/research_designs. **The image within may not be + * 32x32.** + */ + icon: string; + + /** + * The amount of time, in seconds, that this design takes to print. + */ + constructionTime: number; }; /** @@ -53,13 +97,13 @@ export type FabricatorData = { /** * The name of the fabricator, as displayed on the title bar. */ - fab_name: string; + fabName: string; /** * Whether mineral access is disabled from the ore silo (contact the * quartermaster). */ - on_hold: boolean; + onHold: BooleanLike; /** * The set of designs that this fabricator can print, indexed by their ID. @@ -69,12 +113,39 @@ export type FabricatorData = { /** * Whether the fabricator is currently printing an item. */ - busy: boolean; + busy: BooleanLike; /** - * If nonzero, the maximum quantity of material that the fabricator can hold. - * Typically present with local storage is enabled (e.g, disconnected from - * the ore silo). + * The maximum quantity of material that the fabricator can hold, or `-1` + * if the fabricator can hold infinitely many materials (such as the ore + * silo). */ materialMaximum: number; + + /** + * The fabricator's current queue. + */ + queue: { + /** + * The job ID for this queued job. This is always unique, and can be used + * as a `key`. + */ + jobId: number; + + /** + * The design ID being printed. Available in `super.designs`. + */ + designId: string; + + /** + * If `true`, this design is currently being fabricated, and `timeLeft` + * is actively decreasing. + */ + processing: BooleanLike; + + /** + * The time left in this design's fabrication, in deciseconds. + */ + timeLeft: number; + }[]; }; diff --git a/tgui/packages/tgui/interfaces/Fabricator.tsx b/tgui/packages/tgui/interfaces/Fabricator.tsx index 57fa9d57f08..acc7c84190e 100644 --- a/tgui/packages/tgui/interfaces/Fabricator.tsx +++ b/tgui/packages/tgui/interfaces/Fabricator.tsx @@ -1,37 +1,15 @@ -import { useBackend, useSharedState } from '../backend'; -import { Stack, Section, Button, Icon, Dimmer } from '../components'; +import { useBackend } from '../backend'; +import { Stack, Section, Icon, Dimmer, Box, Tooltip } from '../components'; import { Window } from '../layouts'; -import { Material, MaterialAmount, MaterialFormatting, MATERIAL_KEYS } from './common/Materials'; -import { sortBy } from 'common/collections'; -import { MineralAccessBar } from './Fabrication/MineralAccessBar'; -import { SearchBar } from './Fabrication/SearchBar'; -import { DesignCategoryTabs } from './Fabrication/DesignCategoryTabs'; +import { MaterialCostSequence } from './Fabrication/MaterialCostSequence'; +import { MaterialAccessBar } from './Fabrication/MaterialAccessBar'; import { FabricatorData, Design, MaterialMap } from './Fabrication/Types'; - -/** - * A dummy category that, when selected, renders ALL recipes to the UI. - */ -const ALL_CATEGORY = '__ALL'; +import { classes } from 'common/react'; +import { DesignBrowser } from './Fabrication/DesignBrowser'; export const Fabricator = (props, context) => { const { act, data } = useBackend(context); - const { fab_name, on_hold, designs, busy } = data; - - const [selectedCategory, setSelectedCategory] = useSharedState( - context, - 'selected_category', - ALL_CATEGORY - ); - const [searchText, setSearchText] = useSharedState( - context, - 'search_text', - '' - ); - - // Sort the designs by name. - const sortedDesigns = sortBy((design: Design) => design.name)( - Object.values(designs) - ); + const { fabName, onHold, designs, busy } = data; // Reduce the material count array to a map of actually available materials. const availableMaterials: MaterialMap = {}; @@ -41,89 +19,25 @@ export const Fabricator = (props, context) => { } return ( - + - - - { - setSelectedCategory(category); - setSearchText(''); - }} - designs={sortedDesigns} - /> - - -
- - -
- -
-
- -
- {sortedDesigns - .filter( - (design) => - selectedCategory === ALL_CATEGORY || - design.categories?.indexOf(selectedCategory) !== - -1 - ) - .filter((design) => - design.name - .toLowerCase() - .includes(searchText.toLowerCase()) - ) - .map((design) => ( - - ))} -
- {!!busy && ( - - - {' Building items...'} - - )} -
-
-
- {!!on_hold && ( - - Mineral access is on hold, please contact the quartermaster. - - )} -
-
+ } + />
- a.name)( - data.materials ?? [] - )} + act('remove_mat', { ref: material.ref, amount }) } @@ -131,42 +45,16 @@ export const Fabricator = (props, context) => {
+ {!!onHold && ( + + Mineral access is on hold, please contact the quartermaster. + + )}
); }; -type MaterialCostProps = { - design: Design; - amount: number; - available: MaterialMap; -}; - -const MaterialCost = (props: MaterialCostProps, context) => { - const { design, amount, available } = props; - - return ( - - {Object.entries(design.cost).map(([material, cost]) => ( - - available[material] - ? 'bad' - : cost * amount * 2 > available[material] - ? 'average' - : 'normal' - } - /> - - ))} - - ); -}; - type PrintButtonProps = { design: Design; quantity: number; @@ -183,17 +71,24 @@ const PrintButton = (props: PrintButtonProps, context) => { ); return ( - + + }> +
act('build', { ref: design.id, amount: quantity })}> + ×{quantity} +
+
); }; @@ -207,37 +102,43 @@ const Recipe = (props: { design: Design; available: MaterialMap }, context) => { ); return ( -
- - - - - - - - - - - + }> +
act('build', { ref: design.id, amount: 1 })}> +
+ +
+
{design.name}
+
+ + +
); }; diff --git a/tgui/packages/tgui/interfaces/common/Materials.tsx b/tgui/packages/tgui/interfaces/common/Materials.tsx deleted file mode 100644 index 96a2252b8e0..00000000000 --- a/tgui/packages/tgui/interfaces/common/Materials.tsx +++ /dev/null @@ -1,154 +0,0 @@ -import { BooleanLike } from 'common/react'; -import { Box, Button, NumberInput, Flex } from '../../components'; -import { classes } from 'common/react'; -import { formatMoney, formatSiUnit } from '../../format'; -import { useSharedState } from '../../backend'; -import { BoxProps } from '../../components/Box'; - -export const MATERIAL_KEYS = { - 'iron': 'sheet-metal_3', - 'glass': 'sheet-glass_3', - 'silver': 'sheet-silver_3', - 'gold': 'sheet-gold_3', - 'diamond': 'sheet-diamond', - 'plasma': 'sheet-plasma_3', - 'uranium': 'sheet-uranium', - 'bananium': 'sheet-bananium', - 'titanium': 'sheet-titanium_3', - 'bluespace crystal': 'polycrystal', - 'plastic': 'sheet-plastic_3', -} as const; - -export type Material = { - name: keyof typeof MATERIAL_KEYS; - ref: string; - amount: number; - sheets: number; - removable: BooleanLike; -}; - -type MaterialIconProps = BoxProps & { - material: keyof typeof MATERIAL_KEYS; -}; - -export const MaterialIcon = (props: MaterialIconProps) => { - const { material, ...rest } = props; - - return ( - - ); -}; - -const EjectMaterial = ( - props: { - material: Material; - onEject: (amount: number) => void; - }, - context -) => { - const { name, removable, sheets } = props.material; - const [removeMaterials, setRemoveMaterials] = useSharedState( - context, - 'remove_mats_' + name, - 1 - ); - if (removeMaterials > 1 && sheets < removeMaterials) { - setRemoveMaterials(sheets || 1); - } - return ( - <> - { - const newVal = parseInt(val, 10); - if (Number.isInteger(newVal)) { - setRemoveMaterials(newVal); - } - }} - /> -