Fix lungs having negative moles in gas mixtures

This commit is contained in:
Vera Aguilera Puerto
2020-12-01 10:39:12 +01:00
parent c448a936ef
commit 602f37e70c

View File

@@ -76,21 +76,7 @@ namespace Content.Server.GameObjects.Components.Body.Behavior
public void Transfer(GasMixture from, GasMixture to, float ratio)
{
var removed = from.RemoveRatio(ratio);
var toOld = to.Gases.ToArray();
to.Merge(removed);
for (var gas = 0; gas < Atmospherics.TotalNumberOfGases; gas++)
{
var newAmount = to.GetMoles(gas);
var oldAmount = toOld[gas];
var delta = newAmount - oldAmount;
removed.AdjustMoles(gas, -delta);
}
from.Merge(removed);
to.Merge(from.RemoveRatio(ratio));
}
public void ToBloodstream(GasMixture mixture)
@@ -204,20 +190,7 @@ namespace Content.Server.GameObjects.Components.Body.Behavior
bloodstream.PumpToxins(Air);
var lungRemoved = Air.RemoveRatio(0.5f);
var toOld = to.Gases.ToArray();
to.Merge(lungRemoved);
for (var gas = 0; gas < Atmospherics.TotalNumberOfGases; gas++)
{
var newAmount = to.GetMoles(gas);
var oldAmount = toOld[gas];
var delta = newAmount - oldAmount;
lungRemoved.AdjustMoles(gas, -delta);
}
Air.Merge(lungRemoved);
}
}