diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index 3cef3a0b84..26e2eaef2d 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -73,6 +73,11 @@
materials.max_amount = 0
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
materials.max_amount += M.rating * 75000
+ var/total_rating = 0
+ for(var/obj/item/stock_parts/manipulator/M in component_parts)
+ total_rating += M.rating
+ total_rating = max(1, total_rating)
+ efficiency_coeff /= total_rating
//we eject the materials upon deconstruction.
/obj/machinery/rnd/production/on_deconstruction()
@@ -234,9 +239,9 @@
t = check_mat(D, M)
temp_material += " | "
if (t < 1)
- temp_material += "[all_materials[M]*coeff] [CallMaterialName(M)]"
+ temp_material += "[all_materials[M]/coeff] [CallMaterialName(M)]"
else
- temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]"
+ temp_material += " [all_materials[M]/coeff] [CallMaterialName(M)]"
c = min(c,t)
if (c >= 1)
diff --git a/code/modules/research/machinery/circuit_imprinter.dm b/code/modules/research/machinery/circuit_imprinter.dm
index 3a56850a2f..e51b1c5cf5 100644
--- a/code/modules/research/machinery/circuit_imprinter.dm
+++ b/code/modules/research/machinery/circuit_imprinter.dm
@@ -20,13 +20,6 @@
production_animation = "circuit_imprinter_ani"
allowed_buildtypes = IMPRINTER
-/obj/machinery/rnd/production/circuit_imprinter/calculate_efficiency()
- . = ..()
- var/T = 0
- for(var/obj/item/stock_parts/manipulator/M in component_parts)
- T += M.rating
- efficiency_coeff = 2 ** (T - 1) //Only 1 manipulator here, you're making runtimes Razharas
-
/obj/machinery/rnd/production/circuit_imprinter/disconnect_console()
linked_console.linked_imprinter = null
..()
\ No newline at end of file
diff --git a/code/modules/research/machinery/protolathe.dm b/code/modules/research/machinery/protolathe.dm
index 404a982b51..ef74fec666 100644
--- a/code/modules/research/machinery/protolathe.dm
+++ b/code/modules/research/machinery/protolathe.dm
@@ -20,13 +20,6 @@
production_animation = "protolathe_n"
allowed_buildtypes = PROTOLATHE
-/obj/machinery/rnd/production/protolathe/calculate_efficiency()
- . = ..()
- efficiency_coeff = 0
- for(var/obj/item/stock_parts/manipulator/M in component_parts)
- efficiency_coeff += M.rating
- efficiency_coeff = max(1, efficiency_coeff)
-
/obj/machinery/rnd/production/protolathe/disconnect_console()
linked_console.linked_lathe = null
..()
\ No newline at end of file