TotalDamage.cs 1015 B

12345678910111213141516171819202122232425262728293031323334
  1. using Content.Shared.EntityEffects;
  2. using Content.Shared.Damage;
  3. using Content.Shared.FixedPoint;
  4. using Robust.Shared.Prototypes;
  5. namespace Content.Server.EntityEffects.EffectConditions;
  6. public sealed partial class TotalDamage : EntityEffectCondition
  7. {
  8. [DataField]
  9. public FixedPoint2 Max = FixedPoint2.MaxValue;
  10. [DataField]
  11. public FixedPoint2 Min = FixedPoint2.Zero;
  12. public override bool Condition(EntityEffectBaseArgs args)
  13. {
  14. if (args.EntityManager.TryGetComponent(args.TargetEntity, out DamageableComponent? damage))
  15. {
  16. var total = damage.TotalDamage;
  17. if (total > Min && total < Max)
  18. return true;
  19. }
  20. return false;
  21. }
  22. public override string GuidebookExplanation(IPrototypeManager prototype)
  23. {
  24. return Loc.GetString("reagent-effect-condition-guidebook-total-damage",
  25. ("max", Max == FixedPoint2.MaxValue ? (float) int.MaxValue : Max.Float()),
  26. ("min", Min.Float()));
  27. }
  28. }