From 7a41dfef268962564574e9961d9781a9ae4a351a Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 27 Sep 2018 07:17:39 -0500 Subject: [PATCH 1/3] Fire Alarms are visible in the dark --- code/game/machinery/firealarm.dm | 64 ++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 16 deletions(-) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index c3ce4c6a01..41a70af4e8 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -29,6 +29,10 @@ light_range = 7 light_color = "#ff3232" + var/timerid + var/flash_power = FLASH_LIGHT_POWER + var/flash_color = LIGHT_COLOR_HALOGEN + var/detecting = 1 var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone var/last_alarm = 0 @@ -57,32 +61,43 @@ /obj/machinery/firealarm/update_icon() cut_overlays() - + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) var/area/A = src.loc A = A.loc if(panel_open) icon_state = "fire_b[buildstage]" return - else + + if(stat & BROKEN) + icon_state = "firex" + return + + if(stat & NOPOWER) icon_state = "fire0" + return - if(stat & BROKEN) - icon_state = "firex" - return + if(is_station_level(z)) + add_overlay("overlay_[GLOB.security_level]") + SSvis_overlays.add_vis_overlay(src, icon, "overlay_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + if(GLOB.security_level == SEC_LEVEL_DELTA) + if(!timerid) + flash() + else if(GLOB.security_level <= SEC_LEVEL_RED) + if(timerid) + deltimer(timerid) + timerid = null + else + add_overlay("overlay_[SEC_LEVEL_GREEN]") + SSvis_overlays.add_vis_overlay(src, icon, "overlay_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - if(stat & NOPOWER) - return - if(is_station_level(z)) - add_overlay("overlay_[GLOB.security_level]") - else - add_overlay("overlay_[SEC_LEVEL_GREEN]") - - if(detecting) - add_overlay("overlay_[A.fire ? "fire" : "clear"]") - else - add_overlay("overlay_fire") + if(detecting) + add_overlay("overlay_[A.fire ? "fire" : "clear"]") + SSvis_overlays.add_vis_overlay(src, icon, "overlay_[A.fire ? "fire" : "clear"]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) + else + add_overlay("overlay_fire") + SSvis_overlays.add_vis_overlay(src, icon, "overlay_fire", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) /obj/machinery/firealarm/emp_act(severity) . = ..() @@ -114,12 +129,29 @@ var/area/A = get_area(src) A.firealert(src) playsound(src.loc, 'goon/sound/machinery/FireAlarm.ogg', 75) + if(timerid) + return + flash() + +/obj/machinery/firealarm/proc/flash() + if (!powered()) + return + if(!is_operational()) + return + + flash_lighting_fx(FLASH_LIGHT_RANGE, flash_power, flash_color) + if(!timerid) + timerid = addtimer(CALLBACK(src, .proc/flash, world.time), 30, TIMER_STOPPABLE | TIMER_LOOP) /obj/machinery/firealarm/proc/reset() if(!is_operational()) return var/area/A = get_area(src) A.firereset(src) + if(!timerid) + return + deltimer(timerid) + timerid = null /obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) From dec6fec1abf3a9490e55012f7b19fd1146dfb165 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 27 Sep 2018 15:37:07 -0500 Subject: [PATCH 2/3] Update firealarm.dm --- code/game/machinery/firealarm.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 41a70af4e8..0a2f10c1e7 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -141,7 +141,7 @@ flash_lighting_fx(FLASH_LIGHT_RANGE, flash_power, flash_color) if(!timerid) - timerid = addtimer(CALLBACK(src, .proc/flash, world.time), 30, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, .proc/flash, world.time), 30, TIMER_UNIQUE | TIMER_STOPPABLE | TIMER_LOOP) /obj/machinery/firealarm/proc/reset() if(!is_operational()) From 0bb40b3317cd2caa63610a730682e2f02797a107 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Fri, 28 Sep 2018 02:09:56 -0500 Subject: [PATCH 3/3] removes strobe effect --- code/game/machinery/firealarm.dm | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 0a2f10c1e7..8f0d56a49e 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -29,10 +29,6 @@ light_range = 7 light_color = "#ff3232" - var/timerid - var/flash_power = FLASH_LIGHT_POWER - var/flash_color = LIGHT_COLOR_HALOGEN - var/detecting = 1 var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone var/last_alarm = 0 @@ -80,18 +76,10 @@ if(is_station_level(z)) add_overlay("overlay_[GLOB.security_level]") SSvis_overlays.add_vis_overlay(src, icon, "overlay_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - if(GLOB.security_level == SEC_LEVEL_DELTA) - if(!timerid) - flash() - else if(GLOB.security_level <= SEC_LEVEL_RED) - if(timerid) - deltimer(timerid) - timerid = null else add_overlay("overlay_[SEC_LEVEL_GREEN]") SSvis_overlays.add_vis_overlay(src, icon, "overlay_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) - if(detecting) add_overlay("overlay_[A.fire ? "fire" : "clear"]") SSvis_overlays.add_vis_overlay(src, icon, "overlay_[A.fire ? "fire" : "clear"]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir) @@ -129,29 +117,12 @@ var/area/A = get_area(src) A.firealert(src) playsound(src.loc, 'goon/sound/machinery/FireAlarm.ogg', 75) - if(timerid) - return - flash() - -/obj/machinery/firealarm/proc/flash() - if (!powered()) - return - if(!is_operational()) - return - - flash_lighting_fx(FLASH_LIGHT_RANGE, flash_power, flash_color) - if(!timerid) - timerid = addtimer(CALLBACK(src, .proc/flash, world.time), 30, TIMER_UNIQUE | TIMER_STOPPABLE | TIMER_LOOP) /obj/machinery/firealarm/proc/reset() if(!is_operational()) return var/area/A = get_area(src) A.firereset(src) - if(!timerid) - return - deltimer(timerid) - timerid = null /obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)