diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm
index 7e791e6adda..1d535f5dd9c 100644
--- a/code/ATMOSPHERICS/atmospherics.dm
+++ b/code/ATMOSPHERICS/atmospherics.dm
@@ -197,20 +197,20 @@ GLOBAL_DATUM_INIT(pipe_icon_manager, /datum/pipe_icon_manager, new())
//Called when an atmospherics object is unwrenched while having a large pressure difference
//with it's locs air contents.
-/obj/machinery/atmospherics/proc/unsafe_pressure_release(var/mob/user,var/pressures)
+/obj/machinery/atmospherics/proc/unsafe_pressure_release(mob/user, pressures)
if(!user)
return
if(!pressures)
var/datum/gas_mixture/int_air = return_air()
var/datum/gas_mixture/env_air = loc.return_air()
- pressures = int_air.return_pressure()-env_air.return_pressure()
+ pressures = int_air.return_pressure() - env_air.return_pressure()
- var/fuck_you_dir = get_dir(src,user)
- var/turf/general_direction = get_edge_target_turf(user,fuck_you_dir)
+ var/fuck_you_dir = get_dir(src, user)
+ var/turf/general_direction = get_edge_target_turf(user, fuck_you_dir)
user.visible_message("[user] is sent flying by pressure!","The pressure sends you flying!")
//Values based on 2*ONE_ATMOS (the unsafe pressure), resulting in 20 range and 4 speed
- user.throw_at(general_direction,pressures/10,pressures/50)
+ user.throw_at(general_direction, pressures/10, pressures/50)
/obj/machinery/atmospherics/deconstruct(disassembled = TRUE)
if(can_deconstruct)
diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
index 736137e7b55..60e0448dfbd 100644
--- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm
@@ -38,6 +38,7 @@
var/pressure_checks_default = PRESSURE_CHECKS
var/welded = 0 // Added for aliens -- TLE
+ var/weld_burst_pressure = 50 * ONE_ATMOSPHERE //the (internal) pressure at which welded covers will burst off
var/frequency = ATMOS_VENTSCRUB
var/datum/radio_frequency/radio_connection
@@ -78,7 +79,7 @@
..()
air_contents.volume = 1000
-/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
+/obj/machinery/atmospherics/unary/vent_pump/update_icon(safety = 0)
..()
plane = FLOOR_PLANE
@@ -137,6 +138,12 @@
return 0
if(welded)
+ if(air_contents.return_pressure() >= weld_burst_pressure && prob(5)) //the weld is on but the cover is welded shut, can it withstand the internal pressure?
+ visible_message("The welded cover of [src] bursts open!")
+ for(var/mob/M in range(1, src))
+ unsafe_pressure_release(M, air_contents.return_pressure()) //let's send everyone flying
+ welded = FALSE
+ update_icon()
return 0
var/datum/gas_mixture/environment = loc.return_air()