mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
Add fire alarm functionality to air alarms (#31970)
* Add fire alarm functionality to air alarms * prettier
This commit is contained in:
+11
-8
@@ -341,10 +341,7 @@
|
||||
if(!fire)
|
||||
set_fire_alarm_effect()
|
||||
ModifyFiredoors(FALSE)
|
||||
for(var/item in firealarms)
|
||||
var/obj/machinery/firealarm/F = item
|
||||
F.update_icon()
|
||||
GLOB.firealarm_soundloop.start(F)
|
||||
start_alarm_sounds()
|
||||
if(!firealarm_sound_stop_timer)
|
||||
firealarm_sound_stop_timer = addtimer(CALLBACK(src, PROC_REF(stop_alarm_sounds)), 4 MINUTES, TIMER_STOPPABLE | TIMER_UNIQUE)
|
||||
|
||||
@@ -357,10 +354,19 @@
|
||||
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/area/proc/start_alarm_sounds()
|
||||
for(var/obj/machinery/firealarm/F in firealarms)
|
||||
F.update_icon()
|
||||
GLOB.firealarm_soundloop.start(F)
|
||||
for(var/obj/machinery/alarm/A in air_alarms)
|
||||
GLOB.firealarm_soundloop.start(A)
|
||||
|
||||
/area/proc/stop_alarm_sounds()
|
||||
for(var/obj/machinery/firealarm/F in firealarms)
|
||||
F.update_icon()
|
||||
GLOB.firealarm_soundloop.stop(F)
|
||||
for(var/obj/machinery/alarm/A in air_alarms)
|
||||
GLOB.firealarm_soundloop.stop(A)
|
||||
/**
|
||||
* Reset the firealarm alert for this area
|
||||
*
|
||||
@@ -376,10 +382,7 @@
|
||||
if(firealarm_sound_stop_timer)
|
||||
deltimer(firealarm_sound_stop_timer)
|
||||
firealarm_sound_stop_timer = null
|
||||
for(var/item in firealarms)
|
||||
var/obj/machinery/firealarm/F = item
|
||||
F.update_icon()
|
||||
GLOB.firealarm_soundloop.stop(F, TRUE)
|
||||
stop_alarm_sounds()
|
||||
|
||||
for(var/thing in cameras)
|
||||
var/obj/machinery/camera/C = locateUID(thing)
|
||||
|
||||
@@ -706,6 +706,9 @@ GLOBAL_LIST_INIT(aalarm_modes, list(
|
||||
data["alarmActivated"] = alarmActivated || danger_level == ATMOS_ALARM_DANGER
|
||||
data["thresholds"] = generate_thresholds_menu()
|
||||
|
||||
var/area/area_loc = get_area(src)
|
||||
data["fireAlarmActivated"] = area_loc.fire
|
||||
|
||||
// Locked when:
|
||||
// Not sent from atmos console AND
|
||||
// Not silicon AND locked.
|
||||
@@ -891,6 +894,12 @@ GLOBAL_LIST_INIT(aalarm_modes, list(
|
||||
if(RCON_YES)
|
||||
rcon_setting = RCON_YES
|
||||
|
||||
if("set_fire_alarm")
|
||||
var/area/area_loc = get_area(src)
|
||||
if(area_loc.fire)
|
||||
area_loc.firereset(src)
|
||||
else
|
||||
area_loc.firealert(src)
|
||||
|
||||
if("command")
|
||||
if(!is_authenticated(usr, active_ui))
|
||||
|
||||
@@ -48,7 +48,7 @@ const Danger2Colour = (danger) => {
|
||||
|
||||
const AirStatus = (props) => {
|
||||
const { act, data } = useBackend();
|
||||
const { air, mode, atmos_alarm, locked, alarmActivated, rcon, target_temp } = data;
|
||||
const { air, mode, atmos_alarm, locked, alarmActivated, fireAlarmActivated, rcon, target_temp } = data;
|
||||
|
||||
let areaStatus;
|
||||
if (air.danger.overall === 0) {
|
||||
@@ -162,6 +162,15 @@ const AirStatus = (props) => {
|
||||
)}
|
||||
</Box>
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Fire Alarm Status">
|
||||
{!locked && (
|
||||
<Button
|
||||
content={fireAlarmActivated ? 'Reset Fire Alarm' : 'Activate Fire Alarm'}
|
||||
selected={fireAlarmActivated}
|
||||
onClick={() => act('set_fire_alarm')}
|
||||
/>
|
||||
)}
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Remote Control Settings">
|
||||
<Button content="Off" selected={rcon === 1} onClick={() => act('set_rcon', { rcon: 1 })} />
|
||||
<Button content="Auto" selected={rcon === 2} onClick={() => act('set_rcon', { rcon: 2 })} />
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user