Metabolism tweaks / metabolism 4.0 (#5246)

* Metabolism tweaks

* use MetabolismArgs and convert ReagentEntityReactions into ReagentEffects

* fork forgor 💀

* fixes
This commit is contained in:
mirrorcult
2021-11-10 03:11:28 -07:00
committed by GitHub
parent 6486e07077
commit 747f02f3f3
41 changed files with 328 additions and 291 deletions

View File

@@ -22,9 +22,12 @@ namespace Content.Server.Chemistry.ReagentEffectConditions
[DataField("shouldHave")]
public bool ShouldHave = true;
public override bool Condition(EntityUid solutionEntity, EntityUid organEntity, Solution.ReagentQuantity reagent, IEntityManager entityManager)
public override bool Condition(ReagentEffectArgs args)
{
if (entityManager.TryGetComponent<MetabolizerComponent>(organEntity, out var metabolizer)
if (args.OrganEntity == null)
return false;
if (args.EntityManager.TryGetComponent<MetabolizerComponent>(args.OrganEntity.Value, out var metabolizer)
&& metabolizer.MetabolizerTypes != null
&& metabolizer.MetabolizerTypes.Contains(Type))
return ShouldHave;

View File

@@ -18,9 +18,15 @@ namespace Content.Server.Chemistry.ReagentEffectConditions
[DataField("max")]
public FixedPoint2 Max = FixedPoint2.MaxValue;
public override bool Condition(EntityUid solutionEntity, EntityUid organEntity, Solution.ReagentQuantity reagent, IEntityManager entityManager)
public override bool Condition(ReagentEffectArgs args)
{
return reagent.Quantity >= Min && reagent.Quantity < Max;
if (args.Source != null)
{
var quant = args.Source.GetReagentQuantity(args.Reagent.ID);
return quant >= Min && quant <= Max;
}
return false;
}
}
}