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;
}