diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index a9a8b40ed5..396bec0a01 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -3,6 +3,9 @@
name = "Embedded Controller"
anchored = 1
+
+ use_power = 1
+ idle_power_usage = 10
var/on = 1
@@ -43,6 +46,7 @@
density = 0
var/id_tag
+ var/radio_power_use = 50 //power used to xmit signals
var/frequency = 1379
var/datum/radio_frequency/radio_connection
@@ -63,6 +67,7 @@
/obj/machinery/embedded_controller/radio/post_signal(datum/signal/signal)
signal.transmission_method = TRANSMISSION_RADIO
if(radio_connection)
+ use_power(radio_power_use)
return radio_connection.post_signal(src, signal)
else
del(signal)
diff --git a/code/game/machinery/robot_fabricator.dm b/code/game/machinery/robot_fabricator.dm
index 73aacd3a9b..e7994763dd 100644
--- a/code/game/machinery/robot_fabricator.dm
+++ b/code/game/machinery/robot_fabricator.dm
@@ -8,8 +8,8 @@
var/operating = 0
var/obj/item/robot_parts/being_built = null
use_power = 1
- idle_power_usage = 20
- active_power_usage = 5000
+ idle_power_usage = 40
+ active_power_usage = 10000
/obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/stack/sheet/metal))
@@ -126,7 +126,7 @@ Please wait until completion...
if (!isnull(building))
if (src.metal_amount >= build_cost)
src.operating = 1
- src.use_power = 2
+ src.update_use_power(2)
src.metal_amount = max(0, src.metal_amount - build_cost)
@@ -139,7 +139,7 @@ Please wait until completion...
if (!isnull(src.being_built))
src.being_built.loc = get_turf(src)
src.being_built = null
- src.use_power = 1
+ src.update_use_power(1)
src.operating = 0
src.overlays -= "fab-active"
return
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index 6fa91b4aaf..cfed4686cd 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -14,6 +14,10 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
var/diamond_amount = 0
var/uranium_amount = 0
var/max_material_amount = 75000.0
+
+ use_power = 1
+ idle_power_usage = 30
+ active_power_usage = 2500
New()
..()
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 3499601afc..f6ed81ae41 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -12,6 +12,10 @@ Note: Must be placed within 3 tiles of the R&D Console
icon_state = "d_analyzer"
var/obj/item/weapon/loaded_item = null
var/decon_mod = 1
+
+ use_power = 1
+ idle_power_usage = 30
+ active_power_usage = 2500
/obj/machinery/r_n_d/destructive_analyzer/New()
..()
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index dae9b942ff..df45b56f0a 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -11,6 +11,10 @@ Note: Must be placed west/left of and R&D console to function.
name = "Protolathe"
icon_state = "protolathe"
flags = OPENCONTAINER
+
+ use_power = 1
+ idle_power_usage = 30
+ active_power_usage = 5000
var/max_material_storage = 100000 //All this could probably be done better with a list but meh.
var/m_amount = 0.0
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 3396323c3a..1e762e3965 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -280,7 +280,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(!(I in linked_destroy.component_parts))
del(I)
linked_destroy.icon_state = "d_analyzer"
- use_power(250)
+ use_power(linked_destroy.active_power_usage)
screen = 1.0
updateUsrDialog()
@@ -332,10 +332,10 @@ won't update every console in existence) but it's more of a hassle to do. Also,
being_built = D
break
if(being_built)
- var/power = 2000
+ var/power = linked_lathe.active_power_usage
for(var/M in being_built.materials)
power += round(being_built.materials[M] / 5)
- power = max(2000, power)
+ power = max(linked_lathe.active_power_usage, power)
screen = 0.3
linked_lathe.busy = 1
flick("protolathe_n",linked_lathe)
@@ -386,10 +386,10 @@ won't update every console in existence) but it's more of a hassle to do. Also,
being_built = D
break
if(being_built)
- var/power = 2000
+ var/power = linked_imprinter.active_power_usage
for(var/M in being_built.materials)
power += round(being_built.materials[M] / 5)
- power = max(2000, power)
+ power = max(linked_imprinter.active_power_usage, power)
screen = 0.4
linked_imprinter.busy = 1
flick("circuit_imprinter_ani",linked_imprinter)