diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index d8d1f46ad9b..18e8404cb3c 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -45,6 +45,8 @@ continue if(C.cell) C.cell.charge = 0 + for(var/obj/machinery/power/P in GLOB.machines) + P.malfunction = TRUE /proc/power_restore(var/announce = 1) var/list/skipped_areas = list(/area/turret_protected/ai) @@ -67,6 +69,8 @@ S.input_attempt = S.last_input_attempt S.update_icon() S.power_change() + for(var/obj/machinery/power/P in GLOB.machines) + P.malfunction = FALSE /proc/power_restore_quick(var/announce = 1) if(announce) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 33741d1475b..0ee03a2b272 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -15,6 +15,7 @@ use_power = NO_POWER_USE idle_power_usage = 0 active_power_usage = 0 + var/malfunction = FALSE /obj/machinery/power/Destroy() disconnect_from_network() @@ -30,7 +31,7 @@ // Non-machines should use add_delayedload(), delayed_surplus(), newavail() /obj/machinery/power/proc/add_avail(amount) - if(powernet) + if(powernet && !malfunction) powernet.newavail += amount return TRUE else