diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index 2a2d7e46581..122867b4718 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -18,8 +18,6 @@ var/base_state = "tube" ///Is the light on? var/on = FALSE - ///compared to the var/on for static calculations - var/on_gs = FALSE ///Amount of power used var/static_power_used = 0 ///Luminosity when on, also used in power calculation @@ -66,6 +64,8 @@ var/bulb_emergency_pow_mul = 0.75 ///The minimum value for the light's power in emergency mode var/bulb_emergency_pow_min = 0.5 + ///Power usage - W per unit of luminosity + var/power_consumption_rate = 20 /obj/machinery/light/Move() if(status != LIGHT_BROKEN) @@ -202,17 +202,25 @@ use_power = IDLE_POWER_USE set_light(l_range = 0) update_appearance() - - if(on != on_gs) - on_gs = on - if(on) - static_power_used = brightness * 20 //20W per unit luminosity - addStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) - else - removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) - + update_current_power_usage() broken_sparks(start_only=TRUE) +/obj/machinery/light/update_current_power_usage() + if(!on && static_power_used > 0) //Light is off but still powered + removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) + static_power_used = 0 + else if(on) //Light is on, just recalculate usage + var/static_power_used_new = 0 + var/area/local_area = get_area(src) + if (nightshift_enabled && !local_area?.fire) + static_power_used_new = nightshift_brightness * nightshift_light_power * power_consumption_rate + else + static_power_used_new = brightness * bulb_power * power_consumption_rate + if(static_power_used != static_power_used_new) //Consumption changed - update + removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) + static_power_used = static_power_used_new + addStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) + /obj/machinery/light/update_atom_colour() ..() update() diff --git a/tgui/packages/tgui/interfaces/Apc.js b/tgui/packages/tgui/interfaces/Apc.js index 1bcf7956ea7..4a2752daf72 100644 --- a/tgui/packages/tgui/interfaces/Apc.js +++ b/tgui/packages/tgui/interfaces/Apc.js @@ -187,6 +187,7 @@ const ApcContent = (props, context) => { label="Cover Lock" buttons={(