diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 89a73e31715..06dbba8d62e 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -49,6 +49,7 @@ other types of metals and chemistry for reagents). var/category = null //Primarily used for Mech Fabricators, but can be used for anything var/list/reagents = list() //List of reagents. Format: "id" = amount. var/maxstack = 1 + var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe //A proc to calculate the reliability of a design based on tech levels and innate modifiers. //Input: A list of /datum/tech; Output: The new reliabilty. diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm index 81182661384..a1be7ffcf7a 100644 --- a/code/modules/research/designs/stock_parts_designs.dm +++ b/code/modules/research/designs/stock_parts_designs.dm @@ -11,6 +11,7 @@ materials = list(MAT_METAL = 50, MAT_GLASS = 50) build_path = /obj/item/weapon/stock_parts/capacitor category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/basic_sensor name = "Basic Scanning Module" @@ -21,6 +22,7 @@ materials = list(MAT_METAL = 50, MAT_GLASS = 20) build_path = /obj/item/weapon/stock_parts/scanning_module category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/micro_mani name = "Micro Manipulator" @@ -31,6 +33,7 @@ materials = list(MAT_METAL = 30) build_path = /obj/item/weapon/stock_parts/manipulator category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/basic_micro_laser name = "Basic Micro-Laser" @@ -41,6 +44,7 @@ materials = list(MAT_METAL = 10, MAT_GLASS = 20) build_path = /obj/item/weapon/stock_parts/micro_laser category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/basic_matter_bin name = "Basic Matter Bin" @@ -51,6 +55,7 @@ materials = list(MAT_METAL = 80) build_path = /obj/item/weapon/stock_parts/matter_bin category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/adv_capacitor name = "Advanced Capacitor" @@ -61,6 +66,7 @@ materials = list(MAT_METAL = 50, MAT_GLASS = 50) build_path = /obj/item/weapon/stock_parts/capacitor/adv category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/adv_sensor name = "Advanced Scanning Module" @@ -71,6 +77,7 @@ materials = list(MAT_METAL = 50, MAT_GLASS = 20) build_path = /obj/item/weapon/stock_parts/scanning_module/adv category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/nano_mani name = "Nano Manipulator" @@ -81,6 +88,7 @@ materials = list(MAT_METAL = 30) build_path = /obj/item/weapon/stock_parts/manipulator/nano category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/high_micro_laser name = "High-Power Micro-Laser" @@ -91,6 +99,7 @@ materials = list(MAT_METAL = 10, MAT_GLASS = 20) build_path = /obj/item/weapon/stock_parts/micro_laser/high category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/adv_matter_bin name = "Advanced Matter Bin" @@ -101,6 +110,7 @@ materials = list(MAT_METAL = 80) build_path = /obj/item/weapon/stock_parts/matter_bin/adv category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/super_capacitor name = "Super Capacitor" @@ -112,6 +122,7 @@ materials = list(MAT_METAL = 50, MAT_GLASS = 50, MAT_GOLD = 20) build_path = /obj/item/weapon/stock_parts/capacitor/super category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/phasic_sensor name = "Phasic Scanning Module" @@ -123,6 +134,7 @@ reliability = 72 build_path = /obj/item/weapon/stock_parts/scanning_module/phasic category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/pico_mani name = "Pico Manipulator" @@ -134,6 +146,7 @@ reliability = 73 build_path = /obj/item/weapon/stock_parts/manipulator/pico category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/ultra_micro_laser name = "Ultra-High-Power Micro-Laser" @@ -145,6 +158,7 @@ reliability = 70 build_path = /obj/item/weapon/stock_parts/micro_laser/ultra category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/super_matter_bin name = "Super Matter Bin" @@ -156,6 +170,7 @@ reliability = 75 build_path = /obj/item/weapon/stock_parts/matter_bin/super category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/quadratic_capacitor name = "Quadratic Capacitor" @@ -167,6 +182,7 @@ materials = list(MAT_METAL = 100, MAT_GLASS = 100, MAT_DIAMOND = 40) build_path = /obj/item/weapon/stock_parts/capacitor/quadratic category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/triphasic_scanning name = "Triphasic Scanning Module" @@ -178,6 +194,7 @@ reliability = 72 build_path = /obj/item/weapon/stock_parts/scanning_module/triphasic category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/femto_mani name = "Femto Manipulator" @@ -189,6 +206,7 @@ reliability = 73 build_path = /obj/item/weapon/stock_parts/manipulator/femto category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/quadultra_micro_laser name = "Quad-Ultra Micro-Laser" @@ -200,6 +218,7 @@ reliability = 70 build_path = /obj/item/weapon/stock_parts/micro_laser/quadultra category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/bluespace_matter_bin name = "Bluespace Matter Bin" @@ -211,6 +230,7 @@ reliability = 75 build_path = /obj/item/weapon/stock_parts/matter_bin/bluespace category = list("Stock Parts") + lathe_time_factor = 5 /datum/design/RPED name = "Rapid Part Exchange Device" @@ -240,4 +260,5 @@ build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_PLASMA = 4000) build_path = /obj/item/stack/sheet/mineral/abductor - category = list("Stock Parts") \ No newline at end of file + category = list("Stock Parts") + lathe_time_factor = 5 \ No newline at end of file diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 9e8b29f94c1..4ed0f5c1b4a 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -431,6 +431,9 @@ proc/CallMaterialName(ID) var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. var/O = being_built.locked + + coeff *= being_built.lathe_time_factor + spawn(32*amount/coeff) if(g2g) //And if we only fail the material requirements, we still spend time and power for(var/i = 0, i