Frezon reaction requires 50:1 Oxy:Trit ratio (#16295)
This commit is contained in:
@@ -20,14 +20,18 @@ public sealed class FrezonProductionReaction : IGasReactionEffect
|
||||
var efficiency = mixture.Temperature / Atmospherics.FrezonProductionMaxEfficiencyTemperature;
|
||||
var loss = 1 - efficiency;
|
||||
|
||||
// How much the catalyst (N2) will allow us to produce
|
||||
// Less N2 is required the more efficient it is.
|
||||
var minimumN2 = (initialOxy + initialTrit) / (Atmospherics.FrezonProductionNitrogenRatio * efficiency);
|
||||
var catalystLimit = initialN2 * (Atmospherics.FrezonProductionNitrogenRatio / efficiency);
|
||||
var oxyLimit = Math.Min(initialOxy, catalystLimit) / Atmospherics.FrezonProductionTritRatio;
|
||||
|
||||
if (initialN2 < minimumN2)
|
||||
return ReactionResult.NoReaction;
|
||||
// Amount of tritium & oxygen that are reacting
|
||||
var tritBurned = Math.Min(oxyLimit, initialTrit);
|
||||
var oxyBurned = tritBurned * Atmospherics.FrezonProductionTritRatio;
|
||||
var burnRatio = tritBurned / initialTrit;
|
||||
|
||||
var oxyConversion = initialOxy / Atmospherics.FrezonProductionConversionRate;
|
||||
var tritConversion = initialTrit / Atmospherics.FrezonProductionConversionRate;
|
||||
var oxyConversion = oxyBurned / Atmospherics.FrezonProductionConversionRate;
|
||||
var tritConversion = tritBurned / Atmospherics.FrezonProductionConversionRate;
|
||||
var total = oxyConversion + tritConversion;
|
||||
|
||||
mixture.AdjustMoles(Gas.Oxygen, -oxyConversion);
|
||||
|
||||
@@ -225,6 +225,14 @@ namespace Content.Shared.Atmos
|
||||
/// </summary>
|
||||
public const float FrezonProductionNitrogenRatio = 10f;
|
||||
|
||||
/// <summary>
|
||||
/// 1 mol of Tritium is required per X mol of oxygen.
|
||||
/// </summary>
|
||||
public const float FrezonProductionTritRatio = 50.0f;
|
||||
|
||||
/// <summary>
|
||||
/// 1 / X of the tritium is converted into Frezon each tick
|
||||
/// </summary>
|
||||
public const float FrezonProductionConversionRate = 50f;
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user