Alarm centralization completion

Ensures the master area is always used, to avoid issues caused by dynamic lightning which splits areas into sub-areas.
Power alarms now handled centrally.
This commit is contained in:
PsiOmega
2015-02-23 11:23:23 +01:00
parent 1c763ff2c9
commit 93b049e7a6
8 changed files with 30 additions and 47 deletions
+6 -11
View File
@@ -183,9 +183,6 @@
if(terminal)
disconnect_terminal()
//If there's no more APC then there shouldn't be a cause for alarm I guess
area.poweralert(1, src) //so that alarms don't go on forever
..()
/obj/machinery/power/apc/proc/make_terminal()
@@ -725,7 +722,7 @@
src.interact(user)
/obj/machinery/power/apc/attack_ghost(user as mob)
if(stat & (BROKEN|MAINT))
if(stat & (BROKEN|MAINT))
return
return ui_interact(user)
@@ -1164,29 +1161,27 @@
lighting = autoset(lighting, 1)
environ = autoset(environ, 1)
autoflag = 3
area.poweralert(1, src)
if(cell.charge >= 4000)
area.poweralert(1, src)
power_alarm.clearAlarm(loc, src)
else if((cell.percent() <= 30) && (cell.percent() > 15) && longtermpower < 0) // <30%, turn off equipment
if(autoflag != 2)
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 1)
environ = autoset(environ, 1)
area.poweralert(0, src)
power_alarm.triggerAlarm(loc, src)
autoflag = 2
else if(cell.percent() <= 15) // <15%, turn off lighting & equipment
if((autoflag > 1 && longtermpower < 0) || (autoflag > 1 && longtermpower >= 0))
equipment = autoset(equipment, 2)
lighting = autoset(lighting, 2)
environ = autoset(environ, 1)
area.poweralert(0, src)
power_alarm.triggerAlarm(loc, src)
autoflag = 1
else // zero charge, turn all off
if(autoflag != 0)
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
area.poweralert(0, src)
power_alarm.triggerAlarm(loc, src)
autoflag = 0
// now trickle-charge the cell
@@ -1233,7 +1228,7 @@
equipment = autoset(equipment, 0)
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
area.poweralert(0, src)
power_alarm.triggerAlarm(loc, src)
autoflag = 0
// update icon & area power if anything changed
@@ -1,4 +1,4 @@
/area/engineering/poweralert(var/state, var/source)
if (state != poweralm)
/area/engineering/power_alert(var/alarming)
if (alarming)
investigate_log("has a power alarm!","singulo")
..()