using JetBrains.Annotations;
using Robust.Shared.Serialization;
namespace Content.Shared.Store;
///
/// Used to define a complicated condition that requires C#
///
[ImplicitDataDefinitionForInheritors]
[MeansImplicitUse]
public abstract class ListingCondition
{
///
/// Determines whether or not a certain entity can purchase a listing.
///
/// Whether or not the listing can be purchased
public abstract bool Condition(ListingConditionArgs args);
}
/// The person purchasing the listing
/// The liting itself
/// An entitymanager for sane coding
public readonly record struct ListingConditionArgs(EntityUid Buyer, EntityUid? StoreEntity, ListingData Listing, IEntityManager EntityManager);