using Content.Shared.Storage;
using Robust.Shared.Network;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Server.Holiday.Christmas;
///
/// This is used for granting items to lucky souls, exactly once.
///
[RegisterComponent, Access(typeof(LimitedItemGiverSystem))]
public sealed partial class LimitedItemGiverComponent : Component
{
///
/// Santa knows who you are behind the screen, only one gift per player per round!
///
public readonly HashSet GrantedPlayers = new();
///
/// Selects what entities can be given out by the giver.
///
[DataField("spawnEntries", required: true)]
public List SpawnEntries = default!;
///
/// The (localized) message shown upon receiving something.
///
[DataField("receivedPopup", required: true)]
public string ReceivedPopup = default!;
///
/// The (localized) message shown upon being denied.
///
[DataField("deniedPopup", required: true)]
public string DeniedPopup = default!;
///
/// The holiday required for this giver to work, if any.
///
[DataField("requiredHoliday", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)]
public string? RequiredHoliday = null;
}