Generalize ReagentUnit into FixedPoint2 and use it for damage calculations (#5151)

* Damage units

* sum ext method
This commit is contained in:
mirrorcult
2021-11-03 16:48:03 -07:00
committed by GitHub
parent 8165d8f38c
commit 3ab4a30a0f
100 changed files with 730 additions and 601 deletions

View File

@@ -6,6 +6,7 @@ using Content.Server.Chemistry.EntitySystems;
using Content.Shared.Body.Networks;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.FixedPoint;
using Content.Shared.Interaction;
using Content.Shared.Interaction.Helpers;
using Content.Shared.Popups;
@@ -41,14 +42,14 @@ namespace Content.Server.Chemistry.Components
/// </summary>
[ViewVariables]
[DataField("transferAmount")]
private ReagentUnit _transferAmount = ReagentUnit.New(5);
private FixedPoint2 _transferAmount = FixedPoint2.New(5);
/// <summary>
/// Initial storage volume of the injector
/// </summary>
[ViewVariables]
[DataField("initialMaxVolume")]
private ReagentUnit _initialMaxVolume = ReagentUnit.New(15);
private FixedPoint2 _initialMaxVolume = FixedPoint2.New(15);
private InjectorToggleMode _toggleState;
@@ -180,7 +181,7 @@ namespace Content.Server.Chemistry.Components
return;
// Get transfer amount. May be smaller than _transferAmount if not enough room
var realTransferAmount = ReagentUnit.Min(_transferAmount, targetBloodstream.EmptyVolume);
var realTransferAmount = FixedPoint2.Min(_transferAmount, targetBloodstream.EmptyVolume);
if (realTransferAmount <= 0)
{
@@ -223,7 +224,7 @@ namespace Content.Server.Chemistry.Components
}
// Get transfer amount. May be smaller than _transferAmount if not enough room
var realTransferAmount = ReagentUnit.Min(_transferAmount, targetSolution.AvailableVolume);
var realTransferAmount = FixedPoint2.Min(_transferAmount, targetSolution.AvailableVolume);
if (realTransferAmount <= 0)
{
@@ -285,7 +286,7 @@ namespace Content.Server.Chemistry.Components
}
// Get transfer amount. May be smaller than _transferAmount if not enough room
var realTransferAmount = ReagentUnit.Min(_transferAmount, targetSolution.DrawAvailable);
var realTransferAmount = FixedPoint2.Min(_transferAmount, targetSolution.DrawAvailable);
if (realTransferAmount <= 0)
{
@@ -317,8 +318,8 @@ namespace Content.Server.Chemistry.Components
Owner.EntityManager.EntitySysManager.GetEntitySystem<SolutionContainerSystem>()
.TryGetSolution(Owner.Uid, SolutionName, out var solution);
var currentVolume = solution?.CurrentVolume ?? ReagentUnit.Zero;
var maxVolume = solution?.MaxVolume ?? ReagentUnit.Zero;
var currentVolume = solution?.CurrentVolume ?? FixedPoint2.Zero;
var maxVolume = solution?.MaxVolume ?? FixedPoint2.Zero;
return new InjectorComponentState(currentVolume, maxVolume, ToggleState);
}