using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using RadicadeServer.RecNet.Enums.Players.Avatar; using RadicadeServer.RecNet.Enums.Store; using RadicadeServer.Radicade.Gifts.Enums; namespace RadicadeServer.RecNet.Rooms { /// /// One box a room hands a player when they join it. A room used to be able to describe /// exactly one box in its own Rooms row; a row here is one more box, and the panel shows /// them as a list. A room with no rows here still has its one box - see /// - so a room configured before this table existed /// keeps handing out what it always did. /// public class RoomJoinGift { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long RoomJoinGiftId { get; set; } public long RoomId { get; set; } /// Where the box sits in the room's list. Boxes are delivered in this order. public int SortOrder { get; set; } /// /// Bumped whenever this box changes. The version is part of the box's gift drop id and /// of a once-per-player claim, so a changed box is handed out again rather than being /// suppressed by the claim a player already made on the old one. /// public int Version { get; set; } = 1; public bool Enabled { get; set; } = true; public bool OncePerPlayer { get; set; } = true; public string Title { get; set; } = "Room Visit Gift"; public string Message { get; set; } = "Thanks for visiting!"; public string AvatarItem { get; set; } = ""; public AvatarItemType AvatarItemType { get; set; } = AvatarItemType.Outfit; public string EquipmentItem { get; set; } = ""; public string EquipmentModificationGuid { get; set; } = ""; public string ConsumableItem { get; set; } = ""; public CurrencyType CurrencyType { get; set; } = CurrencyType.RecCenterTokens; public int CurrencyAmount { get; set; } = 0; public int Xp { get; set; } = 0; public GiftContext Context { get; set; } = GiftContext.Game_Drop; public Rarity Rarity { get; set; } = Rarity.Common; /// The account the box is from, or zero for no sender. public long FromPlayerId { get; set; } = 0; } }