using Content.Shared.Body.Components; using Robust.Shared.Prototypes; namespace Content.Shared.EntityEffects.EffectConditions; /// /// Condition for if the entity is or isn't wearing internals. /// public sealed partial class Internals : EntityEffectCondition { /// /// To pass, the entity's internals must have this same state. /// [DataField] public bool UsingInternals = true; public override bool Condition(EntityEffectBaseArgs args) { if (!args.EntityManager.TryGetComponent(args.TargetEntity, out InternalsComponent? internalsComp)) return !UsingInternals; // They have no internals to wear. var internalsState = internalsComp.GasTankEntity != null; // If gas tank is not null, they are wearing internals return UsingInternals == internalsState; } public override string GuidebookExplanation(IPrototypeManager prototype) { return Loc.GetString("reagent-effect-condition-guidebook-internals", ("usingInternals", UsingInternals)); } }