68 lines
2.2 KiB
C#
68 lines
2.2 KiB
C#
using MessagePack;
|
|
using SVSim.Database.Models;
|
|
|
|
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
|
|
|
/// <summary>
|
|
/// A deck belonging to a user.
|
|
/// </summary>
|
|
[MessagePackObject]
|
|
public class UserDeck
|
|
{
|
|
[Key("deck_no")]
|
|
public int DeckNumber { get; set; }
|
|
[Key("class_id")]
|
|
public int ClassId { get; set; }
|
|
[Key("sleeve_id")]
|
|
public int SleeveId { get; set; }
|
|
[Key("leader_skin_id")]
|
|
public int LeaderSkinId { get; set; }
|
|
[Key("deck_name")]
|
|
public string Name { get; set; } = string.Empty;
|
|
[Key("card_id_array")]
|
|
public List<long> Cards { get; set; } = new List<long>();
|
|
[Key("is_complete_deck")]
|
|
public int IsCompleteDeck { get; set; }
|
|
[Key("restricted_card_exists")]
|
|
public bool RestrictedCardExists { get; set; }
|
|
[Key("is_available_deck")]
|
|
public int IsAvailable { get; set; }
|
|
[Key("maintenance_card_ids")]
|
|
public List<long> MaintenanceCards { get; set; } = new List<long>();
|
|
[Key("is_include_un_possession_card")]
|
|
public bool IncludesNonCollectibleCards { get; set; }
|
|
[Key("is_random_leader_skin")]
|
|
public int IsRandomLeaderSkin { get; set; }
|
|
[Key("leader_skin_id_list")]
|
|
public List<int> LeaderSkinIds { get; set; } = new List<int> { 0 };
|
|
[Key("order_num")]
|
|
public int Order { get; set; }
|
|
[Key("create_deck_time")]
|
|
public DateTime DeckCreateTime { get; set; }
|
|
|
|
public UserDeck(ShadowverseDeckEntry deck)
|
|
{
|
|
this.DeckNumber = deck.Number;
|
|
this.ClassId = deck.Class.Id;
|
|
this.LeaderSkinId = deck.LeaderSkin.Id;
|
|
this.SleeveId = deck.Sleeve.Id;
|
|
this.Name = deck.Name;
|
|
this.Cards = deck.Cards.SelectMany(card => Enumerable.Range(0, card.Count).Select(count => card.Card.Id))
|
|
.ToList();
|
|
this.IsRandomLeaderSkin = deck.RandomLeaderSkin ? 1 : 0;
|
|
this.Order = deck.Number;
|
|
this.DeckCreateTime = deck.DateCreated;
|
|
|
|
//TODO probably want to calc some of these on demand
|
|
this.IsCompleteDeck = 1;
|
|
this.RestrictedCardExists = false;
|
|
this.IsAvailable = 1;
|
|
this.MaintenanceCards = new();
|
|
this.IncludesNonCollectibleCards = false;
|
|
|
|
}
|
|
|
|
public UserDeck()
|
|
{
|
|
}
|
|
} |