diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 2313d9c71d..f924a3bc0a 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -535,7 +535,7 @@ for(var/device_id in A.air_scrub_names) send_signal(device_id, list( "power" = 1, - "set_filters" = list(GAS_CO2, GAS_MIASMA), + "set_filters" = list(GAS_CO2, GAS_MIASMA, GAS_GROUP_CHEMICALS), "scrubbing" = 1, "widenet" = 0, )) @@ -562,7 +562,8 @@ GAS_STIMULUM, GAS_PLUOXIUM, GAS_METHANE, - GAS_METHYL_BROMIDE + GAS_METHYL_BROMIDE, + GAS_GROUP_CHEMICALS ), "scrubbing" = 1, "widenet" = 1, @@ -582,9 +583,16 @@ )) for(var/device_id in A.air_vent_names) send_signal(device_id, list( + "is_pressurizing" = 1, "power" = 1, "checks" = 1, - "set_external_pressure" = ONE_ATMOSPHERE*2 + "set_external_pressure" = ONE_ATMOSPHERE*1.4 + )) + send_signal(device_id, list( + "is_siphoning" = 1, + "power" = 1, + "checks" = 1, + "set_external_pressure" = ONE_ATMOSPHERE/1.4 )) if(AALARM_MODE_REFILL) for(var/device_id in A.air_scrub_names) @@ -596,10 +604,15 @@ )) for(var/device_id in A.air_vent_names) send_signal(device_id, list( + "is_pressurizing" = 1, "power" = 1, "checks" = 1, "set_external_pressure" = ONE_ATMOSPHERE * 3 )) + send_signal(device_id, list( + "is_siphoning" = 1, + "power" = 0, + )) if(AALARM_MODE_PANIC, AALARM_MODE_REPLACEMENT) for(var/device_id in A.air_scrub_names) @@ -610,8 +623,14 @@ )) for(var/device_id in A.air_vent_names) send_signal(device_id, list( + "is_pressurizing" = 1, "power" = 0 )) + send_signal(device_id, list( + "is_siphoning" = 1, + "power" = 1, + "checks" = 0 + )) if(AALARM_MODE_SIPHON) for(var/device_id in A.air_scrub_names) send_signal(device_id, list( @@ -621,9 +640,14 @@ )) for(var/device_id in A.air_vent_names) send_signal(device_id, list( + "is_pressurizing" = 1, "power" = 0 )) - + send_signal(device_id, list( + "is_siphoning" = 1, + "power" = 1, + "checks" = 0 + )) if(AALARM_MODE_OFF) for(var/device_id in A.air_scrub_names) send_signal(device_id, list( @@ -641,8 +665,12 @@ for(var/device_id in A.air_vent_names) send_signal(device_id, list( "power" = 1, - "checks" = 2, - "set_internal_pressure" = 0 + "checks" = 0, + "is_pressurizing" = 1 + )) + send_signal(device_id, list( + "power" = 0, + "is_siphoning" = 1 )) /obj/machinery/airalarm/update_icon_state() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index a3644ed084..deafe7a9f0 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -178,6 +178,9 @@ var/mob/signal_sender = signal.data["user"] + if((("is_siphoning" in signal.data) && pump_direction == RELEASING) || (("is_pressurizing" in signal.data) && pump_direction == SIPHONING)) + return + if("purge" in signal.data) pressure_checks &= ~EXT_BOUND pump_direction = SIPHONING