From 02b06cce3970800b0600feb5d048132456353b4b Mon Sep 17 00:00:00 2001
From: Errant <35878406+dmnct@users.noreply.github.com>
Date: Fri, 4 Aug 2023 22:40:41 +0000
Subject: [PATCH] Reduce gas and jetpack capacity (#18288)
Emergency tank: 4 minutes (down from 12)
Extended Etank: 9 minutes (down from 37)
Double Etank : 15 minutes (down from 62)
Full tank : 31 minutes (down from 94)
This will make it so EVA crews actually need to watch their pressure if they spend significant time outside the station, and/or have a canister in their general vicinity.
Emergency tanks can no longer be used on timescales that far exceed escaping an emergency situation, but will probably be insufficient in extended emergencies, where access to canisters will now be much more important. How well this works in practice will have to be carefully watched.
---
Content.Shared/Atmos/Atmospherics.cs | 2 +-
.../PneumaticCannonComponent.cs | 2 +-
.../Catalog/Fills/Items/gas_tanks.yml | 156 +++++++++---------
.../Entities/Objects/Tools/gas_tanks.yml | 34 ++--
.../Entities/Objects/Tools/jetpacks.yml | 49 +++---
5 files changed, 128 insertions(+), 115 deletions(-)
diff --git a/Content.Shared/Atmos/Atmospherics.cs b/Content.Shared/Atmos/Atmospherics.cs
index 4afc1fdb5f..e0cea00151 100644
--- a/Content.Shared/Atmos/Atmospherics.cs
+++ b/Content.Shared/Atmos/Atmospherics.cs
@@ -198,7 +198,7 @@ namespace Content.Shared.Atmos
///
/// This is calculated to help prevent singlecap bombs (Overpowered tritium/oxygen single tank bombs)
///
- public const float MinimumTritiumOxyburnEnergy = 430000f;
+ public const float MinimumTritiumOxyburnEnergy = 143000f;
public const float TritiumBurnOxyFactor = 100f;
public const float TritiumBurnTritFactor = 10f;
diff --git a/Content.Shared/PneumaticCannon/PneumaticCannonComponent.cs b/Content.Shared/PneumaticCannon/PneumaticCannonComponent.cs
index 45f6c077eb..b5956561b3 100644
--- a/Content.Shared/PneumaticCannon/PneumaticCannonComponent.cs
+++ b/Content.Shared/PneumaticCannon/PneumaticCannonComponent.cs
@@ -30,7 +30,7 @@ public sealed class PneumaticCannonComponent : Component
///
[DataField("gasUsage")]
[ViewVariables(VVAccess.ReadWrite)]
- public float GasUsage = 2f;
+ public float GasUsage = 0.142f;
///
/// Base projectile speed at default power.
diff --git a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml
index 01feb3f836..e013fb3710 100644
--- a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml
+++ b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml
@@ -28,10 +28,10 @@
- type: GasTank
outputPressure: 21.3
air:
- # 94 minutes
- volume: 15
+ # 31 minutes
+ volume: 5
moles:
- - 6.154137219 # oxygen
+ - 2.051379050 # oxygen
temperature: 293.15
- type: entity
@@ -45,58 +45,58 @@
parent: EmergencyOxygenTank
suffix: Filled
components:
- - type: GasTank
- outputPressure: 21.3
- air:
- # 13 minutes
- volume: 2
- moles:
- - 0.820551629 # oxygen
- temperature: 293.15
+ - type: GasTank
+ outputPressure: 21.3
+ air:
+ # 4 minutes
+ volume: 0.66
+ moles:
+ - 0.270782035 # oxygen
+ temperature: 293.15
- type: entity
id: ExtendedEmergencyOxygenTankFilled
parent: ExtendedEmergencyOxygenTank
suffix: Filled
components:
- - type: GasTank
- outputPressure: 21.3
- air:
- # 38 minutes
- volume: 6
- moles:
- - 2.461654887 # oxygen
- temperature: 293.15
+ - type: GasTank
+ outputPressure: 21.3
+ air:
+ # 9 minutes
+ volume: 1.5
+ moles:
+ - 0.615413715 # oxygen
+ temperature: 293.15
- type: entity
id: DoubleEmergencyOxygenTankFilled
parent: DoubleEmergencyOxygenTank
suffix: Filled
components:
- - type: GasTank
- outputPressure: 21.3
- air:
- # 63 minutes
- volume: 10
- moles:
- - 4.102758145 # oxygen
- temperature: 293.15
+ - type: GasTank
+ outputPressure: 21.3
+ air:
+ # 15 minutes
+ volume: 2.5
+ moles:
+ - 1.025689525 # oxygen
+ temperature: 293.15
- type: entity
id: AirTankFilled
parent: AirTank
suffix: Filled
components:
- - type: GasTank
- outputPressure: 101.3
- air:
- # 20 minutes due to output pressure
- volume: 15
- moles:
- - 1.353910188 # 22% oxygen
- - 4.800227031 # 78% nitrogen
- # 6.154137219 total
- temperature: 293.15
+ - type: GasTank
+ outputPressure: 101.3
+ air:
+ # 6 minutes due to output pressure
+ volume: 5
+ moles:
+ - 0.451303391 # 22% oxygen
+ - 1.600075659 # 78% nitrogen
+ # 2.051379050 total
+ temperature: 293.15
- type: entity
id: NitrogenTankFilled
@@ -104,15 +104,15 @@
suffix: Filled
name: nitrogen tank
components:
- - type: GasTank
- outputPressure: 21.3
- air:
- # 94 minutes
- volume: 15
- moles:
- - 0 # oxygen not included
- - 6.154137219 # nitrogen
- temperature: 293.15
+ - type: GasTank
+ outputPressure: 21.3
+ air:
+ # 31 minutes
+ volume: 5
+ moles:
+ - 0 # oxygen not included
+ - 2.051379050 # nitrogen
+ temperature: 293.15
- type: entity
id: NitrousOxideTankFilled
@@ -120,27 +120,27 @@
suffix: Filled
name: nitrous oxide tank
components:
- - type: GasTank
- # 0.21 | % oxygen in normal atmosphere
- # / 0.7 | % oxygen in this mixture
- # * 101.325 | one atmosphere
- # __________
- # 30.3975 optimal output pressure
- outputPressure: 30.4
- air:
- # only 66 minutes due to pressure
- volume: 15
- moles:
- - 4.30789605 # 70% oxygen
- - 0 # nitrogen
- - 0 # CO2
- - 0 # plasma
- - 0 # tritium
- - 0 # water vapor
- - 0 # miasma
- - 1.84624116 # 30% N2O
- # 6.15413721 total
- temperature: 293.15
+ - type: GasTank
+ # 0.21 | % oxygen in normal atmosphere
+ # / 0.7 | % oxygen in this mixture
+ # * 101.325 | one atmosphere
+ # __________
+ # 30.3975 optimal output pressure
+ outputPressure: 30.4
+ air:
+ # only 22 minutes due to pressure
+ volume: 5
+ moles:
+ - 1.435965335 # 70% oxygen
+ - 0 # nitrogen
+ - 0 # CO2
+ - 0 # plasma
+ - 0 # tritium
+ - 0 # water vapor
+ - 0 # miasma
+ - 0.615413715 # 30% N2O
+ # 2.051379050 total
+ temperature: 293.15
- type: entity
id: PlasmaTankFilled
@@ -148,14 +148,14 @@
name: plasma tank
suffix: Filled
components:
- - type: GasTank
- outputPressure: 101.3
- air:
- # 20 minutes of agony
- volume: 15
- moles:
- - 0 # oxygen
- - 0 # nitrogen
- - 0 # CO2
- - 6.154137219 # plasma
- temperature: 293.15
+ - type: GasTank
+ outputPressure: 101.3
+ air:
+ # 6 minutes of agony
+ volume: 5
+ moles:
+ - 0 # oxygen
+ - 0 # nitrogen
+ - 0 # CO2
+ - 2.051379050 # plasma
+ temperature: 293.15
diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
index 7c0c1a2448..7b544f77f3 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml
@@ -32,6 +32,12 @@
state: internal1
event: !type:ToggleActionEvent
useDelay: 1
+ outputPressure: 21.3
+ air:
+ # If gas tank volume is changed, adjust MinimumTritiumOxyburnEnergy in Atmospherics.cs by the same proportions
+ volume: 5
+ temperature: 293.15
+ tankLowPressure: 30.0
- type: Explosive
explosionType: Default
maxIntensity: 20
@@ -56,12 +62,8 @@
sprite: Objects/Tanks/oxygen.rsi
- type: Item
sprite: Objects/Tanks/oxygen.rsi
- - type: GasTank
- outputPressure: 21.3
- air:
- volume: 15
- temperature: 293.15
- tankLowPressure: 30.0
+ - type: Clothing
+ sprite: Objects/Tanks/oxygen.rsi
- type: entity
parent: OxygenTank
@@ -77,7 +79,7 @@
sprite: Objects/Tanks/yellow.rsi
- type: entity
- parent: OxygenTank
+ parent: GasTankBase
id: NitrogenTank
name: nitrogen tank
description: A standard cylindrical gas tank for nitrogen.
@@ -90,7 +92,7 @@
sprite: Objects/Tanks/red.rsi
- type: entity
- parent: OxygenTank
+ parent: GasTankBase
id: EmergencyOxygenTank
name: emergency oxygen tank
description: An easily portable tank for emergencies. Contains very little oxygen, rated for survival use only.
@@ -103,7 +105,7 @@
- type: GasTank
outputPressure: 21.3
air:
- volume: 2
+ volume: 0.66
temperature: 293.15
- type: Clothing
sprite: Objects/Tanks/emergency.rsi
@@ -132,7 +134,7 @@
- type: GasTank
outputPressure: 21.3
air:
- volume: 6
+ volume: 1.5
temperature: 293.15
- type: Clothing
sprite: Objects/Tanks/emergency_yellow.rsi
@@ -150,7 +152,7 @@
- type: GasTank
outputPressure: 21.3
air:
- volume: 10
+ volume: 2.5
temperature: 293.15
- type: Clothing
sprite: Objects/Tanks/emergency_double.rsi
@@ -166,11 +168,15 @@
name: air tank
description: Mixed anyone?
components:
+ - type: Sprite
+ sprite: Objects/Tanks/generic.rsi
- type: GasTank
outputPressure: 101.3
air:
- volume: 15
+ volume: 5
temperature: 293.15
+ - type: Clothing
+ sprite: Objects/Tanks/generic.rsi
- type: entity
parent: GasTankBase
@@ -185,7 +191,7 @@
- type: GasTank
outputPressure: 30.4
air:
- volume: 15
+ volume: 5
temperature: 293.15
- type: Clothing
sprite: Objects/Tanks/anesthetic.rsi
@@ -203,7 +209,7 @@
- type: GasTank
outputPressure: 101.3
air:
- volume: 15
+ volume: 5
temperature: 293.15
- type: Clothing
sprite: Objects/Tanks/plasma.rsi
diff --git a/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml b/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml
index c7291c2513..dd2ca6f9c7 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml
@@ -47,11 +47,12 @@
slots:
- Back
- type: GasTank
- outputPressure: 21.27825
+ outputPressure: 21.3
air:
- volume: 70
+ volume: 5
temperature: 293.15
- type: Jetpack
+ moleUsage: 0.00085
toggleAction:
icon:
sprite: Objects/Tanks/Jetpacks/blue.rsi
@@ -91,11 +92,12 @@
- type: GasTank
outputPressure: 42.6
air:
- volume: 70
+ # 13 minutes of thrust
+ volume: 5
temperature: 293.15
moles:
- - 11.315
- - 11.315
+ - 1.025689525 # oxygen
+ - 1.025689525 # nitrogen
#Empty black
- type: entity
@@ -123,11 +125,12 @@
- type: GasTank
outputPressure: 42.6
air:
- volume: 70
+ # 13 minutes of thrust
+ volume: 5
temperature: 293.15
moles:
- - 11.315
- - 11.315
+ - 1.025689525 # oxygen
+ - 1.025689525 # nitrogen
#Empty captain
- type: entity
@@ -159,11 +162,12 @@
- type: GasTank
outputPressure: 42.6
air:
- volume: 70
+ # 13 minutes of thrust
+ volume: 5
temperature: 293.15
moles:
- - 11.315
- - 11.315
+ - 1.025689525 # oxygen
+ - 1.025689525 # nitrogen
#Empty mini
- type: entity
@@ -184,7 +188,7 @@
- type: GasTank
outputPressure: 42.6
air:
- volume: 20
+ volume: 1.5
# Filled mini
- type: entity
@@ -196,11 +200,12 @@
- type: GasTank
outputPressure: 42.6
air:
+ # 4 minutes of thrust
+ volume: 1.5
temperature: 293.15
- volume: 20
moles:
- - 0.747
- - 0.747
+ - 0.307706858 # oxygen
+ - 0.307706858 # nitrogen
#Empty security
- type: entity
@@ -228,11 +233,12 @@
- type: GasTank
outputPressure: 42.6
air:
- volume: 70
+ # 13 minutes thrust
+ volume: 5
temperature: 293.15
moles:
- - 11.315
- - 11.315
+ - 1.025689525 # oxygen
+ - 1.025689525 # nitrogen
#Empty void
- type: entity
@@ -261,8 +267,9 @@
- type: GasTank
outputPressure: 42.6
air:
- volume: 70
+ # 13 minutes of thrust
+ volume: 5
temperature: 293.15
moles:
- - 11.315
- - 11.315
+ - 1.025689525 # oxygen
+ - 1.025689525 # nitrogen