diff --git a/Content.Server/Atmos/Components/GasTankComponent.cs b/Content.Server/Atmos/Components/GasTankComponent.cs
index 3b58794fd7..ddfa274357 100644
--- a/Content.Server/Atmos/Components/GasTankComponent.cs
+++ b/Content.Server/Atmos/Components/GasTankComponent.cs
@@ -8,9 +8,11 @@ namespace Content.Server.Atmos.Components
public sealed class GasTankComponent : Component, IGasMixtureHolder
{
public const float MaxExplosionRange = 14f;
+ private const float DefaultLowPressure = 0f;
private const float DefaultOutputPressure = Atmospherics.OneAtmosphere;
public int Integrity = 3;
+ public bool IsLowPressure => (Air?.Pressure ?? 0F) <= TankLowPressure;
[ViewVariables(VVAccess.ReadWrite), DataField("ruptureSound")]
public SoundSpecifier RuptureSound = new SoundPathSpecifier("/Audio/Effects/spray.ogg");
@@ -32,6 +34,13 @@ namespace Content.Server.Atmos.Components
[DataField("air")] [ViewVariables] public GasMixture Air { get; set; } = new();
+ ///
+ /// Pressure at which tank should be considered 'low' such as for internals.
+ ///
+ [DataField("tankLowPressure")]
+ [ViewVariables]
+ public float TankLowPressure { get; set; } = DefaultLowPressure;
+
///
/// Distributed pressure.
///
diff --git a/Content.Server/Body/Systems/InternalsSystem.cs b/Content.Server/Body/Systems/InternalsSystem.cs
index 17d88dd179..c7072717c1 100644
--- a/Content.Server/Body/Systems/InternalsSystem.cs
+++ b/Content.Server/Body/Systems/InternalsSystem.cs
@@ -208,10 +208,10 @@ public sealed class InternalsSystem : EntitySystem
{
if (component.BreathToolEntity == null || !AreInternalsWorking(component)) return 2;
- // What we are checking here is if there is more moles in tank than we need.
+ // If pressure in the tank is below low pressure threshhold, flash warning on internals UI
if (TryComp(component.GasTankEntity, out var gasTank)
- && (gasTank.OutputPressure * Atmospherics.BreathVolume / Atmospherics.R * gasTank.Air.Temperature) >= gasTank.Air.TotalMoles)
- return 0;
+ && gasTank.IsLowPressure)
+ return 0;
return 1;
}
diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
index f52e3b8434..6f30dc4748 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
@@ -1,4 +1,4 @@
-- type: entity
+- type: entity
abstract: true
parent: BaseItem
id: GasTankBase
@@ -44,6 +44,7 @@
air:
volume: 70
temperature: 293.15
+ tankLowPressure: 30.0
- type: Clothing
sprite: Objects/Tanks/oxygen.rsi
slots: