From 781a414c38ca902eb393cba6cd2edfd6f77aaa27 Mon Sep 17 00:00:00 2001 From: qweq12yt Date: Wed, 15 Sep 2021 18:16:04 -0300 Subject: [PATCH] fix space heaters --- code/game/machinery/spaceheater.dm | 8 +++++--- code/modules/power/cell.dm | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 0a529cd395..17e58f2a49 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -6,6 +6,7 @@ anchored = FALSE density = TRUE interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN + use_power = NO_POWER_USE icon = 'icons/obj/atmos.dmi' icon_state = "sheater-off" name = "space heater" @@ -72,7 +73,7 @@ on = FALSE return PROCESS_KILL - if(cell && cell.charge > 0) + if(cell && cell.charge > 1 / efficiency) var/turf/L = loc PerformHeating(L) @@ -112,7 +113,9 @@ var/requiredPower = abs(env.return_temperature() - targetTemperature) * heat_capacity requiredPower = min(requiredPower, heatingPower) - if(requiredPower < 1) + if(requiredPower < 1 || !cell.use(requiredPower / efficiency)) + on = FALSE + update_icon() return var/deltaTemperature = requiredPower / heat_capacity @@ -121,7 +124,6 @@ if(deltaTemperature) env.set_temperature(env.return_temperature() + deltaTemperature) air_update_turf() - cell.use(requiredPower / efficiency) /obj/machinery/space_heater/RefreshParts() var/laser = 2 diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index a0509fbd41..0af16013ec 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -79,7 +79,7 @@ return 0 if(charge < amount) return 0 - charge = (charge - amount) + charge -= amount if(!istype(loc, /obj/machinery/power/apc)) SSblackbox.record_feedback("tally", "cell_used", 1, type) return 1