]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix tritium fires breaking conservation of mass (#41870)
authorSarah C <93578146+SapphicOverload@users.noreply.github.com>
Tue, 13 Jan 2026 22:16:09 +0000 (17:16 -0500)
committerGitHub <noreply@github.com>
Tue, 13 Jan 2026 22:16:09 +0000 (22:16 +0000)
* i can't believe this went unnoticed for so long

* i may be stupid

Content.Server/Atmos/Reactions/TritiumFireReaction.cs
Content.Shared/Atmos/Atmospherics.cs

index 8b7d4e4872eaabd672e46dd0702eada5ed07c532..45443b5a86d5d8a15fe001d9415c64c5f5f5a268 100644 (file)
@@ -27,12 +27,13 @@ namespace Content.Server.Atmos.Reactions
                     burnedFuel = initialTrit;
 
                 mixture.AdjustMoles(Gas.Tritium, -burnedFuel);
+                mixture.AdjustMoles(Gas.Oxygen, -burnedFuel / Atmospherics.TritiumBurnFuelRatio);
             }
             else
             {
-                burnedFuel = initialTrit;
-                mixture.SetMoles(Gas.Tritium, mixture.GetMoles(Gas.Tritium ) * (1 - 1 / Atmospherics.TritiumBurnTritFactor));
-                mixture.AdjustMoles(Gas.Oxygen, -mixture.GetMoles(Gas.Tritium));
+                burnedFuel = Math.Max(initialTrit, mixture.GetMoles(Gas.Oxygen) / Atmospherics.TritiumBurnFuelRatio) / Atmospherics.TritiumBurnTritFactor;
+                mixture.AdjustMoles(Gas.Tritium, -burnedFuel);
+                mixture.AdjustMoles(Gas.Oxygen, -burnedFuel / Atmospherics.TritiumBurnFuelRatio);
                 energyReleased += (Atmospherics.FireHydrogenEnergyReleased * burnedFuel * (Atmospherics.TritiumBurnTritFactor - 1));
             }
 
index 80ad36e904a3b1ad1c3dc7c0f7f832a6be3673cb..7b9b106c54d10d429717b2c524d8ad891e58bb23 100644 (file)
@@ -240,6 +240,7 @@ namespace Content.Shared.Atmos
 
         public const float TritiumBurnOxyFactor = 100f;
         public const float TritiumBurnTritFactor = 10f;
+        public const float TritiumBurnFuelRatio = 2f;
 
         public const float FrezonCoolLowerTemperature = 23.15f;