diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index ccfa7f10221..80f5b4ace97 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -27,7 +27,7 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4 var/obj/machinery/autolathe/A = holder switch(index) if(AUTOLATHE_HACK_WIRE) - A.hacked = !mended + A.adjust_hacked(!mended) if(AUTOLATHE_SHOCK_WIRE) A.shocked = !mended if(AUTOLATHE_DISABLE_WIRE) @@ -39,10 +39,10 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4 var/obj/machinery/autolathe/A = holder switch(index) if(AUTOLATHE_HACK_WIRE) - A.hacked = !A.hacked + A.adjust_hacked(!A.hacked) spawn(50) if(A && !IsIndexCut(index)) - A.hacked = 0 + A.adjust_hacked(0) Interact(usr) if(AUTOLATHE_SHOCK_WIRE) A.shocked = !A.shocked diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index ca428f7c6c2..b94220d792b 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -1,74 +1,3 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -var/global/list/autolathe_recipes = list( \ - /* screwdriver removed*/ \ - new /obj/item/weapon/reagent_containers/glass/bucket(), \ - new /obj/item/weapon/crowbar(), \ - new /obj/item/device/flashlight(), \ - new /obj/item/weapon/extinguisher(), \ - new /obj/item/device/multitool(), \ - new /obj/item/device/analyzer(), \ - new /obj/item/device/t_scanner(), \ - new /obj/item/weapon/weldingtool(), \ - new /obj/item/weapon/screwdriver(), \ - new /obj/item/weapon/wirecutters(), \ - new /obj/item/weapon/wrench(), \ - new /obj/item/clothing/head/welding(), \ - new /obj/item/weapon/stock_parts/console_screen(), \ - new /obj/item/weapon/airlock_electronics(), \ - new /obj/item/weapon/airalarm_electronics(), \ - new /obj/item/weapon/firealarm_electronics(), \ - new /obj/item/device/pipe_painter(), \ - new /obj/item/stack/sheet/metal(), \ - new /obj/item/stack/sheet/glass(), \ - new /obj/item/stack/sheet/rglass(), \ - new /obj/item/stack/rods(), \ - new /obj/item/weapon/rcd_ammo(), \ - new /obj/item/weapon/kitchenknife(), \ - new /obj/item/weapon/scalpel(), \ - new /obj/item/weapon/circular_saw(), \ - new /obj/item/weapon/surgicaldrill(),\ - new /obj/item/weapon/retractor(),\ - new /obj/item/weapon/cautery(),\ - new /obj/item/weapon/hemostat(),\ - new /obj/item/weapon/reagent_containers/glass/beaker(), \ - new /obj/item/weapon/reagent_containers/glass/beaker/large(), \ - new /obj/item/ammo_casing/shotgun/beanbag(), \ - new /obj/item/ammo_box/c38(), \ - new /obj/item/device/taperecorder/empty(), \ - new /obj/item/device/tape(), \ - new /obj/item/device/assembly/igniter(), \ - new /obj/item/device/assembly/signaler(), \ - new /obj/item/device/radio/headset(), \ - new /obj/item/device/radio/off(), \ - new /obj/item/device/assembly/infra(), \ - new /obj/item/device/assembly/timer(), \ - new /obj/item/device/assembly/voice(), \ - new /obj/item/weapon/light/tube(), \ - new /obj/item/weapon/light/bulb(), \ - new /obj/item/weapon/camera_assembly(), \ - new /obj/item/newscaster_frame(), \ - new /obj/item/weapon/reagent_containers/syringe(), \ - new /obj/item/device/assembly/prox_sensor(), \ - ) - -var/global/list/autolathe_recipes_hidden = list( \ - new /obj/item/weapon/flamethrower/full(), \ - new /obj/item/weapon/rcd(), \ - new /obj/item/device/electropack(), \ - new /obj/item/weapon/weldingtool/largetank(), \ - new /obj/item/weapon/restraints/handcuffs(), \ - new /obj/item/ammo_box/a357(), \ - new /obj/item/ammo_box/c10mm(), \ - new /obj/item/ammo_box/c45(), \ - new /obj/item/ammo_box/c9mm(), \ - new /obj/item/ammo_casing/shotgun(), \ - new /obj/item/ammo_casing/shotgun/buckshot(), \ - new /obj/item/ammo_casing/shotgun/dart(), \ - new /obj/item/ammo_casing/shotgun/incendiary(), \ - /* new /obj/item/weapon/shield/riot(), */ \ - ) - /obj/machinery/autolathe name = "autolathe" desc = "It produces items using metal and glass." @@ -98,6 +27,21 @@ var/global/list/autolathe_recipes_hidden = list( \ var/prod_coeff var/datum/wires/autolathe/wires = null + var/datum/design/being_built + var/datum/research/files + var/selected_category + var/screen = 1 + + var/list/categories = list( + "Tools", + "Electronics", + "Construction", + "T-Comm", + "Security", + "Medical", + "Misc" + ) + /obj/machinery/autolathe/New() ..() component_parts = list() @@ -110,13 +54,30 @@ var/global/list/autolathe_recipes_hidden = list( \ RefreshParts() wires = new(src) - src.L = autolathe_recipes - src.LL = autolathe_recipes_hidden + files = new /datum/research/autolathe(src) /obj/machinery/autolathe/interact(mob/user) + if(!is_operational()) + return + if(shocked && !(stat & NOPOWER)) shock(user,50) - regular_win(user) + + var/dat + + if(panel_open) + dat = wires.GetInteractWindow() + + else + if(screen == 1) + dat = main_win(user) + else + dat += category_win(user,selected_category) + + var/datum/browser/popup = new(user, "autolathe", name, 400, 500) + popup.set_content(dat) + popup.open() + return /obj/machinery/autolathe/attackby(obj/item/O, mob/user) @@ -198,73 +159,68 @@ var/global/list/autolathe_recipes_hidden = list( \ if(..()) return if (!busy) + if(href_list["menu"]) + screen = text2num(href_list["menu"]) + + if(href_list["category"]) + selected_category = href_list["category"] + if(href_list["make"]) - var/coeff = 2 ** prod_coeff + var/turf/T = get_step(src.loc, get_dir(src,usr)) - // critical exploit fix start -walter0o - var/obj/item/template = null - var/attempting_to_build = locate(href_list["make"]) - - if(!attempting_to_build) + ///////////////// + //href protection + being_built = files.FindDesignByID(href_list["make"]) //check if it's a valid design + if(!being_built) return - if(locate(attempting_to_build, src.L) || locate(attempting_to_build, src.LL)) // see if the requested object is in one of the construction lists, if so, it is legit -walter0o - template = attempting_to_build - - else // somebody is trying to exploit, alert admins -walter0o - - var/turf/LOC = get_turf(usr) - message_admins("[key_name_admin(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] ! ([LOC ? "JMP" : "null"])", 0) - log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] !") - return - - // now check for legit multiplier, also only stacks should pass with one to prevent raw-materials-manipulation -walter0o - + //multiplier checks : only stacks can have one and its value is 1, 10 ,25 or max_multiplier var/multiplier = text2num(href_list["multiplier"]) + var/max_multiplier = min(50, being_built.materials["$metal"] ?round(m_amount/being_built.materials["$metal"]):INFINITY,being_built.materials["$glass"]?round(g_amount/being_built.materials["$glass"]):INFINITY) + var/is_stack = ispath(being_built.build_path, /obj/item/stack) - if (!multiplier) multiplier = 1 - var/max_multiplier = 1 - - if(istype(template, /obj/item/stack)) // stacks are the only items which can have a multiplier higher than 1 -walter0o - var/obj/item/stack/S = template - max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY) // pasta from regular_win() to make sure the numbers match -walter0o - - if( (multiplier > max_multiplier) || (multiplier <= 0) ) // somebody is trying to exploit, alert admins-walter0o - - var/turf/LOC = get_turf(usr) - message_admins("[key_name_admin(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] ! ([LOC ? "JMP" : "null"])" , 0) - log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] !") + if(!is_stack && (multiplier > 1)) return + if (!(multiplier in list(1,10,25,max_multiplier))) //"enough materials ?" is checked further down + return + ///////////////// - var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5) - if(src.m_amount >= template.m_amt*multiplier/coeff && src.g_amount >= template.g_amt*multiplier/coeff) + var/coeff = (is_stack ? 1 : 2 ** prod_coeff) //stacks are unaffected by production coefficient + var/metal_cost = being_built.materials["$metal"] + var/glass_cost = being_built.materials["$glass"] + + var/power = max(2000, (metal_cost+glass_cost)*multiplier/5) + + if((m_amount >= metal_cost*multiplier/coeff) && (g_amount >= glass_cost*multiplier/coeff)) busy = 1 use_power(power) icon_state = "autolathe" flick("autolathe_n",src) spawn(32/coeff) use_power(power) - if(istype(template, /obj/item/stack)) - src.m_amount -= template.m_amt*multiplier - src.g_amount -= template.g_amt*multiplier - var/obj/item/new_item = new template.type(T) - var/obj/item/stack/S = new_item + if(is_stack) + m_amount -= metal_cost*multiplier + g_amount -= glass_cost*multiplier + var/obj/item/stack/S = new being_built.build_path(T) S.amount = multiplier else - src.m_amount -= template.m_amt/coeff - src.g_amount -= template.g_amt/coeff - var/obj/item/new_item = new template.type(T) + m_amount -= metal_cost/coeff + g_amount -= glass_cost/coeff + var/obj/item/new_item = new being_built.build_path(T) new_item.m_amt /= coeff new_item.g_amt /= coeff - if(src.m_amount < 0) - src.m_amount = 0 - if(src.g_amount < 0) - src.g_amount = 0 + if(m_amount < 0) + m_amount = 0 + if(g_amount < 0) + g_amount = 0 busy = 0 + src.updateUsrDialog() else usr << "The autolathe is busy. Please wait for completion of previous operation." + src.updateUsrDialog() + return /obj/machinery/autolathe/RefreshParts() @@ -278,45 +234,71 @@ var/global/list/autolathe_recipes_hidden = list( \ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) prod_coeff += M.rating - 1 -/obj/machinery/autolathe/proc/regular_win(mob/user) +/obj/machinery/autolathe/proc/main_win(mob/user) + var/dat = "

Autolathe Menu:


" + dat += "Metal amount: [src.m_amount] / [max_m_amount] cm3
" + dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3
" + + var/line_length = 1 + dat += "" + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
[C]
" + return dat + +/obj/machinery/autolathe/proc/category_win(mob/user,var/selected_category) + var/dat = "Return to category screen" + dat += "

Browsing [selected_category]:


" + dat += "Metal amount: [src.m_amount] / [max_m_amount] cm3
" + dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3
" + + for(var/datum/design/D in files.known_designs) + if(!(selected_category in D.category)) + continue + + if(disabled || !can_build(D)) + dat += "[D.name]" + else + dat += "[D.name]" + + if(ispath(D.build_path, /obj/item/stack)) + var/max_multiplier = min(50, D.materials["$metal"] ?round(m_amount/D.materials["$metal"]):INFINITY,D.materials["$glass"]?round(g_amount/D.materials["$glass"]):INFINITY) + if (max_multiplier>10 && !disabled) + dat += " x10" + if (max_multiplier>25 && !disabled) + dat += " x25" + if(max_multiplier > 0 && !disabled) + dat += " x[max_multiplier]" + + dat += "[get_design_cost(D)]
" + + dat += "
" + return dat + +/obj/machinery/autolathe/proc/can_build(var/datum/design/D) + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff) + + if(D.materials["$metal"] && (m_amount < (D.materials["$metal"] / coeff))) + return 0 + if(D.materials["$glass"] && (g_amount < (D.materials["$glass"] / coeff))) + return 0 + return 1 + +/obj/machinery/autolathe/proc/get_design_cost(var/datum/design/D) + var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : 2 ** prod_coeff) var/dat - if(!panel_open) - if(stat) - return - var/coeff = 2 ** prod_coeff - dat = "
Metal amount: [src.m_amount] / [max_m_amount] cm3
" - dat += "Glass amount: [src.g_amount] / [max_g_amount] cm3
" - var/list/objs = list() - objs += src.L - if(src.hacked) - objs += src.LL - for(var/obj/item/t in objs) - if(disabled || m_amount[t]", "The ", "") - else - dat += replacetext("[t]", "The ", "") - - if(istype(t, /obj/item/stack)) - var/obj/item/stack/S = t - var/max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY) - if (max_multiplier>10 && !disabled) - dat += " x[10]" - if (max_multiplier>25 && !disabled) - dat += " x[25]" - if (max_multiplier>1 && !disabled) - dat += " x[max_multiplier]" - dat += " [t.m_amt] m / [t.g_amt] g" - else - dat += " [t.m_amt/coeff] m / [t.g_amt/coeff] g" - dat += "
" - dat += "" - else - dat = wires.GetInteractWindow() - - var/datum/browser/popup = new(user, "autolathe", name, 400, 500) - popup.set_content(dat) - popup.open() - return + if(D.materials["$metal"]) + dat += "[D.materials["$metal"] / coeff] metal " + if(D.materials["$glass"]) + dat += "[D.materials["$glass"] / coeff] glass" + return dat /obj/machinery/autolathe/proc/shock(mob/user, prb) if(stat & (BROKEN|NOPOWER)) // unpowered, no shock @@ -330,3 +312,15 @@ var/global/list/autolathe_recipes_hidden = list( \ return 1 else return 0 + +/obj/machinery/autolathe/proc/adjust_hacked(var/hack) + hacked = hack + + if(hack) + for(var/datum/design/D in files.possible_designs) + if((D.build_type & 4) && ("hacked" in D.category)) + files.known_designs += D + else + for(var/datum/design/D in files.known_designs) + if("hacked" in D.category) + files.known_designs -= D diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index a19eaff4eb4..958ed65f986 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -17,6 +17,19 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). var/efficiency_coeff reagents = new() + var/list/categories = list( + "AI Modules", + "Computer Boards", + "Teleportation Machinery", + "Medical Machinery", + "Engineering Machinery", + "Exosuit Modules", + "Hydroponics Machinery", + "Subspace Telecomms", + "Research Machinery", + "Misc. Machinery" + ) + /obj/machinery/r_n_d/circuit_imprinter/New() ..() component_parts = list() diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index d91e8efb90a..9915b0eb92c 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -2,79 +2,89 @@ //////////AI Module Disks////////// /////////////////////////////////// -datum/design/safeguard_module - name = "AI Module(Safeguard)" + +/datum/design/safeguard_module + name = "Module Design (Safeguard)" desc = "Allows for the construction of a Safeguard AI Module." id = "safeguard_module" req_tech = list("programming" = 3, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/safeguard + category = list("AI Modules") -datum/design/onehuman_module - name = "AI Module (OneHuman)" +/datum/design/onehuman_module + name = "Module Design (OneHuman)" desc = "Allows for the construction of a OneHuman AI Module." id = "onehuman_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/zeroth/oneHuman + category = list("AI Modules") -datum/design/protectstation_module - name = "AI Module (ProtectStation)" +/datum/design/protectstation_module + name = "Module Design (ProtectStation)" desc = "Allows for the construction of a ProtectStation AI Module." id = "protectstation_module" req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/protectStation + category = list("AI Modules") -datum/design/quarantine_module - name = "AI Module (Quarantine)" +/datum/design/quarantine_module + name = "Module Design (Quarantine)" desc = "Allows for the construction of a Quarantine AI Module." id = "quarantine_module" req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/quarantine + category = list("AI Modules") -datum/design/oxygen_module - name = "AI Module (OxygenIsToxicToHumans)" + +/datum/design/oxygen_module + name = "Module Design (OxygenIsToxicToHumans)" desc = "Allows for the construction of a Safeguard AI Module." id = "oxygen_module" req_tech = list("programming" = 3, "biotech" = 2, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/oxygen + category = list("AI Modules") -datum/design/freeform_module - name = "AI Module (Freeform)" +/datum/design/freeform_module + name = "Module Design (Freeform)" desc = "Allows for the construction of a Freeform AI Module." id = "freeform_module" req_tech = list("programming" = 4, "materials" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/supplied/freeform + category = list("AI Modules") -datum/design/reset_module - name = "AI Module (Reset)" +/datum/design/reset_module + name = "Module Design (Reset)" desc = "Allows for the construction of a Reset AI Module." id = "reset_module" req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$gold" = 100) build_path = /obj/item/weapon/aiModule/reset + category = list("AI Modules") -datum/design/purge_module - name = "AI Module (Purge)" +/datum/design/purge_module + name = "Module Design (Purge)" desc = "Allows for the construction of a Purge AI Module." id = "purge_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/reset/purge + category = list("AI Modules") -datum/design/freeformcore_module +/datum/design/freeformcore_module name = "AI Core Module (Freeform)" desc = "Allows for the construction of a Freeform AI Core Module." id = "freeformcore_module" @@ -82,48 +92,54 @@ datum/design/freeformcore_module build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/freeformcore + category = list("AI Modules") -datum/design/asimov - name = "AI Core Module (Asimov)" +/datum/design/asimov + name = "Core Module Design (Asimov)" desc = "Allows for the construction of a Asimov AI Core Module." id = "asimov_module" req_tech = list("programming" = 3, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/asimov + category = list("AI Modules") -datum/design/paladin_module - name = "AI Core Module (P.A.L.A.D.I.N.)" +/datum/design/paladin_module + name = "Core Module Design (P.A.L.A.D.I.N.)" desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." id = "paladin_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/paladin + category = list("AI Modules") -datum/design/tyrant_module - name = "AI Core Module (T.Y.R.A.N.T.)" +/datum/design/tyrant_module + name = "Core Module Design (T.Y.R.A.N.T.)" desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." id = "tyrant_module" req_tech = list("programming" = 4, "syndicate" = 2, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/tyrant + category = list("AI Modules") -datum/design/corporate_module - name = "AI Core Module (Corporate)" +/datum/design/corporate_module + name = "Core Module Design (Corporate)" desc = "Allows for the construction of a Corporate AI Core Module." id = "corporate_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) build_path = /obj/item/weapon/aiModule/core/full/corp + category = list("AI Modules") -datum/design/custom_module - name = "AI Core Module (Custom)" +/datum/design/custom_module + name = "Core Module Design (Custom)" desc = "Allows for the construction of a Custom AI Core Module." id = "custom_module" req_tech = list("programming" = 4, "materials" = 6) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20, "$diamond" = 100) - build_path = /obj/item/weapon/aiModule/core/full/custom \ No newline at end of file + build_path = /obj/item/weapon/aiModule/core/full/custom + category = list("AI Modules") diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm new file mode 100644 index 00000000000..8eca25e1066 --- /dev/null +++ b/code/modules/research/designs/autolathe_designs.dm @@ -0,0 +1,492 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// + +/datum/design/bucket + name = "Bucket" + id = "bucket" + build_type = AUTOLATHE + materials = list("$metal" = 200) + build_path = /obj/item/weapon/reagent_containers/glass/bucket + category = list("initial","Tools") + +/datum/design/crowbar + name = "Pocket crowbar" + id = "crowbar" + build_type = AUTOLATHE + materials = list("$metal" = 50) + build_path = /obj/item/weapon/crowbar + category = list("initial","Tools") + +/datum/design/flashlight + name = "Flashlight" + id = "flashlight" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 20) + build_path = /obj/item/device/flashlight + category = list("initial","Tools") + +/datum/design/extinguisher + name = "Fire extinguisher" + id = "extinguisher" + build_type = AUTOLATHE + materials = list("$metal" = 90) + build_path = /obj/item/weapon/extinguisher + category = list("initial","Tools") + +/datum/design/multitool + name = "Multitool" + id = "multitool" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 20) + build_path = /obj/item/device/multitool + category = list("initial","Tools") + +/datum/design/analyzer + name = "Analyzer" + id = "analyzer" + build_type = AUTOLATHE + materials = list("$metal" = 30, "$glass" = 20) + build_path = /obj/item/device/analyzer + category = list("initial","Tools") + +/datum/design/tscanner + name = "T-ray scanner" + id = "tscanner" + build_type = AUTOLATHE + materials = list("$metal" = 150) + build_path = /obj/item/device/t_scanner + category = list("initial","Tools") + +/datum/design/weldingtool + name = "Welding tool" + id = "welding_tool" + build_type = AUTOLATHE + materials = list("$metal" = 70, "$glass" = 20) + build_path = /obj/item/weapon/weldingtool + category = list("initial","Tools") + +/datum/design/screwdriver + name = "Screwdriver" + id = "screwdriver" + build_type = AUTOLATHE + materials = list("$metal" = 75) + build_path = /obj/item/weapon/screwdriver + category = list("initial","Tools") + +/datum/design/wirecutters + name = "Wirecutters" + id = "wirecutters" + build_type = AUTOLATHE + materials = list("$metal" = 80) + build_path = /obj/item/weapon/wirecutters + category = list("initial","Tools") + +/datum/design/wrench + name = "Wrench" + id = "wrench" + build_type = AUTOLATHE + materials = list("$metal" = 150) + build_path = /obj/item/weapon/wrench + category = list("initial","Tools") + +/datum/design/welding_helmet + name = "Welding helmet" + id = "welding_helmet" + build_type = AUTOLATHE + materials = list("$metal" = 1750, "$glass" = 400) + build_path = /obj/item/clothing/head/welding + category = list("initial","Tools") + +/datum/design/console_screen + name = "Console screen" + id = "console_screen" + build_type = AUTOLATHE + materials = list("$glass" = 200) + build_path = /obj/item/weapon/stock_parts/console_screen + category = list("initial", "Electronics") + +/datum/design/airlock_board + name = "Airlock electronics" + id = "airlock_board" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/weapon/airlock_electronics + category = list("initial", "Electronics") + +/datum/design/airalarm_electronics + name = "Air alarm electronics" + id = "airalarm_electronics" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/weapon/airalarm_electronics + category = list("initial", "Electronics") + +/datum/design/firealarm_electronics + name = "Fire alarm electronics" + id = "firealarm_electronics" + build_type = AUTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = /obj/item/weapon/firealarm_electronics + category = list("initial", "Electronics") + +/datum/design/pipe_painter + name = "Pipe painter" + id = "pipe_painter" + build_type = AUTOLATHE + materials = list("$metal" = 5000, "$glass" = 2000) + build_path = /obj/item/device/pipe_painter + category = list("initial", "Misc") + +/datum/design/metal + name = "Metal" + id = "metal" + build_type = AUTOLATHE + materials = list("$metal" = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/metal + category = list("initial","Construction") + +/datum/design/glass + name = "Glass" + id = "glass" + build_type = AUTOLATHE + materials = list("$glass" = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/glass + category = list("initial","Construction") + +/datum/design/rglass + name = "Reinforced glass" + id = "rglass" + build_type = AUTOLATHE + materials = list("$metal" = 1000, "$glass" = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/rglass + category = list("initial","Construction") + +/datum/design/rods + name = "Metal rod" + id = "rods" + build_type = AUTOLATHE + materials = list("$metal" = 1000) + build_path = /obj/item/stack/rods + category = list("initial","Construction") + +/datum/design/rcd_ammo + name = "Compressed matter cardridge" + id = "rcd_ammo" + build_type = AUTOLATHE + materials = list("$metal" = 16000, "$glass"=8000) + build_path = /obj/item/weapon/rcd_ammo + category = list("initial","Construction") + +/datum/design/kitchen_knife + name = "Kitchen knife" + id = "kitchen_knife" + build_type = AUTOLATHE + materials = list("$metal" = 12000) + build_path = /obj/item/weapon/kitchenknife + category = list("initial","Misc") + +/datum/design/scalpel + name = "Scalpel" + id = "scalpel" + build_type = AUTOLATHE + materials = list("$metal" = 4000, "$glass" = 1000) + build_path = /obj/item/weapon/scalpel + category = list("initial", "Medical") + +/datum/design/circular_saw + name = "Circular saw" + id = "circular_saw" + build_type = AUTOLATHE + materials = list("$metal" = 10000, "$glass" = 6000) + build_path = /obj/item/weapon/circular_saw + category = list("initial", "Medical") + +/datum/design/surgicaldrill + name = "Surgical drill" + id = "surgicaldrill" + build_type = AUTOLATHE + materials = list("$metal" = 10000, "$glass" = 6000) + build_path = /obj/item/weapon/surgicaldrill + category = list("initial", "Medical") + +/datum/design/retractor + name = "Retractor" + id = "retractor" + build_type = AUTOLATHE + materials = list("$metal" = 6000, "$glass" = 3000) + build_path = /obj/item/weapon/ + category = list("initial", "Medical") + +/datum/design/cautery + name = "Cautery" + id = "cautery" + build_type = AUTOLATHE + materials = list("$metal" = 2500, "$glass" = 750) + build_path = /obj/item/weapon/cautery + category = list("initial", "Medical") + +/datum/design/hemostat + name = "Hemostat" + id = "hemostat" + build_type = AUTOLATHE + materials = list("$metal" = 5000, "$glass" = 2500) + build_path = /obj/item/weapon/hemostat + category = list("initial", "Medical") + +/datum/design/beaker + name = "Beaker" + id = "beaker" + build_type = AUTOLATHE + materials = list("$glass" = 500) + build_path = /obj/item/weapon/reagent_containers/glass/beaker + category = list("initial", "Medical") + +/datum/design/large_beaker + name = "Large beaker" + id = "large_beaker" + build_type = AUTOLATHE + materials = list("$glass" = 2500) + build_path = /obj/item/weapon/reagent_containers/glass/beaker/large + category = list("initial", "Medical") + +/datum/design/beanbag_slug + name = "Beanbag slug" + id = "beanbag_slug" + build_type = AUTOLATHE + materials = list("$metal" = 250) + build_path = /obj/item/ammo_casing/shotgun/beanbag + category = list("initial", "Security") + +/datum/design/c38 + name = "Speed loader (.38)" + id = "c38" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c38 + category = list("initial", "Security") + +/datum/design/recorder + name = "Universal recorder" + id = "recorder" + build_type = AUTOLATHE + materials = list("$metal" = 60, "$glass" = 30) + build_path = /obj/item/device/taperecorder/empty + category = list("initial", "Misc") + +/datum/design/tape + name = "Tape" + id = "tape" + build_type = AUTOLATHE + materials = list("$metal" = 20, "$glass" = 5) + build_path = /obj/item/device/tape + category = list("initial", "Misc") + +/datum/design/igniter + name = "Igniter" + id = "igniter" + build_type = AUTOLATHE + materials = list("$metal" = 500, "$glass" = 50) + build_path = /obj/item/device/assembly/igniter + category = list("initial", "Misc") + +/datum/design/signaler + name = "Remote signaling device" + id = "signaler" + build_type = AUTOLATHE + materials = list("$metal" = 400, "$glass" = 120) + build_path = /obj/item/device/assembly/signaler + category = list("initial", "T-Comm") + +/datum/design/radio_headset + name = "Radio headset" + id = "radio_headset" + build_type = AUTOLATHE + materials = list("$metal" = 75) + build_path = /obj/item/device/radio/headset + category = list("initial", "T-Comm") + +/datum/design/bounced_radio + name = "Station bounced radio" + id = "bounced_radio" + build_type = AUTOLATHE + materials = list("$metal" = 75, "$glass" = 25) + build_path = /obj/item/device/radio/off + category = list("initial", "T-Comm") + +/datum/design/infrared_emitter + name = "Infrared emitter" + id = "infrared_emitter" + build_type = AUTOLATHE + materials = list("$metal" = 1000, "$glass" = 500) + build_path = /obj/item/device/assembly/infra + category = list("initial", "Misc") + +/datum/design/timer + name = "Timer" + id = "timer" + build_type = AUTOLATHE + materials = list("$metal" = 500, "$glass" = 50) + build_path = /obj/item/device/assembly/timer + category = list("initial", "Misc") + +/datum/design/voice_analyser + name = "Voice analyser" + id = "voice_analyser" + build_type = AUTOLATHE + materials = list("$metal" = 500, "$glass" = 50) + build_path = /obj/item/device/assembly/voice + category = list("initial", "Misc") + +/datum/design/light_tube + name = "Light tube" + id = "light_tube" + build_type = AUTOLATHE + materials = list("$metal" = 60, "$glass" = 100) + build_path = /obj/item/weapon/light/tube + category = list("initial", "Construction") + +/datum/design/light_bulb + name = "Light bulb" + id = "light_bulb" + build_type = AUTOLATHE + materials = list("$metal" = 60, "$glass" = 100) + build_path = /obj/item/weapon/light/bulb + category = list("initial", "Construction") + +/datum/design/camera_assembly + name = "Camera assembly" + id = "camera_assembly" + build_type = AUTOLATHE + materials = list("$metal" = 400, "$glass" = 250) + build_path = /obj/item/weapon/camera_assembly + category = list("initial", "Construction") + +/datum/design/newscaster_frame + name = "Newscaster frame" + id = "newscaster_frame" + build_type = AUTOLATHE + materials = list("$metal" = 14000, "$glass" = 8000) + build_path = /obj/item/newscaster_frame + category = list("initial", "Construction") + +/datum/design/syringe + name = "Syringe" + id = "syringe" + build_type = AUTOLATHE + materials = list("$metal" = 10, "$glass" = 20) + build_path = /obj/item/weapon/reagent_containers/syringe + category = list("initial", "Medical") + +/datum/design/prox_sensor + name = "Proximity sensor" + id = "prox_sensor" + build_type = AUTOLATHE + materials = list("$metal" = 800, "$glass" = 200) + build_path = /obj/item/device/assembly/prox_sensor + category = list("initial", "Misc") + +//hacked autolathe recipes +/datum/design/flamethrower + name = "Flamethrower" + id = "flamethrower" + build_type = AUTOLATHE + materials = list("$metal" = 500) + build_path = /obj/item/weapon/flamethrower/full + category = list("hacked", "Weapons and ammo") + +/datum/design/rcd + name = "Rapid construction device (RCD)" + id = "rcd" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/weapon/rcd + category = list("hacked", "Construction") + +/datum/design/electropack + name = "Electropack" + id = "electropack" + build_type = AUTOLATHE + materials = list("$metal" = 10000, "$glass" = 2500) + build_path = /obj/item/device/electropack + category = list("hacked", "Tools") + +/datum/design/large_welding_tool + name = "Industrial welding tool" + id = "large_welding_tool" + build_type = AUTOLATHE + materials = list("$metal" = 70, "$glass" = 60) + build_path = /obj/item/weapon/weldingtool/largetank + category = list("hacked", "Tools") + +/datum/design/handcuffs + name = "Handcuffs" + id = "handcuffs" + build_type = AUTOLATHE + materials = list("$metal" = 500) + build_path = /obj/item/weapon/restraints/handcuffs + category = list("hacked", "Security") + +/datum/design/shotgun_slug + name = "Shotgun slug" + id = "shotgun_slug" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun + category = list("hacked", "Security") + +/datum/design/buckshot_shell + name = "Buckshot shell" + id = "buckshot_shell" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun/buckshot + category = list("hacked", "Security") + +/datum/design/shotgun_dart + name = "Shotgun dart" + id = "shotgun_dart" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun/dart + category = list("hacked", "Security") + +/datum/design/incendiary_slug + name = "Incendiary slug" + id = "incendiary_slug" + build_type = AUTOLATHE + materials = list("$metal" = 4000) + build_path = /obj/item/ammo_casing/shotgun/incendiary + category = list("hacked", "Security") + +/datum/design/a357 + name = "Ammo box (.357)" + id = "a357" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/a357 + category = list("hacked", "Security") + +/datum/design/c10mm + name = "Ammo box (10mm)" + id = "c10mm" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c10mm + category = list("hacked", "Security") + +/datum/design/c45 + name = "Ammo box (.45)" + id = "c45" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c45 + category = list("hacked", "Security") + +/datum/design/c9mm + name = "Ammo box (9mm)" + id = "c9mm" + build_type = AUTOLATHE + materials = list("$metal" = 30000) + build_path = /obj/item/ammo_box/c9mm + category = list("hacked", "Security") diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 599e9700966..297a1eaa353 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -1,6 +1,6 @@ ///////////////////Computer Boards/////////////////////////////////// -datum/design/seccamera +/datum/design/seccamera name = "Computer Design (Security)" desc = "Allows for the construction of circuit boards used to build security camera computers." id = "seccamera" @@ -8,8 +8,9 @@ datum/design/seccamera build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/security + category = list("Computer Boards") -datum/design/aicore +/datum/design/aicore name = "AI Design (AI Core)" desc = "Allows for the construction of circuit boards used to build new AI cores." id = "aicore" @@ -17,8 +18,9 @@ datum/design/aicore build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aicore + category = list("Computer Boards") -datum/design/aiupload +/datum/design/aiupload name = "Computer Design (AI Upload)" desc = "Allows for the construction of circuit boards used to build an AI Upload Console." id = "aiupload" @@ -26,8 +28,9 @@ datum/design/aiupload build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aiupload + category = list("Computer Boards") -datum/design/borgupload +/datum/design/borgupload name = "Computer Design (Cyborg Upload)" desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." id = "borgupload" @@ -35,8 +38,9 @@ datum/design/borgupload build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/borgupload + category = list("Computer Boards") -datum/design/med_data +/datum/design/med_data name = "Computer Design (Medical Records)" desc = "Allows for the construction of circuit boards used to build a medical records console." id = "med_data" @@ -44,8 +48,9 @@ datum/design/med_data build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/med_data + category = list("Computer Boards") -datum/design/operating +/datum/design/operating name = "Computer Design (Operating Computer)" desc = "Allows for the construction of circuit boards used to build an operating computer console." id = "operating" @@ -53,8 +58,9 @@ datum/design/operating build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/operating + category = list("Computer Boards") -datum/design/pandemic +/datum/design/pandemic name = "Computer Design (PanD.E.M.I.C. 2200)" desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." id = "pandemic" @@ -62,8 +68,9 @@ datum/design/pandemic build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pandemic + category = list("Computer Boards") -datum/design/scan_console +/datum/design/scan_console name = "Computer Design (DNA Machine)" desc = "Allows for the construction of circuit boards used to build a new DNA scanning console." id = "scan_console" @@ -71,8 +78,9 @@ datum/design/scan_console build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/scan_consolenew + category = list("Computer Boards") -datum/design/comconsole +/datum/design/comconsole name = "Computer Design (Communications)" desc = "Allows for the construction of circuit boards used to build a communications console." id = "comconsole" @@ -80,8 +88,9 @@ datum/design/comconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/communications + category = list("Computer Boards") -datum/design/idcardconsole +/datum/design/idcardconsole name = "Computer Design (ID Console)" desc = "Allows for the construction of circuit boards used to build an ID computer." id = "idcardconsole" @@ -89,8 +98,9 @@ datum/design/idcardconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/card + category = list("Computer Boards") -datum/design/crewconsole +/datum/design/crewconsole name = "Computer Design (Crew monitoring computer)" desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer." id = "crewconsole" @@ -98,8 +108,9 @@ datum/design/crewconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/crew + category = list("Computer Boards") -datum/design/teleconsole +/datum/design/teleconsole name = "Computer Design (Teleporter Console)" desc = "Allows for the construction of circuit boards used to build a teleporter control console." id = "teleconsole" @@ -107,8 +118,9 @@ datum/design/teleconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/teleporter + category = list("Computer Boards") -datum/design/secdata +/datum/design/secdata name = "Computer Design (Security Records Console)" desc = "Allows for the construction of circuit boards used to build a security records console." id = "secdata" @@ -116,8 +128,9 @@ datum/design/secdata build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/secure_data + category = list("Computer Boards") -datum/design/atmosalerts +/datum/design/atmosalerts name = "Computer Design (Atmosphere Alert)" desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." id = "atmosalerts" @@ -125,8 +138,9 @@ datum/design/atmosalerts build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/atmos_alert + category = list("Computer Boards") -datum/design/air_management +/datum/design/air_management name = "Computer Design (Atmospheric Monitor)" desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." id = "air_management" @@ -134,8 +148,9 @@ datum/design/air_management build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/air_management + category = list("Computer Boards") -datum/design/robocontrol +/datum/design/robocontrol name = "Computer Design (Robotics Control Console)" desc = "Allows for the construction of circuit boards used to build a Robotics Control console." id = "robocontrol" @@ -143,8 +158,9 @@ datum/design/robocontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/robotics + category = list("Computer Boards") -datum/design/clonecontrol +/datum/design/clonecontrol name = "Computer Design (Cloning Machine Console)" desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." id = "clonecontrol" @@ -152,8 +168,9 @@ datum/design/clonecontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/cloning + category = list("Computer Boards") -datum/design/clonepod +/datum/design/clonepod name = "Machine Design (Clone Pod)" desc = "Allows for the construction of circuit boards used to build a Cloning Pod." id = "clonepod" @@ -161,8 +178,9 @@ datum/design/clonepod build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/clonepod + category = list("Computer Boards") -datum/design/clonescanner +/datum/design/clonescanner name = "Machine Design (Cloning Scanner)" desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." id = "clonescanner" @@ -170,8 +188,9 @@ datum/design/clonescanner build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/clonescanner + category = list("Computer Boards") -datum/design/arcadebattle +/datum/design/arcadebattle name = "Computer Design (Battle Arcade Machine)" desc = "Allows for the construction of circuit boards used to build a new arcade machine." id = "arcademachine" @@ -179,8 +198,9 @@ datum/design/arcadebattle build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/arcade/battle + category = list("Computer Boards") -datum/design/orion_trail +/datum/design/orion_trail name = "Computer Design (Orion Trail Arcade Machine)" desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine." id = "arcademachine" @@ -188,8 +208,9 @@ datum/design/orion_trail build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/arcade/orion_trail + category = list("Computer Boards") -datum/design/orion_trail +/datum/design/orion_trail name = "Computer Design (Slot Machine)" desc = "Allows for the construction of circuit boards used to build a new slot machine." id = "slotmachine" @@ -197,8 +218,9 @@ datum/design/orion_trail build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/slot_machine + category = list("Computer Boards") -datum/design/powermonitor +/datum/design/powermonitor name = "Computer Design (Power Monitor)" desc = "Allows for the construction of circuit boards used to build a new power monitor." id = "powermonitor" @@ -206,8 +228,9 @@ datum/design/powermonitor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/powermonitor + category = list("Computer Boards") -datum/design/solarcontrol +/datum/design/solarcontrol name = "Computer Design (Solar Control)" desc = "Allows for the construction of circuit boards used to build a solar control console." id = "solarcontrol" @@ -215,8 +238,9 @@ datum/design/solarcontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/solar_control + category = list("Computer Boards") -datum/design/prisonmanage +/datum/design/prisonmanage name = "Computer Design (Prisoner Management Console)" desc = "Allows for the construction of circuit boards used to build a prisoner management console." id = "prisonmanage" @@ -224,8 +248,9 @@ datum/design/prisonmanage build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/prisoner + category = list("Computer Boards") -datum/design/mechacontrol +/datum/design/mechacontrol name = "Computer Design (Exosuit Control Console)" desc = "Allows for the construction of circuit boards used to build an exosuit control console." id = "mechacontrol" @@ -233,8 +258,9 @@ datum/design/mechacontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha_control + category = list("Computer Boards") -datum/design/mechapower +/datum/design/mechapower name = "Computer Design (Mech Bay Power Control Console)" desc = "Allows for the construction of circuit boards used to build a mech bay power control console." id = "mechapower" @@ -242,8 +268,9 @@ datum/design/mechapower build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mech_bay_power_console + category = list("Computer Boards") -datum/design/rdconsole +/datum/design/rdconsole name = "Computer Design (R&D Console)" desc = "Allows for the construction of circuit boards used to build a new R&D console." id = "rdconsole" @@ -251,8 +278,9 @@ datum/design/rdconsole build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/rdconsole + category = list("Computer Boards") -datum/design/ordercomp +/datum/design/ordercomp name = "Computer Design (Supply ordering console)" desc = "Allows for the construction of circuit boards used to build a Supply ordering console." id = "ordercomp" @@ -260,8 +288,9 @@ datum/design/ordercomp build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/ordercomp + category = list("Computer Boards") -datum/design/supplycomp +/datum/design/supplycomp name = "Computer Design (Supply shuttle console)" desc = "Allows for the construction of circuit boards used to build a Supply shuttle console." id = "supplycomp" @@ -269,8 +298,9 @@ datum/design/supplycomp build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/supplycomp + category = list("Computer Boards") -datum/design/mining +/datum/design/mining name = "Computer Design (Outpost Status Display)" desc = "Allows for the construction of circuit boards used to build an outpost status display console." id = "mining" @@ -278,8 +308,9 @@ datum/design/mining build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mining + category = list("Computer Boards") -datum/design/comm_monitor +/datum/design/comm_monitor name = "Computer Design (Telecommunications Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." id = "comm_monitor" @@ -287,8 +318,9 @@ datum/design/comm_monitor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_monitor + category = list("Computer Boards") -datum/design/comm_server +/datum/design/comm_server name = "Computer Design (Telecommunications Server Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor." id = "comm_server" @@ -296,8 +328,9 @@ datum/design/comm_server build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_server + category = list("Computer Boards") -datum/design/message_monitor +/datum/design/message_monitor name = "Computer Design (Messaging Monitor Console)" desc = "Allows for the construction of circuit boards used to build a messaging monitor console." id = "message_monitor" @@ -305,8 +338,9 @@ datum/design/message_monitor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/message_monitor + category = list("Computer Boards") -datum/design/comm_traffic +/datum/design/comm_traffic name = "Computer Design (Telecommunications Traffic Control Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications traffic control console." id = "comm_traffic" @@ -314,8 +348,9 @@ datum/design/comm_traffic build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/comm_traffic + category = list("Computer Boards") -datum/design/telesci_console +/datum/design/telesci_console name = "Computer Design (Telepad Control Console Board)" desc = "Allows for the construction of circuit boards used to build a telescience console." id = "telesci_console" @@ -323,12 +358,14 @@ datum/design/telesci_console build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telesci_console + category = list("Computer Boards") -datum/design/aifixer +/datum/design/aifixer name = "Computer Design (AI Integrity Restorer)" desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." id = "aifixer" req_tech = list("programming" = 3, "biotech" = 2) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/aifixer \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/aifixer + category = list("Computer Boards") diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index bc0d01dd8fb..bcd39b203e3 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -2,7 +2,7 @@ //////////////MISC Boards/////////////// //////////////////////////////////////// -datum/design/smes +/datum/design/smes name = "Machine Design (SMES Board)" desc = "The circuit board for a SMES." id = "smes" @@ -10,8 +10,9 @@ datum/design/smes build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/smes + category = list ("Engineering Machinery") -datum/design/turbine_computer +/datum/design/turbine_computer name = "Computer Design (Power Turbine Console Board)" desc = "The circuit board for a power turbine console." id = "power_turbine_console" @@ -19,8 +20,9 @@ datum/design/turbine_computer build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/turbine_computer + category = list ("Engineering Machinery") -datum/design/power_compressor +/datum/design/power_compressor name = "Machine Design (Power Compressor Board)" desc = "The circuit board for a power compressor." id = "power_compressor" @@ -28,8 +30,9 @@ datum/design/power_compressor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/power_compressor + category = list ("Engineering Machinery") -datum/design/power_turbine +/datum/design/power_turbine name = "Machine Design (Power Turbine Board)" desc = "The circuit board for a power turbine." id = "power_turbine" @@ -37,53 +40,9 @@ datum/design/power_turbine build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/power_turbine + category = list ("Engineering Machinery") -datum/design/teleport_station - name = "Machine Design (Teleportation Station Board)" - desc = "The circuit board for a teleportation station." - id = "tele_station" - req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter_station - -datum/design/teleport_hub - name = "Machine Design (Teleportation Hub Board)" - desc = "The circuit board for a teleportation hub." - id = "tele_hub" - req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter_hub - -datum/design/telepad - name = "Machine Design (Telepad Board)" - desc = "The circuit board for a telescience telepad." - id = "telepad" - req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telesci_pad - -datum/design/sleeper - name = "Machine Design (Sleeper Board)" - desc = "The circuit board for a sleeper." - id = "sleeper" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/sleeper - -datum/design/cryotube - name = "Machine Design (Cryotube Board)" - desc = "The circuit board for a cryotube." - id = "cryotube" - req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cryo_tube - -datum/design/thermomachine +/datum/design/thermomachine name = "Machine Design (Freezer/Heater Board)" desc = "The circuit board for a freezer/heater." id = "thermomachine" @@ -91,35 +50,59 @@ datum/design/thermomachine build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/thermomachine + category = list ("Engineering Machinery") -datum/design/biogenerator - name = "Machine Design (Biogenerator Board)" - desc = "The circuit board for a biogenerator." - id = "biogenerator" - req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3) +/datum/design/teleport_station + name = "Machine Design (Teleportation Station Board)" + desc = "The circuit board for a teleportation station." + id = "tele_station" + req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/biogenerator + build_path = /obj/item/weapon/circuitboard/teleporter_station + category = list ("Teleportation Machinery") -datum/design/hydroponics - name = "Machine Design (Hydroponics Tray Board)" - desc = "The circuit board for a hydroponics tray." - id = "hydro_tray" - req_tech = list("programming" = 1, "biotech" = 1) +/datum/design/teleport_hub + name = "Machine Design (Teleportation Hub Board)" + desc = "The circuit board for a teleportation hub." + id = "tele_hub" + req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/hydroponics + build_path = /obj/item/weapon/circuitboard/teleporter_hub + category = list ("Teleportation Machinery") -datum/design/microwave - name = "Machine Design (Microwave Board)" - desc = "The circuit board for a microwave." - id = "microwave" - req_tech = list("programming" = 1) +/datum/design/telepad + name = "Machine Design (Telepad Board)" + desc = "The circuit board for a telescience telepad." + id = "telepad" + req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/microwave + build_path = /obj/item/weapon/circuitboard/telesci_pad + category = list ("Teleportation Machinery") -datum/design/chem_dispenser +/datum/design/sleeper + name = "Machine Design (Sleeper Board)" + desc = "The circuit board for a sleeper." + id = "sleeper" + req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/sleeper + category = list ("Medical Machinery") + +/datum/design/cryotube + name = "Machine Design (Cryotube Board)" + desc = "The circuit board for a cryotube." + id = "cryotube" + req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/cryo_tube + category = list ("Medical Machinery") + +/datum/design/chem_dispenser name = "Machine Design (Portable Chem Dispenser Board)" desc = "The circuit board for a portable chem dispenser." id = "chem_dispenser" @@ -127,8 +110,29 @@ datum/design/chem_dispenser build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/chem_dispenser + category = list ("Medical Machinery") -datum/design/destructive_analyzer +/datum/design/biogenerator + name = "Machine Design (Biogenerator Board)" + desc = "The circuit board for a biogenerator." + id = "biogenerator" + req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/biogenerator + category = list ("Hydroponics Machinery") + +/datum/design/hydroponics + name = "Machine Design (Hydroponics Tray Board)" + desc = "The circuit board for a hydroponics tray." + id = "hydro_tray" + req_tech = list("programming" = 1, "biotech" = 1) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/hydroponics + category = list ("Hydroponics Machinery") + +/datum/design/destructive_analyzer name = "Machine Design (Destructive Analyzer Board)" desc = "The circuit board for a destructive analyzer." id = "destructive_analyzer" @@ -136,8 +140,9 @@ datum/design/destructive_analyzer build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/destructive_analyzer + category = list("Research Machinery") -datum/design/protolathe +/datum/design/protolathe name = "Machine Design (Protolathe Board)" desc = "The circuit board for a protolathe." id = "protolathe" @@ -145,8 +150,9 @@ datum/design/protolathe build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/protolathe + category = list("Research Machinery") -datum/design/circuit_imprinter +/datum/design/circuit_imprinter name = "Machine Design (Circuit Imprinter Board)" desc = "The circuit board for a circuit imprinter." id = "circuit_imprinter" @@ -154,17 +160,9 @@ datum/design/circuit_imprinter build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/circuit_imprinter + category = list("Research Machinery") -datum/design/autolathe - name = "Machine Design (Autolathe Board)" - desc = "The circuit board for an autolathe." - id = "autolathe" - req_tech = list("programming" = 2, "engineering" = 2) - build_type = IMPRINTER - materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/autolathe - -datum/design/rdservercontrol +/datum/design/rdservercontrol name = "Computer Design (R&D Server Control Console Board)" desc = "The circuit board for an R&D Server Control Console." id = "rdservercontrol" @@ -172,8 +170,9 @@ datum/design/rdservercontrol build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/rdservercontrol + category = list("Research Machinery") -datum/design/rdserver +/datum/design/rdserver name = "Machine Design (R&D Server Board)" desc = "The circuit board for an R&D Server." id = "rdserver" @@ -181,8 +180,9 @@ datum/design/rdserver build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/rdserver + category = list("Research Machinery") -datum/design/mechfab +/datum/design/mechfab name = "Machine Design (Exosuit Fabricator Board)" desc = "The circuit board for an Exosuit Fabricator." id = "mechfab" @@ -190,8 +190,9 @@ datum/design/mechfab build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mechfab + category = list("Research Machinery") -datum/design/cyborgrecharger +/datum/design/cyborgrecharger name = "Machine Design (Cyborg Recharger Board)" desc = "The circuit board for a Cyborg Recharger." id = "cyborgrecharger" @@ -199,8 +200,9 @@ datum/design/cyborgrecharger build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/cyborgrecharger + category = list("Research Machinery") -datum/design/mech_recharger +/datum/design/mech_recharger name = "Machine Design (Mechbay Recharger Board)" desc = "The circuit board for a Mechbay Recharger." id = "mech_recharger" @@ -208,8 +210,29 @@ datum/design/mech_recharger build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mech_recharger + category = list("Research Machinery") -datum/design/vendor +/datum/design/microwave + name = "Machine Design (Microwave Board)" + desc = "The circuit board for a microwave." + id = "microwave" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/microwave + category = list ("Misc. Machinery") + +/datum/design/autolathe + name = "Machine Design (Autolathe Board)" + desc = "The circuit board for an autolathe." + id = "autolathe" + req_tech = list("programming" = 2, "engineering" = 2) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/autolathe + category = list ("Misc. Machinery") + +/datum/design/vendor name = "Machine Design (Vendor Board)" desc = "The circuit board for a Vendor." id = "vendor" @@ -217,8 +240,9 @@ datum/design/vendor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/vendor + category = list ("Misc. Machinery") -datum/design/ore_redemption +/datum/design/ore_redemption name = "Machine Design (Ore Redemption Board)" desc = "The circuit board for an Ore Redemption machine." id = "ore_redemption" @@ -226,13 +250,15 @@ datum/design/ore_redemption build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/ore_redemption + category = list ("Misc. Machinery") -datum/design/mining_equipment_vendor +/datum/design/mining_equipment_vendor name = "Machine Design (Mining Rewards Vender Board)" desc = "The circuit board for a Mining Rewards Vender." id = "mining_equipment_vendor" req_tech = list("programming" = 1, "engineering" = 2) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor + category = list ("Misc. Machinery") \ No newline at end of file diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 08d65a3a975..479c91de938 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -10,6 +10,7 @@ datum/design/ripley_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/ripley/main + category = list("Exosuit Modules") datum/design/ripley_peri name = "Exosuit Module (APLU \"Ripley\" Peripherals Control module)" @@ -19,6 +20,7 @@ datum/design/ripley_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/ripley/peripherals + category = list("Exosuit Modules") datum/design/odysseus_main name = "Exosuit Module (\"Odysseus\" Central Control module)" @@ -28,6 +30,7 @@ datum/design/odysseus_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/odysseus/main + category = list("Exosuit Modules") datum/design/odysseus_peri name = "Exosuit Module (\"Odysseus\" Peripherals Control module)" @@ -37,6 +40,7 @@ datum/design/odysseus_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/odysseus/peripherals + category = list("Exosuit Modules") datum/design/gygax_main name = "Exosuit Module (\"Gygax\" Central Control module)" @@ -46,6 +50,7 @@ datum/design/gygax_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/main + category = list("Exosuit Modules") datum/design/gygax_peri name = "Exosuit Module (\"Gygax\" Peripherals Control module)" @@ -55,6 +60,7 @@ datum/design/gygax_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/peripherals + category = list("Exosuit Modules") datum/design/gygax_targ name = "Exosuit Module (\"Gygax\" Weapons & Targeting Control module)" @@ -64,6 +70,7 @@ datum/design/gygax_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/gygax/targeting + category = list("Exosuit Modules") datum/design/durand_main name = "Exosuit Module (\"Durand\" Central Control module)" @@ -73,6 +80,7 @@ datum/design/durand_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/main + category = list("Exosuit Modules") datum/design/durand_peri name = "Exosuit Module (\"Durand\" Peripherals Control module)" @@ -82,6 +90,7 @@ datum/design/durand_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals + category = list("Exosuit Modules") datum/design/durand_targ name = "Exosuit Module (\"Durand\" Weapons & Targeting Control module)" @@ -91,6 +100,7 @@ datum/design/durand_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting + category = list("Exosuit Modules") datum/design/honker_main name = "Exosuit Module (\"H.O.N.K\" Central Control module)" @@ -100,6 +110,7 @@ datum/design/honker_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/main + category = list("Exosuit Modules") datum/design/honker_peri name = "Exosuit Module (\"H.O.N.K\" Peripherals Control module)" @@ -109,6 +120,7 @@ datum/design/honker_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/peripherals + category = list("Exosuit Modules") datum/design/honker_targ name = "Exosuit Module (\"H.O.N.K\" Weapons & Targeting Control module)" @@ -118,6 +130,7 @@ datum/design/honker_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting + category = list("Exosuit Modules") datum/design/phazon_main name = "Exosuit Module (\"Phazon\" Central Control module)" @@ -127,6 +140,7 @@ datum/design/phazon_main build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/main + category = list("Exosuit Modules") datum/design/phazon_peri name = "Exosuit Module (\"Phazon\" Peripherals Control module)" @@ -136,6 +150,7 @@ datum/design/phazon_peri build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals + category = list("Exosuit Modules") datum/design/phazon_targ name = "Exosuit Module (\"Phazon\" Weapons & Targeting Control module)" @@ -145,6 +160,7 @@ datum/design/phazon_targ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting + category = list("Exosuit Modules") //////////////////////////////////////// /////////// Mecha Equpment ///////////// @@ -346,4 +362,4 @@ datum/design/mech_generator_nuclear build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear materials = list("$metal"=10000,"$glass"=1000,"$silver"=500) construction_time = 100 - category = list("Exosuit Equipment") \ No newline at end of file + category = list("Exosuit Equipment") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 6e5143a5e07..013841c43c9 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -11,6 +11,7 @@ datum/design/mass_spectrometer materials = list("$metal" = 30, "$glass" = 20) reliability = 76 build_path = /obj/item/device/mass_spectrometer + category = list("Medical Designs") datum/design/adv_mass_spectrometer name = "Advanced Mass-Spectrometer" @@ -21,6 +22,7 @@ datum/design/adv_mass_spectrometer materials = list("$metal" = 30, "$glass" = 20) reliability = 74 build_path = /obj/item/device/mass_spectrometer/adv + category = list("Medical Designs") datum/design/mmi name = "Man-Machine Interface" @@ -32,7 +34,7 @@ datum/design/mmi construction_time = 75 reliability = 76 build_path = /obj/item/device/mmi - category = list("Misc") + category = list("Misc","Medical Designs") datum/design/mmi_radio name = "Radio-enabled Man-Machine Interface" @@ -44,7 +46,7 @@ datum/design/mmi_radio construction_time = 75 reliability = 74 build_path = /obj/item/device/mmi/radio_enabled - category = list("Misc") + category = list("Misc","Medical Designs") datum/design/synthetic_flash name = "Flash" @@ -67,7 +69,7 @@ datum/design/bluespacebeaker materials = list("$metal" = 3000, "$plasma" = 3000, "$diamond" = 500) reliability = 76 build_path = /obj/item/weapon/reagent_containers/glass/beaker/bluespace - category = list("Misc") + category = list("Misc","Medical Designs") datum/design/noreactbeaker name = "Cryostasis Beaker" @@ -78,7 +80,7 @@ datum/design/noreactbeaker materials = list("$metal" = 3000) reliability = 76 build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact - category = list("Misc") + category = list("Medical Designs") datum/design/bluespacebodybag name = "Bluespace body bag" @@ -89,7 +91,7 @@ datum/design/bluespacebodybag materials = list("$metal" = 3000, "$plasma" = 2000, "$diamond" = 500) reliability = 76 build_path = /obj/item/bodybag/bluespace - category = list("Misc") + category = list("Medical Designs") datum/design/defib name = "Defibrillator" @@ -100,4 +102,4 @@ datum/design/defib materials = list("$metal" = 5000, "$glass" = 2000, "$silver" = 1000) reliability = 76 build_path = /obj/item/weapon/defibrillator - category = list("Misc") \ No newline at end of file + category = list("Medical Designs") diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 7e83426acfc..73cb40dc456 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -9,9 +9,9 @@ datum/design/basic_cell req_tech = list("powerstorage" = 1) build_type = PROTOLATHE | AUTOLATHE |MECHFAB materials = list("$metal" = 700, "$glass" = 50) - build_path = /obj/item/weapon/stock_parts/cell construction_time=100 - category = list("Misc") + build_path = /obj/item/weapon/stock_parts/cell + category = list("Misc","Power Designs") datum/design/high_cell name = "High-Capacity Power Cell" @@ -22,7 +22,7 @@ datum/design/high_cell materials = list("$metal" = 700, "$glass" = 60) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/high - category = list("Misc") + category = list("Misc","Power Designs") datum/design/super_cell name = "Super-Capacity Power Cell" @@ -34,7 +34,7 @@ datum/design/super_cell materials = list("$metal" = 700, "$glass" = 70) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/super - category = list("Misc") + category = list("Misc","Power Designs") datum/design/hyper_cell name = "Hyper-Capacity Power Cell" @@ -46,7 +46,7 @@ datum/design/hyper_cell materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 80) construction_time=100 build_path = /obj/item/weapon/stock_parts/cell/hyper - category = list("Misc") + category = list("Misc","Power Designs") datum/design/light_replacer name = "Light Replacer" @@ -56,6 +56,7 @@ datum/design/light_replacer build_type = PROTOLATHE materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000) build_path = /obj/item/device/lightreplacer + category = list("Power Designs") datum/design/pacman name = "Machine Design (PACMAN-type Generator Board)" @@ -85,4 +86,4 @@ datum/design/mrspacman build_type = IMPRINTER reliability = 74 materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pacman/mrs \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/pacman/mrs diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index 1268e86079a..638ef2d97ab 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -2,7 +2,7 @@ /////////////Stock Parts//////////////// //////////////////////////////////////// -datum/design/RPED +/datum/design/RPED name = "Rapid Part Exchange Device" desc = "Special mechanical module made to store, sort, and apply standard machine parts." id = "rped" @@ -11,8 +11,10 @@ datum/design/RPED build_type = PROTOLATHE materials = list("$metal" = 15000, "$glass" = 5000) //hardcore build_path = /obj/item/weapon/storage/part_replacer + category = list("Stock Parts") -datum/design/basic_capacitor +//Capacitors +/datum/design/basic_capacitor name = "Basic Capacitor" desc = "A stock part used in the construction of various devices." id = "basic_capacitor" @@ -20,44 +22,9 @@ datum/design/basic_capacitor build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = /obj/item/weapon/stock_parts/capacitor + category = list("Stock Parts") -datum/design/basic_scanning - name = "Basic Scanning Module" - desc = "A stock part used in the construction of various devices." - id = "basic_scanning" - req_tech = list("magnets" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 50, "$glass" = 20) - build_path = /obj/item/weapon/stock_parts/scanning_module - -datum/design/micro_mani - name = "Micro Manipulator" - desc = "A stock part used in the construction of various devices." - id = "micro_mani" - req_tech = list("materials" = 1, "programming" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 30) - build_path = /obj/item/weapon/stock_parts/manipulator - -datum/design/basic_micro_laser - name = "Basic Micro-Laser" - desc = "A stock part used in the construction of various devices." - id = "basic_micro_laser" - req_tech = list("magnets" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 10, "$glass" = 20) - build_path = /obj/item/weapon/stock_parts/micro_laser - -datum/design/basic_matter_bin - name = "Basic Matter Bin" - desc = "A stock part used in the construction of various devices." - id = "basic_matter_bin" - req_tech = list("materials" = 1) - build_type = PROTOLATHE | AUTOLATHE - materials = list("$metal" = 80) - build_path = /obj/item/weapon/stock_parts/matter_bin - -datum/design/adv_capacitor +/datum/design/adv_capacitor name = "Advanced Capacitor" desc = "A stock part used in the construction of various devices." id = "adv_capacitor" @@ -65,8 +32,31 @@ datum/design/adv_capacitor build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = /obj/item/weapon/stock_parts/capacitor/adv + category = list("Stock Parts") -datum/design/adv_scanning +/datum/design/super_capacitor + name = "Super Capacitor" + desc = "A stock part used in the construction of various devices." + id = "super_capacitor" + req_tech = list("powerstorage" = 5, "materials" = 4) + build_type = PROTOLATHE + reliability = 71 + materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20) + build_path = /obj/item/weapon/stock_parts/capacitor/super + category = list("Stock Parts") + +//Scanning modules +/datum/design/basic_scanning + name = "Basic Scanning Module" + desc = "A stock part used in the construction of various devices." + id = "basic_scanning" + req_tech = list("magnets" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 50, "$glass" = 20) + build_path = /obj/item/weapon/stock_parts/scanning_module + category = list("Stock Parts") + +/datum/design/adv_scanning name = "Advanced Scanning Module" desc = "A stock part used in the construction of various devices." id = "adv_scanning" @@ -74,8 +64,31 @@ datum/design/adv_scanning build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 20) build_path = /obj/item/weapon/stock_parts/scanning_module/adv + category = list("Stock Parts") -datum/design/nano_mani +/datum/design/phasic_scanning + name = "Phasic Scanning Module" + desc = "A stock part used in the construction of various devices." + id = "phasic_scanning" + req_tech = list("magnets" = 5, "materials" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10) + reliability = 72 + build_path = /obj/item/weapon/stock_parts/scanning_module/phasic + category = list("Stock Parts") + +//Maipulators +/datum/design/micro_mani + name = "Micro Manipulator" + desc = "A stock part used in the construction of various devices." + id = "micro_mani" + req_tech = list("materials" = 1, "programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 30) + build_path = /obj/item/weapon/stock_parts/manipulator + category = list("Stock Parts") + +/datum/design/nano_mani name = "Nano Manipulator" desc = "A stock part used in the construction of various devices." id = "nano_mani" @@ -83,6 +96,29 @@ datum/design/nano_mani build_type = PROTOLATHE materials = list("$metal" = 30) build_path = /obj/item/weapon/stock_parts/manipulator/nano + category = list("Stock Parts") + +/datum/design/pico_mani + name = "Pico Manipulator" + desc = "A stock part used in the construction of various devices." + id = "pico_mani" + req_tech = list("materials" = 5, "programming" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 30) + reliability = 73 + build_path = /obj/item/weapon/stock_parts/manipulator/pico + category = list("Stock Parts") + +//Micro-lasers +/datum/design/basic_micro_laser + name = "Basic Micro-Laser" + desc = "A stock part used in the construction of various devices." + id = "basic_micro_laser" + req_tech = list("magnets" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 10, "$glass" = 20) + build_path = /obj/item/weapon/stock_parts/micro_laser + category = list("Stock Parts") datum/design/high_micro_laser name = "High-Power Micro-Laser" @@ -92,45 +128,7 @@ datum/design/high_micro_laser build_type = PROTOLATHE materials = list("$metal" = 10, "$glass" = 20) build_path = /obj/item/weapon/stock_parts/micro_laser/high - -datum/design/adv_matter_bin - name = "Advanced Matter Bin" - desc = "A stock part used in the construction of various devices." - id = "adv_matter_bin" - req_tech = list("materials" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 80) - build_path = /obj/item/weapon/stock_parts/matter_bin/adv - -datum/design/super_capacitor - name = "Super Capacitor" - desc = "A stock part used in the construction of various devices." - id = "super_capacitor" - req_tech = list("powerstorage" = 5, "materials" = 4) - build_type = PROTOLATHE - reliability = 71 - materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20) - build_path = /obj/item/weapon/stock_parts/capacitor/super - -datum/design/phasic_scanning - name = "Phasic Scanning Module" - desc = "A stock part used in the construction of various devices." - id = "phasic_scanning" - req_tech = list("magnets" = 5, "materials" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10) - reliability = 72 - build_path = /obj/item/weapon/stock_parts/scanning_module/phasic - -datum/design/pico_mani - name = "Pico Manipulator" - desc = "A stock part used in the construction of various devices." - id = "pico_mani" - req_tech = list("materials" = 5, "programming" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 30) - reliability = 73 - build_path = /obj/item/weapon/stock_parts/manipulator/pico + category = list("Stock Parts") datum/design/ultra_micro_laser name = "Ultra-High-Power Micro-Laser" @@ -141,6 +139,27 @@ datum/design/ultra_micro_laser materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10) reliability = 70 build_path = /obj/item/weapon/stock_parts/micro_laser/ultra + category = list("Stock Parts") + +datum/design/basic_matter_bin + name = "Basic Matter Bin" + desc = "A stock part used in the construction of various devices." + id = "basic_matter_bin" + req_tech = list("materials" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 80) + build_path = /obj/item/weapon/stock_parts/matter_bin + category = list("Stock Parts") + +datum/design/adv_matter_bin + name = "Advanced Matter Bin" + desc = "A stock part used in the construction of various devices." + id = "adv_matter_bin" + req_tech = list("materials" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 80) + build_path = /obj/item/weapon/stock_parts/matter_bin/adv + category = list("Stock Parts") datum/design/super_matter_bin name = "Super Matter Bin" @@ -151,7 +170,9 @@ datum/design/super_matter_bin materials = list("$metal" = 80) reliability = 75 build_path = /obj/item/weapon/stock_parts/matter_bin/super + category = list("Stock Parts") +//T-Comms devices datum/design/subspace_ansible name = "Subspace Ansible" desc = "A compact module capable of sensing extradimensional activity." @@ -160,6 +181,7 @@ datum/design/subspace_ansible build_type = PROTOLATHE materials = list("$metal" = 80, "$silver" = 20) build_path = /obj/item/weapon/stock_parts/subspace/ansible + category = list("Stock Parts") datum/design/hyperwave_filter name = "Hyperwave Filter" @@ -169,6 +191,7 @@ datum/design/hyperwave_filter build_type = PROTOLATHE materials = list("$metal" = 40, "$silver" = 10) build_path = /obj/item/weapon/stock_parts/subspace/filter + category = list("Stock Parts") datum/design/subspace_amplifier name = "Subspace Amplifier" @@ -178,6 +201,7 @@ datum/design/subspace_amplifier build_type = PROTOLATHE materials = list("$metal" = 10, "$gold" = 30, "$uranium" = 15) build_path = /obj/item/weapon/stock_parts/subspace/amplifier + category = list("Stock Parts") datum/design/subspace_treatment name = "Subspace Treatment Disk" @@ -187,6 +211,7 @@ datum/design/subspace_treatment build_type = PROTOLATHE materials = list("$metal" = 10, "$silver" = 20) build_path = /obj/item/weapon/stock_parts/subspace/treatment + category = list("Stock Parts") datum/design/subspace_analyzer name = "Subspace Analyzer" @@ -196,6 +221,7 @@ datum/design/subspace_analyzer build_type = PROTOLATHE materials = list("$metal" = 10, "$gold" = 15) build_path = /obj/item/weapon/stock_parts/subspace/analyzer + category = list("Stock Parts") datum/design/subspace_crystal name = "Ansible Crystal" @@ -205,6 +231,7 @@ datum/design/subspace_crystal build_type = PROTOLATHE materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20) build_path = /obj/item/weapon/stock_parts/subspace/crystal + category = list("Stock Parts") datum/design/subspace_transmitter name = "Subspace Transmitter" @@ -213,4 +240,5 @@ datum/design/subspace_transmitter req_tech = list("magnets" = 3, "materials" = 3, "bluespace" = 2) build_type = PROTOLATHE materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15) - build_path = /obj/item/weapon/stock_parts/subspace/transmitter \ No newline at end of file + build_path = /obj/item/weapon/stock_parts/subspace/transmitter + category = list("Stock Parts") \ No newline at end of file diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm index e4de22f4fdd..d43f9c6cdde 100644 --- a/code/modules/research/designs/telecomms_designs.dm +++ b/code/modules/research/designs/telecomms_designs.dm @@ -2,7 +2,7 @@ /////Subspace Telecomms//////////// /////////////////////////////////// -datum/design/subspace_receiver +/datum/design/subspace_receiver name = "Machine Design (Subspace Receiver)" desc = "Allows for the construction of Subspace Receiver equipment." id = "s-receiver" @@ -10,8 +10,9 @@ datum/design/subspace_receiver build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/receiver + category = list("Subspace Telecomms") -datum/design/telecomms_bus +/datum/design/telecomms_bus name = "Machine Design (Bus Mainframe)" desc = "Allows for the construction of Telecommunications Bus Mainframes." id = "s-bus" @@ -19,8 +20,9 @@ datum/design/telecomms_bus build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/bus + category = list("Subspace Telecomms") -datum/design/telecomms_hub +/datum/design/telecomms_hub name = "Machine Design (Hub Mainframe)" desc = "Allows for the construction of Telecommunications Hub Mainframes." id = "s-hub" @@ -28,8 +30,9 @@ datum/design/telecomms_hub build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/hub + category = list("Subspace Telecomms") -datum/design/telecomms_relay +/datum/design/telecomms_relay name = "Machine Design (Relay Mainframe)" desc = "Allows for the construction of Telecommunications Relay Mainframes." id = "s-relay" @@ -37,8 +40,9 @@ datum/design/telecomms_relay build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/relay + category = list("Subspace Telecomms") -datum/design/telecomms_processor +/datum/design/telecomms_processor name = "Machine Design (Processor Unit)" desc = "Allows for the construction of Telecommunications Processor equipment." id = "s-processor" @@ -46,8 +50,9 @@ datum/design/telecomms_processor build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/processor + category = list("Subspace Telecomms") -datum/design/telecomms_server +/datum/design/telecomms_server name = "Machine Design (Server Mainframe)" desc = "Allows for the construction of Telecommunications Servers." id = "s-server" @@ -55,12 +60,14 @@ datum/design/telecomms_server build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/telecomms/server + category = list("Subspace Telecomms") -datum/design/subspace_broadcaster +/datum/design/subspace_broadcaster name = "Machine Design (Subspace Broadcaster)" desc = "Allows for the construction of Subspace Broadcasting equipment." id = "s-broadcaster" req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1) build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster \ No newline at end of file + build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster + category = list("Subspace Telecomms") \ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 02b30f3552d..fa35c34bacf 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -2,7 +2,7 @@ /////////////////Weapons///////////////// ///////////////////////////////////////// -datum/design/nuclear_gun +/datum/design/nuclear_gun name = "Advanced Energy Gun" desc = "An energy gun with an experimental miniaturized reactor." id = "nuclear_gun" @@ -12,8 +12,9 @@ datum/design/nuclear_gun reliability = 76 build_path = /obj/item/weapon/gun/energy/gun/nuclear locked = 1 + category = list("Weapons") -datum/design/stunrevolver +/datum/design/stunrevolver name = "Stun Revolver" desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder. The stun cartridges can be recharged using a conventional energy weapon recharger." id = "stunrevolver" @@ -22,8 +23,9 @@ datum/design/stunrevolver materials = list("$metal" = 4000) build_path = /obj/item/weapon/gun/energy/stunrevolver locked = 1 + category = list("Weapons") -datum/design/tele_shield +/datum/design/tele_shield name = "Telescopic Riot Shield" desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." id = "tele_shield" @@ -32,8 +34,9 @@ datum/design/tele_shield materials = list("$metal" = 4000, "$glass" = 5000, "$silver" = 300) build_path = /obj/item/weapon/shield/riot/tele locked = 1 + category = list("Weapons") -datum/design/lasercannon +/datum/design/lasercannon name = "Laser Cannon" desc = "A heavy duty laser cannon." id = "lasercannon" @@ -42,8 +45,9 @@ datum/design/lasercannon materials = list("$metal" = 10000, "$glass" = 2000, "$diamond" = 2000) build_path = /obj/item/weapon/gun/energy/lasercannon locked = 1 + category = list("Weapons") -datum/design/decloner +/datum/design/decloner name = "Decloner" desc = "Your opponent will bubble into a messy pile of goop." id = "decloner" @@ -52,18 +56,9 @@ datum/design/decloner materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40) build_path = /obj/item/weapon/gun/energy/decloner locked = 1 -/* -datum/design/chemsprayer - name = "Chem Sprayer" - desc = "An advanced chem spraying device." - id = "chemsprayer" - req_tech = list("combat" = 3, "materials" = 3, "engineering" = 3, "biotech" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 5000, "$glass" = 1000) - reliability = 100 - build_path = /obj/item/weapon/chemsprayer" -*/ -datum/design/rapidsyringe + category = list("Weapons") + +/datum/design/rapidsyringe name = "Rapid Syringe Gun" desc = "A gun that fires many syringes." id = "rapidsyringe" @@ -71,8 +66,9 @@ datum/design/rapidsyringe build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000) build_path = /obj/item/weapon/gun/syringe/rapidsyringe + category = list("Weapons") -datum/design/largecrossbow +/datum/design/largecrossbow name = "Energy Crossbow" desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters." id = "largecrossbow" @@ -81,8 +77,9 @@ datum/design/largecrossbow materials = list("$metal" = 5000, "$glass" = 1500, "$uranium" = 1500, "$silver" = 1500) build_path = /obj/item/weapon/gun/energy/crossbow/largecrossbow locked = 1 + category = list("Weapons") -datum/design/temp_gun +/datum/design/temp_gun name = "Temperature Gun" desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want id = "temp_gun" @@ -91,8 +88,9 @@ datum/design/temp_gun materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000) build_path = /obj/item/weapon/gun/energy/temperature locked = 1 + category = list("Weapons") -datum/design/flora_gun +/datum/design/flora_gun name = "Floral Somatoray" desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life." id = "flora_gun" @@ -100,8 +98,9 @@ datum/design/flora_gun build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 500, "radium" = 20) build_path = /obj/item/weapon/gun/energy/floragun + category = list("Weapons") -datum/design/large_grenade +/datum/design/large_grenade name = "Large Grenade" desc = "A grenade that affects a larger area and use larger containers." id = "large_Grenade" @@ -110,8 +109,9 @@ datum/design/large_grenade materials = list("$metal" = 3000) reliability = 79 build_path = /obj/item/weapon/grenade/chem_grenade/large + category = list("Weapons") -datum/design/smg +/datum/design/smg name = "Prototype Submachine Gun" desc = "A prototype weapon made using lightweight materials on a traditional frame, designed to fire standard 9mm rounds." id = "smg" @@ -120,17 +120,9 @@ datum/design/smg materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000) build_path = /obj/item/weapon/gun/projectile/automatic locked = 1 + category = list("Weapons") -datum/design/mag_smg - name = "Submachine Gun Magazine (9mm)" - desc = "A 20-round magazine for the prototype submachine gun." - id = "mag_smg" - req_tech = list("combat" = 4, "materials" = 3) - build_type = PROTOLATHE - materials = list("$metal" = 2000) - build_path = /obj/item/ammo_box/magazine/smgm9mm - -datum/design/xray +/datum/design/xray name = "Xray Laser Gun" desc = "Not quite as menacing as it sounds" id = "xray" @@ -139,8 +131,9 @@ datum/design/xray materials = list("$gold" = 5000,"$uranium" = 10000, "$metal" = 4000) build_path = /obj/item/weapon/gun/energy/xray locked = 1 + category = list("Weapons") -datum/design/ionrifle +/datum/design/ionrifle name = "Ion Rifle" desc = "How to dismantle a cyborg : The gun." id = "ionrifle" @@ -149,8 +142,9 @@ datum/design/ionrifle materials = list("$silver" = 4000, "$metal" = 6000, "$uranium" = 1000) build_path = /obj/item/weapon/gun/energy/ionrifle locked = 1 + category = list("Weapons") -datum/design/wormhole_projector +/datum/design/wormhole_projector name = "Bluespace Wormhole Projector" desc = "A projector that emits high density quantum-coupled bluespace beams." id = "wormholeprojector" @@ -159,8 +153,9 @@ datum/design/wormhole_projector materials = list("$silver" = 1000, "$metal" = 5000, "$diamond" = 3000) build_path = /obj/item/weapon/gun/energy/wormhole_projector locked = 1 + category = list("Weapons") -datum/design/reciever +/datum/design/reciever name = "Modular Reciever" desc = "A prototype modular reciever and trigger assembly for a variety of firearms." id = "reciever" @@ -168,8 +163,19 @@ datum/design/reciever build_type = PROTOLATHE materials = list("$metal" = 6500, "$silver" = 500) build_path = /obj/item/weaponcrafting/reciever + category = list("Weapons") -datum/design/stunshell +/datum/design/mag_smg + name = "Submachine Gun Magazine (9mm)" + desc = "A 20-round magazine for the prototype submachine gun." + id = "mag_smg" + req_tech = list("combat" = 4, "materials" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 2000) + build_path = /obj/item/ammo_box/magazine/smgm9mm + category = list("Ammo") + +/datum/design/stunshell name = "Stun Shell" desc = "A stunning shell for a shotgun." id = "stunshell" @@ -177,8 +183,9 @@ datum/design/stunshell build_type = PROTOLATHE materials = list("$metal" = 200) build_path = /obj/item/ammo_casing/shotgun/stunslug + category = list("Ammo") -datum/design/techshell +/datum/design/techshell name = "Unloaded Technological Shotshell" desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects." id = "techshotshell" @@ -186,8 +193,9 @@ datum/design/techshell build_type = PROTOLATHE materials = list("$metal" = 1000, "$glass" = 200, "$silver" = 300) build_path = /obj/item/ammo_casing/shotgun/techshell + category = list("Ammo") -datum/design/suppressor +/datum/design/suppressor name = "Universal Suppressor" desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels." id = "suppressor" @@ -195,3 +203,4 @@ datum/design/suppressor build_type = PROTOLATHE materials = list("$metal" = 2000, "$silver" = 500) build_path = /obj/item/weapon/suppressor + category = list("Weapons") diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index d4affb8af14..771d53cd16e 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -25,6 +25,14 @@ Note: Must be placed west/left of and R&D console to function. var/adamantine_amount = 0.0 var/efficiency_coeff + var/list/categories = list( + "Power Designs", + "Stock Parts", + "Medical Designs", + "Weapons", + "Ammo", + ) + reagents = new() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 124bbf8599c..7c695ffe718 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -49,6 +49,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, req_access = list(access_tox) //Data and setting manipulation requires scientist access. + var/selected_category + /obj/machinery/computer/rdconsole/proc/CallTechName(var/ID) //A simple helper proc to find the name of a tech with a given ID. var/datum/tech/check_tech @@ -179,6 +181,9 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/temp_screen = text2num(href_list["menu"]) screen = temp_screen + if(href_list["category"]) + selected_category = href_list["category"] + else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk. screen = 0.0 spawn(50) @@ -413,7 +418,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else new_item.loc = linked_lathe.loc linked_lathe.busy = 0 - screen = 3.1 + screen = 3.15 updateUsrDialog() else if(href_list["imprint"]) //Causes the Circuit Imprinter to build something. @@ -778,31 +783,42 @@ won't update every console in existence) but it's more of a hassle to do. Also, dat += "

Protolathe Menu:


" dat += "Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
" dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
" + + dat += list_categories(linked_lathe.categories, 3.15) + + //Grouping designs by categories, to improve readability + if(3.15) + dat += "Main Menu" + dat += "Protolathe Menu" + dat += "

Browsing [selected_category]:


" + dat += "Material Amount: [linked_lathe.TotalMaterials()] / [linked_lathe.max_material_storage]
" + dat += "Chemical Volume: [linked_lathe.reagents.total_volume] / [linked_lathe.reagents.maximum_volume]
" + var/coeff = linked_lathe.efficiency_coeff for(var/datum/design/D in files.known_designs) - if(!(D.build_type & PROTOLATHE)) + if(!(selected_category in D.category)|| !(D.build_type & PROTOLATHE)) continue - var/temp_dat = "[D.name]" var/temp_material var/c = 50 var/t for(var/M in D.materials) t = linked_lathe.check_mat(D, M) + temp_material += " | " if (!t) - temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]" + temp_material += "[D.materials[M]/coeff] [CallMaterialName(M)]" else temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]" c = min(c,t) if (c) - dat += "* [temp_dat]" + dat += "[D.name]" if(c >= 5.0) dat += "x5" if(c >= 10.0) dat += "x10" dat += "[temp_material]" else - dat += "* [temp_dat][temp_material]" + dat += "[D.name][temp_material]" dat += "
" dat += "
" @@ -880,23 +896,33 @@ won't update every console in existence) but it's more of a hassle to do. Also, dat += "

Circuit Imprinter Menu:


" dat += "Material Amount: [linked_imprinter.TotalMaterials()]
" dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
" + + dat += list_categories(linked_imprinter.categories, 4.15) + + if(4.15) + dat += "Main Menu" + dat += "Circuit Imprinter Menu" + dat += "

Browsing [selected_category]:


" + dat += "Material Amount: [linked_imprinter.TotalMaterials()]
" + dat += "Chemical Volume: [linked_imprinter.reagents.total_volume]
" + var/coeff = linked_imprinter.efficiency_coeff for(var/datum/design/D in files.known_designs) - if(!(D.build_type & IMPRINTER)) + if(!(selected_category in D.category) || !(D.build_type & IMPRINTER)) continue - var/temp_dat = "[D.name]" var/temp_materials var/check_materials = 1 for(var/M in D.materials) + temp_materials += " | " if (!linked_imprinter.check_mat(D, M)) check_materials = 0 - temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" + temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" else temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]" if (check_materials) - dat += "* [temp_dat][temp_materials]
" + dat += "[D.name][temp_materials]
" else - dat += "* [temp_dat][temp_materials]
" + dat += "[D.name][temp_materials]
" dat += "
" if(4.2) @@ -931,11 +957,30 @@ won't update every console in existence) but it's more of a hassle to do. Also, if(linked_imprinter.diamond_amount >= 2000) dat += "All" dat += "
" - var/datum/browser/popup = new(user, "rndconsole", name, 420, 450) + var/datum/browser/popup = new(user, "rndconsole", name, 460, 550) popup.set_content(dat) popup.open() return +//helper proc, which return a table containing categories +/obj/machinery/computer/rdconsole/proc/list_categories(var/list/categories, var/menu_num as num) + if(!categories) + return + + var/line_length = 1 + var/dat = "" + + for(var/C in categories) + if(line_length > 2) + dat += "" + line_length = 1 + + dat += "" + line_length++ + + dat += "
[C]
" + return dat + /obj/machinery/computer/rdconsole/robotics name = "Robotics R&D Console" desc = "A console used to interface with R&D tools." diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index ef765b17f9e..6fa8bb0536a 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -159,6 +159,26 @@ research holder datum. if(I.crit_fail) D.reliability = min(100, D.reliability + rand(3, 5)) +/datum/research/proc/FindDesignByID(var/id) + for(var/datum/design/D in known_designs) + if(D.id == id) + return D + + +//Autolathe files +/datum/research/autolathe/New() + for(var/T in (typesof(/datum/tech) - /datum/tech)) + possible_tech += new T(src) + for(var/path in typesof(/datum/design) - /datum/design) + var/datum/design/D = new path(src) + possible_designs += D + if((D.build_type & AUTOLATHE) && ("initial" in D.category)) //autolathe starts without hacked designs + AddDesign2Known(D) + +/datum/research/autolathe/AddDesign2Known(var/datum/design/D) + if(!(D.build_type & AUTOLATHE)) + return + ..() /*************************************************************** ** Technology Datums ** diff --git a/tgstation.dme b/tgstation.dme index ccf56de608c..1ee1c28cfe7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1285,6 +1285,7 @@ #include "code\modules\research\research.dm" #include "code\modules\research\server.dm" #include "code\modules\research\designs\AI_module_designs.dm" +#include "code\modules\research\designs\autolathe_designs.dm" #include "code\modules\research\designs\comp_board_designs.dm" #include "code\modules\research\designs\machine_designs.dm" #include "code\modules\research\designs\mecha_designs.dm"