A C# port of ArtifactDeckCode
Refer to that page for more detailed information on Artifact Deck Codes.
ParseDeck returns a Deck object with contains a list of Heroes(ids and turn numbers), Cards(ids and count), and the deck Name.
Deck deck = ArtifactDeckDecoder.ParseDeck("ADCJWkTZX05uwGDCRV4XQGy3QGLmqUBg4GQJgGLGgO7AaABR3JlZW4vQmxhY2sgRXhhbXBsZQ__");
Console.WriteLine(deck.Name); // outputs "Green/Black Example"
EncodeDeck returns a string. This string is the ArtifactDeckCode.
Deck deck = new Deck();
deck.Name = "my sweet deck";
deck.Heroes = new List<Hero>();
deck.Cards = new List<Card>();
deck.Heroes.Add(new Hero { Id = 4005, Turn = 1 });
deck.Heroes.Add(new Hero { Id = 10014, Turn = 1 });
deck.Cards.Add(new Card { Id = 3001, Count = 1 });
deck.Cards.Add(new Card { Id = 10165, Count = 3 });
...
string deckCode = ArtifactDeckEncoder.EncodeDeck(deck);
Console.WriteLine(deckCode); // outputs URL safe deck code string
The CardSetApiClient allows you to request details on all cards in Artifact by set id. Currently 0 and 1 are the only valid set ids.
using(var apiClient = new CardSetApiClient())
{
CardSet cardSet = await client.GetCardSetAsync(0);
Console.WriteLine(cardSet.Version); //outputs "1"
Console.WriteLine(cardSet.SetInfo.Name.English); //outputs "Base Set"
Console.WriteLine(string.Join(", ", cardSet.CardList
.Skip(15)
.Take(3)
.Select(x => x.CardName.English))); //outputs "Town Portal Scroll, Fahrvhan the Dreamer, Pack Leadership"
}