using Content.Shared.Verbs; using JetBrains.Annotations; using Robust.Shared.Serialization; namespace Content.Shared.InteractionVerbs; /// /// Defines a requirement for an . /// If a verb does not meet the requirement, it will be hidden or disabled in the verb menu. /// [ImplicitDataDefinitionForInheritors, Serializable, NetSerializable] [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors )] public abstract partial class InteractionRequirement { public abstract bool IsMet(InteractionArgs args, InteractionVerbPrototype proto, InteractionAction.VerbDependencies deps); } /// [Serializable, NetSerializable] public abstract partial class InvertableInteractionRequirement : InteractionRequirement { [DataField] public bool Inverted = false; }