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