public MtgCard GetMtgCard(string name)
        {
            var     entity = _repository.GetMtgCardByName(name);
            MtgCard card   = null;

            if (entity != null)
            {
                card = new MtgCard()
                {
                    Name = entity.Name
                };
            }

            return(card);
        }
Esempio n. 2
0
        private static Embed CardToEmbed(MtgCard card)
        {
            var cardEmbed = new EmbedBuilder();

            var searchTerm = WebUtility.UrlEncode(card.name.ToLower());
            var cardUrl    = $"https://scryfall.com/search?q={searchTerm}&unique=cards&as=grid&order=name";

            var cardImage = card.imageUrl;

            cardEmbed.Title        = card.name;
            cardEmbed.Url          = cardUrl;
            cardEmbed.ThumbnailUrl = cardImage;

            var setField = new EmbedFieldBuilder
            {
                Name     = "Set",
                Value    = card.setName,
                IsInline = true
            };

            var rarityField = new EmbedFieldBuilder
            {
                Name     = "Rarity",
                Value    = card.rarity,
                IsInline = true
            };

            var typeField = new EmbedFieldBuilder
            {
                Name  = "Type",
                Value = card.type,
            };

            cardEmbed.Fields.Add(setField);
            cardEmbed.Fields.Add(rarityField);
            cardEmbed.Fields.Add(typeField);

            if (card.loyalty != null)
            {
                //Card is probably a planeswalker
                var loyaltyField = new EmbedFieldBuilder
                {
                    Name     = "Loyalty",
                    Value    = card.loyalty.ToString(),
                    IsInline = true,
                };

                cardEmbed.Fields.Add(loyaltyField);
            }
            else if (!string.IsNullOrWhiteSpace(card.toughness) && !string.IsNullOrWhiteSpace(card.power))
            {
                //card is probably some form of creature
                var powerField = new EmbedFieldBuilder
                {
                    Name     = "Power",
                    Value    = card.power,
                    IsInline = true
                };

                var toughnessField = new EmbedFieldBuilder
                {
                    Name     = "Toughness",
                    Value    = card.toughness,
                    IsInline = true
                };

                cardEmbed.Fields.Add(powerField);
                cardEmbed.Fields.Add(toughnessField);
            }

            var costField = new EmbedFieldBuilder
            {
                Name  = "Cost",
                Value = MTG_EmoteTable.ReplaceSymbols(card.manaCost),
            };

            var textField = new EmbedFieldBuilder
            {
                Name  = "Text",
                Value = MTG_EmoteTable.ReplaceSymbols(card.text),
            };

            cardEmbed.Fields.Add(costField);
            cardEmbed.Fields.Add(textField);

            cardEmbed.Color = new Color(0x68c7ce);

            return(cardEmbed);
        }