Ports my air alarm night lights
This commit is contained in:
@@ -56,6 +56,11 @@
|
||||
|
||||
#define AALARM_REPORT_TIMEOUT 100
|
||||
|
||||
#define AALARM_OVERLAY_OFF "alarm_off"
|
||||
#define AALARM_OVERLAY_GREEN "alarm_green"
|
||||
#define AALARM_OVERLAY_WARN "alarm_amber"
|
||||
#define AALARM_OVERLAY_DANGER "alarm_red"
|
||||
|
||||
/obj/machinery/airalarm
|
||||
name = "air alarm"
|
||||
desc = "A machine that monitors atmosphere levels. Goes off if the area is dangerous."
|
||||
@@ -78,6 +83,7 @@
|
||||
var/aidisabled = 0
|
||||
var/shorted = 0
|
||||
var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone
|
||||
var/brightness_on = 1
|
||||
|
||||
var/frequency = FREQ_ATMOS_CONTROL
|
||||
var/alarm_frequency = FREQ_ATMOS_ALARMS
|
||||
@@ -198,12 +204,11 @@
|
||||
panel_open = TRUE
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
|
||||
pixel_y = (dir & 3)? (dir == 1 ? -24 : 24) : 0
|
||||
update_icon()
|
||||
|
||||
if(name == initial(name))
|
||||
name = "[get_area_name(src)] Air Alarm"
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/airalarm/Destroy()
|
||||
SSradio.remove_object(src, frequency)
|
||||
qdel(wires)
|
||||
@@ -212,7 +217,11 @@
|
||||
|
||||
/obj/machinery/airalarm/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
return
|
||||
power_change()
|
||||
set_frequency(frequency)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/airalarm/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -619,6 +628,16 @@
|
||||
))
|
||||
|
||||
/obj/machinery/airalarm/update_icon()
|
||||
set_light(0)
|
||||
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
||||
if(stat & NOPOWER)
|
||||
icon_state = "alarm0"
|
||||
return
|
||||
|
||||
if(stat & BROKEN)
|
||||
icon_state = "alarmx"
|
||||
return
|
||||
|
||||
if(panel_open)
|
||||
switch(buildstage)
|
||||
if(2)
|
||||
@@ -629,22 +648,29 @@
|
||||
icon_state = "alarm_b1"
|
||||
return
|
||||
|
||||
if((stat & (NOPOWER|BROKEN)) || shorted)
|
||||
icon_state = "alarmp"
|
||||
return
|
||||
|
||||
icon_state = "alarm1"
|
||||
var/overlay_state = AALARM_OVERLAY_OFF
|
||||
var/area/A = get_area(src)
|
||||
switch(max(danger_level, A.atmosalm))
|
||||
if(0)
|
||||
icon_state = "alarm0"
|
||||
overlay_state = AALARM_OVERLAY_GREEN
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
set_light(brightness_on)
|
||||
if(1)
|
||||
icon_state = "alarm2" //yes, alarm2 is yellow alarm
|
||||
overlay_state = AALARM_OVERLAY_WARN
|
||||
light_color = LIGHT_COLOR_LAVA
|
||||
set_light(brightness_on)
|
||||
if(2)
|
||||
icon_state = "alarm1"
|
||||
overlay_state = AALARM_OVERLAY_DANGER
|
||||
light_color = LIGHT_COLOR_RED
|
||||
set_light(brightness_on)
|
||||
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
update_light()
|
||||
|
||||
/obj/machinery/airalarm/process()
|
||||
if((stat & (NOPOWER|BROKEN)) || shorted)
|
||||
return
|
||||
return FALSE
|
||||
|
||||
var/turf/location = get_turf(src)
|
||||
if(!location)
|
||||
@@ -681,6 +707,8 @@
|
||||
mode = AALARM_MODE_SCRUBBING
|
||||
apply_mode()
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/machinery/airalarm/proc/post_alert(alert_level)
|
||||
var/datum/radio_frequency/frequency = SSradio.return_frequency(alarm_frequency)
|
||||
@@ -816,7 +844,12 @@
|
||||
|
||||
/obj/machinery/airalarm/power_change()
|
||||
..()
|
||||
if(stat & NOPOWER)
|
||||
set_light(0)
|
||||
else
|
||||
set_light(brightness_on)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/machinery/airalarm/emag_act(mob/user)
|
||||
if(obj_flags & EMAGGED)
|
||||
@@ -826,8 +859,12 @@
|
||||
playsound(src, "sparks", 50, 1)
|
||||
|
||||
/obj/machinery/airalarm/obj_break(damage_flag)
|
||||
..()
|
||||
update_icon()
|
||||
if(circuit && !(flags_1 & NODECONSTRUCT_1)) //no circuit, no breaking
|
||||
if(!(stat & BROKEN))
|
||||
playsound(loc, 'sound/effects/glassbr3.ogg', 100, 1)
|
||||
stat |= BROKEN
|
||||
update_icon()
|
||||
set_light(0)
|
||||
|
||||
/obj/machinery/airalarm/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
|
||||
Reference in New Issue
Block a user