Clean up terrible solution entity reaction copy pasta.
This commit is contained in:
@@ -201,19 +201,11 @@ namespace Content.Server.GameObjects.Components.Chemistry
|
||||
|
||||
// TODO: Account for partial transfer.
|
||||
|
||||
foreach (var (reagentId, quantity) in removedSolution.Contents)
|
||||
{
|
||||
if(!_prototypeManager.TryIndex(reagentId, out ReagentPrototype reagent)) continue;
|
||||
removedSolution.RemoveReagent(reagentId, reagent.ReactionEntity(solution.Owner, ReactionMethod.Injection, quantity));
|
||||
}
|
||||
removedSolution.DoEntityReaction(solution.Owner, ReactionMethod.Injection);
|
||||
|
||||
solution.TryAddSolution(removedSolution);
|
||||
|
||||
foreach (var (reagentId, quantity) in removedSolution.Contents)
|
||||
{
|
||||
if(!_prototypeManager.TryIndex(reagentId, out ReagentPrototype reagent)) continue;
|
||||
reagent.ReactionEntity(targetBloodstream.Owner, ReactionMethod.Injection, quantity);
|
||||
}
|
||||
removedSolution.DoEntityReaction(targetBloodstream.Owner, ReactionMethod.Injection);
|
||||
|
||||
Owner.PopupMessage(user, Loc.GetString("You inject {0}u into {1:theName}!", removedSolution.TotalVolume, targetBloodstream.Owner));
|
||||
Dirty();
|
||||
@@ -243,11 +235,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var (reagentId, quantity) in removedSolution.Contents)
|
||||
{
|
||||
if(!_prototypeManager.TryIndex(reagentId, out ReagentPrototype reagent)) continue;
|
||||
removedSolution.RemoveReagent(reagentId, reagent.ReactionEntity(targetSolution.Owner, ReactionMethod.Injection, quantity));
|
||||
}
|
||||
removedSolution.DoEntityReaction(targetSolution.Owner, ReactionMethod.Injection);
|
||||
|
||||
targetSolution.TryAddSolution(removedSolution);
|
||||
|
||||
|
||||
@@ -103,11 +103,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
|
||||
|
||||
// TODO: Account for partial transfer.
|
||||
|
||||
foreach (var (reagentId, quantity) in split.Contents)
|
||||
{
|
||||
if (!_prototypeManager.TryIndex(reagentId, out ReagentPrototype reagent)) continue;
|
||||
split.RemoveReagent(reagentId, reagent.ReactionEntity(trueTarget, ReactionMethod.Ingestion, quantity));
|
||||
}
|
||||
split.DoEntityReaction(trueTarget, ReactionMethod.Ingestion);
|
||||
|
||||
firstStomach.TryTransferSolution(split);
|
||||
|
||||
|
||||
@@ -135,12 +135,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
|
||||
if (!Owner.TryGetComponent(out SolutionContainerComponent contents))
|
||||
return;
|
||||
|
||||
foreach (var reagentQuantity in contents.ReagentList.ToArray())
|
||||
{
|
||||
if (reagentQuantity.Quantity == ReagentUnit.Zero) continue;
|
||||
var reagent = _prototypeManager.Index<ReagentPrototype>(reagentQuantity.ReagentId);
|
||||
contents.TryRemoveReagent(reagentQuantity.ReagentId, reagent.ReactionEntity(collidedWith, ReactionMethod.Touch, reagentQuantity.Quantity * 0.125f));
|
||||
}
|
||||
contents.Solution.DoEntityReaction(collidedWith, ReactionMethod.Touch);
|
||||
|
||||
// Check for collision with a impassable object (e.g. wall) and stop
|
||||
if (collidedWith.TryGetComponent(out IPhysicsComponent physics))
|
||||
|
||||
@@ -181,11 +181,7 @@ namespace Content.Server.GameObjects.Components.Nutrition
|
||||
|
||||
// TODO: Account for partial transfer.
|
||||
|
||||
foreach (var (reagentId, quantity) in split.Contents)
|
||||
{
|
||||
if (!_prototypeManager.TryIndex(reagentId, out ReagentPrototype reagent)) continue;
|
||||
split.RemoveReagent(reagentId, reagent.ReactionEntity(target, ReactionMethod.Ingestion, quantity));
|
||||
}
|
||||
split.DoEntityReaction(target, ReactionMethod.Ingestion);
|
||||
|
||||
firstStomach.TryTransferSolution(split);
|
||||
|
||||
|
||||
@@ -183,11 +183,7 @@ namespace Content.Server.GameObjects.Components.Nutrition
|
||||
|
||||
// TODO: Account for partial transfer.
|
||||
|
||||
foreach (var (reagentId, quantity) in split.Contents)
|
||||
{
|
||||
if (!_prototypeManager.TryIndex(reagentId, out ReagentPrototype reagent)) continue;
|
||||
split.RemoveReagent(reagentId, reagent.ReactionEntity(trueTarget, ReactionMethod.Ingestion, quantity));
|
||||
}
|
||||
split.DoEntityReaction(trueTarget, ReactionMethod.Ingestion);
|
||||
|
||||
firstStomach.TryTransferSolution(split);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user