diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm index d86f1acaafe..9e7d56b9801 100644 --- a/code/defines/area/Space Station 13 areas.dm +++ b/code/defines/area/Space Station 13 areas.dm @@ -28,6 +28,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station mouse_opacity = 0 var/lightswitch = 1 + var/area_lights_luminosity = 9 //This gets assigned at area creation. It is used to determine how bright the lights in an area should be. At the time of writing the value that it gets assigned is rand(6,9) - only used for light tubes + var/eject = null var/requires_power = 1 diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 1a4b12b05d5..a91fcfd922c 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -31,6 +31,7 @@ sd_lighting = 0 // *DAL* else luminosity = 0 + area_lights_luminosity = rand(6,9) //sd_SetLuminosity(0) // *DAL* diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 81f1aadf063..63077189f53 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -74,13 +74,22 @@ /obj/machinery/light/New() ..() - switch(fitting) - if("tube") - brightness = rand(6,9) - if("bulb") - brightness = 3 - spawn(1) - update() + spawn(2) + switch(fitting) + if("tube") + if(src.loc && src.loc.loc && isarea(src.loc.loc)) + var/area/A = src.loc.loc + brightness = A.area_lights_luminosity + else + brightness = rand(6,9) + if(prob(10)) + broken(1) + if("bulb") + brightness = 3 + if(prob(25)) + broken(1) + spawn(1) + update() /obj/machinery/light/Del() var/area/A = get_area(src) @@ -307,16 +316,17 @@ // break the light and make sparks if was on -/obj/machinery/light/proc/broken() +/obj/machinery/light/proc/broken(var/skip_sound_and_sparks = 0) if(status == LIGHT_EMPTY) return - if(status == LIGHT_OK || status == LIGHT_BURNED) - playsound(src.loc, 'Glasshit.ogg', 75, 1) - if(on) - var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread - s.set_up(3, 1, src) - s.start() + if(!skip_sound_and_sparks) + if(status == LIGHT_OK || status == LIGHT_BURNED) + playsound(src.loc, 'Glasshit.ogg', 75, 1) + if(on) + var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread + s.set_up(3, 1, src) + s.start() status = LIGHT_BROKEN update()