Ejemplo n.º 1
0
        /// <summary>
        /// (HELPER / overload)
        /// Deals cards to Player and Computer 'Play' decks
        /// </summary>
        /// <param name="player"> client player's 'Play' deck </param>
        /// <param name="computer"> computer player's 'Play' deck </param>
        /// <returns> completed task </returns>
        private async Task DealGameAsync(Deck player, Deck computer)
        {
            List <Card> cards = await GetAllCardsAsync();

            cards.Remove(cards.FirstOrDefault(c => c.ID == 53));
            cards.Remove(cards.FirstOrDefault(c => c.ID == 54));
            Random random = new Random();
            int    rnd;
            Deck   current = player;

            while (cards.Count > 0)
            {
                rnd = random.Next(0, cards.Count - 1);
                await _context.DeckCards.AddAsync(new DeckCard()
                {
                    CardID = cards[rnd].ID, DeckID = current.ID
                });

                await _context.SaveChangesAsync();

                DeckCard test = await _context.DeckCards.FirstOrDefaultAsync(c => c.CardID == cards[rnd].ID && c.DeckID == current.ID);

                cards.Remove(cards[rnd]);
                current = (current == player) ? computer : player;
            }
            await _context.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task AddCard(string uid)
        {
            bool isNewCard = true;

            for (int i = 0; i < Deck.Cards.Count; i++)
            {
                if (Deck.Cards[i].UID == uid)
                {
                    isNewCard = false;
                    Deck.Cards[i].Quantity += 1;
                    break;
                }
            }
            if (isNewCard)
            {
                DeckCard NewCard = new DeckCard();
                NewCard.Quantity = 1;
                NewCard.UID      = uid;
                Deck.Cards.Add(NewCard);
            }
            string Ticket = await JSRuntime.InvokeAsync <string>("StartLoading");

            await JSRuntime.InvokeVoidAsync("UpdateDeck", Deck);

            string selector = "input[data-card-uid=\"" + uid + "\"]";
            await JSRuntime.InvokeVoidAsync("FocusElement", selector);

            await JSRuntime.InvokeVoidAsync("StopLoading", Ticket);

            StateHasChanged();
        }
Ejemplo n.º 3
0
        internal async Task <bool> DeleteDeckCardAsync(DeckCard card)
        {
            try
            {
                HttpResponseMessage result =
                    await _httpClient.DeleteAsync(new Uri(_deckcardUri, "deckcards/" + card.DeckCardId));

                return(result.IsSuccessStatusCode);
            }
            catch (HttpRequestException ex)
            {
                await CustomLogger.Log("DeleteDeckCardAsync: " + DateTime.Now.ToShortTimeString() + " " + ex.StackTrace).ConfigureAwait(true);

                return(false);
            }
            catch (InvalidOperationException ex)
            {
                await CustomLogger.Log("DeleteDeckCardAsync: " + DateTime.Now.ToShortTimeString() + " " + ex.StackTrace).ConfigureAwait(true);

                return(false);
            }
            catch (ArgumentNullException ex)
            {
                await CustomLogger.Log("DeleteDeckCardAsync: " + DateTime.Now.ToShortTimeString() + " " + ex.StackTrace).ConfigureAwait(true);

                return(false);
            }
        }
Ejemplo n.º 4
0
 public void SetDeck(Action onComplete, bool setListener)
 {
     if (transform.childCount - 1 == GameControl.control.playerData.deck.Count)
     {
         Debug.Log("saved some CPU; didn't set deck!");
         if (setListener)
         {
             foreach (Transform child in transform)
             {
                 if (child.name == "more")
                 {
                     continue;
                 }
                 DeckCard DC = child.GetComponent <DeckCard>();
                 DC.setListener(DeckCardFunction(DC, GameControl.control.getMainUI().detailCard));
             }
         }
         if (onComplete != null)
         {
             onComplete();
         }
         return;
     }
     GameControl.control.StartCoroutine(hardResetDeck(onComplete, setListener));
 }
Ejemplo n.º 5
0
        public void CardIDGetSet()
        {
            DeckCard card = new DeckCard();

            card.CardID = 1;
            Assert.Equal(1, card.CardID);
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> PutDeckCards([FromRoute] int id, [FromBody] DeckCard deckCards)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != deckCards.DeckCardId)
            {
                return(BadRequest());
            }

            _context.Entry(deckCards).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DeckCardsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 7
0
    public static CardEntity CreateDeckCard(this CardContext context, DeckCard type)
    {
        var entity = context.CreateEntity();

        entity.AddDeckCard(type);
        return(entity);
    }
        private void FormatCardConstantTable(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            DataGridView dataGridView = (DataGridView)sender;

            foreach (DataGridViewRow row in dataGridView.Rows)
            {
                CardConstant cardConstant;

                if (row.DataBoundItem.GetType() == typeof(ObjectView <CardConstant>))
                {
                    cardConstant = ((ObjectView <CardConstant>)row.DataBoundItem).Object;
                }
                else if (row.DataBoundItem.GetType() == typeof(DeckCard))
                {
                    DeckCard deckCard = (DeckCard)row.DataBoundItem;
                    cardConstant = deckCard.CardConstant;
                }
                else if (row.DataBoundItem.GetType() == typeof(ObjectView <DeckCard>))
                {
                    DeckCard deckCard = ((ObjectView <DeckCard>)row.DataBoundItem).Object;
                    cardConstant = deckCard.CardConstant;
                }
                else
                {
                    cardConstant = ((ObjectView <CardConstant>)row.DataBoundItem).Object;
                }

                row.DefaultCellStyle.BackColor = CardConstantRowColor(cardConstant);
                row.DefaultCellStyle.ForeColor = Color.White;
            }
        }
Ejemplo n.º 9
0
        public void DuplicateCard(DeckCard card)
        {
            var newCard = new DeckCard
            {
                Count       = card.Count,
                OracleId    = card.OracleId,
                Prints      = card.Prints,
                SelectPrint = card.SelectPrint
            };

            Deck.Cards.Add(newCard);


            var index = Deck.Cards.IndexOf(card);

            if (Deck.Cards.Count > index && Deck.Cards[index + 1].IsChild)
            {
                var child = Deck.Cards[index + 1];
                newCard = new DeckCard
                {
                    IsChild  = child.IsChild,
                    OracleId = child.OracleId
                };

                Deck.Cards.Add(newCard);
            }
        }
Ejemplo n.º 10
0
    public void DisplayDeck()
    {
        if (activated)
        {
            foreach (DeckCard c in cards)
            {
                Destroy(c.gameObject);
            }
            cards.Clear();
        }
        else
        {
            for (int i = 0; i < character.stats.cards.Count; ++i)
            {
                int     x           = i % row;
                int     y           = i / row;
                Vector3 destination = new Vector3(start.x + x * width, start.y - y * height);

                DeckCard d = Instantiate(prefab);
                d.transform.SetParent(panel.transform);
                d.SetCard(character.stats.cards[i], character, destination, i);
                cards.Add(d);
            }
        }
        activated = !activated;
        panel.SetActive(activated);
    }
Ejemplo n.º 11
0
    public void ReplaceDeckCard(DeckCard newType)
    {
        var index     = CardComponentsLookup.DeckCard;
        var component = CreateComponent <DeckCardComponent>(index);

        component.Type = newType;
        ReplaceComponent(index, component);
    }
Ejemplo n.º 12
0
 public override void SetData(ActiveCard card1)
 {
     card = card1.Card;
     if (card1.Level > 1)
     {
         spell.UpgradeToLevel(card1.Level);
     }
 }
Ejemplo n.º 13
0
        public void DeckGetSet()
        {
            DeckCard card = new DeckCard();
            Deck     deck = new Deck();

            card.Deck = deck;
            Assert.Equal(deck, card.Deck);
        }
Ejemplo n.º 14
0
            public Image ShowTip()
            {
                var      card = CardAssistant.GetCard(CardId);
                DeckCard dc   = new DeckCard(CardId, (byte)Level, 0);

                card.SetData(dc);
                return(card.GetPreview(CardPreviewType.Normal, new int[0]));
            }
Ejemplo n.º 15
0
        public void CardGetSet()
        {
            DeckCard card    = new DeckCard();
            Card     refCard = new Card();

            card.Card = refCard;
            Assert.Equal(refCard, card.Card);
        }
Ejemplo n.º 16
0
 private UnityAction DeckCardFunction(DeckCard card, DetailCard detailCard)
 {
     return(() =>
     {
         detailCard.setDetailCard(card);
         transform.parent.gameObject.SetActive(false);
     });
 }
Ejemplo n.º 17
0
 public override void SetData(DeckCard card1)
 {
     card = card1;
     if (card1.Level > 1)
     {
         spell.UpgradeToLevel(card1.Level);
     }
 }
Ejemplo n.º 18
0
        /// Karten FÜR das Deck
        public static List <Card> GetAllCardsForDeck(string email, int idDeck)
        {
            List <PersonCard> personCards = null;

            try
            {
                using (var context = new ClonestoneFSEntities())
                {
                    var person = context.AllPersons
                                 .Include(x => x.AllPersonCards)
                                 .Include(x => x.AllPersonCards.Select(y => y.Card))
                                 .FirstOrDefault(x => x.Email.Equals(email));

                    if (person == null)
                    {
                        throw new ArgumentException("Invalid username");
                    }

                    /// get ALL cards assigned to this user
                    personCards = person.AllPersonCards.ToList();

                    /// get deck for given idDeck
                    Deck deck = context.AllDecks.FirstOrDefault(x => x.ID == idDeck);

                    if (deck == null)
                    {
                        throw new ArgumentException("Invalid idDeck");
                    }

                    /// iterate over all userCards
                    foreach (var userCard in personCards)
                    {
                        /// check if current userCard is already present in current deck
                        DeckCard deckCard = deck.AllDeckcards.FirstOrDefault(x => x.ID_Card == userCard.ID_Card);

                        /// if card is already in deck
                        if (deckCard != null)
                        {
                            /// decrease number of cards available
                            userCard.NumberOfCards -= deckCard.NumCards;
                        }
                    }

                    /// return only those cards, whose number is greater than 0
                    personCards = personCards.Where(x => x.NumberOfCards > 0).ToList();
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);

                Debugger.Break();
                throw ex;
            }

            return(personCards.Select(x => x.Card).ToList());
        }
Ejemplo n.º 19
0
        public void OpenScryfall(DeckCard card)
        {
            var localCard = localData.Cards.FirstOrDefault(lc => lc.Prints.Any(p => p.Id == card.SelectPrint.Id));

            if (localCard != null)
            {
                System.Diagnostics.Process.Start(localCard.ScryUrl);
            }
        }
Ejemplo n.º 20
0
 public void setDetailCard(DeckCard deckCard)
 {
     this.deckCard = deckCard;
     leveledUp     = false;
     setUI(deckCard.cat);
     setInfo(deckCard.cat);
     setStats(deckCard.cat);
     gameObject.SetActive(true);
 }
Ejemplo n.º 21
0
    public void YieldCat()
    {
        // assumes player has enough gold
        CatType result = Yield();
        Cat     newCat = new Cat(result);

        newCat.catLvl = new CatLevel(MathUtils.FairEnemyCatLevel(DataUtils.getTotalLevels(), MathUtils.progressThroughWorld(), UnityEngine.Random.Range(0.4f, 0.6f)));
        lastDC        = GameControl.control.AddToDeck(newCat);
    }
Ejemplo n.º 22
0
 public static void Patch(this DeckCardModel deckCardModel, DeckCard deckCard, UserModel user)
 {
     if (deckCardModel == null)
     {
         return;
     }
     deckCardModel.Quantity = deckCard.Quantity;
     deckCardModel.PatchBase(user);
 }
Ejemplo n.º 23
0
        private void DeckEditRemoveSelectedMenuItem_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in deckEditorDataGridView.SelectedRows)
            {
                DeckCard deckCard = (DeckCard)row.DataBoundItem;
                deckCardListBinding.Remove(deckCard);
            }

            refreshDeckInfoLabels();
        }
        public IHttpActionResult AddCardToDeck(int deckId, int cardId)
        {
            var deckCard = new DeckCard();

            deckCard.DeckId = deckId;
            deckCard.CardId = cardId;
            database.DeckCards.Add(deckCard);
            database.SaveChanges();
            return(Ok());
        }
Ejemplo n.º 25
0
        /// <summary>
        /// returns a random card from specified deck
        /// simulates returning top card from a shuffled deck
        /// </summary>
        /// <param name="userID"> deck owner's ID </param>
        /// <param name="deckType"> deck type (ie - 'play', 'collect', 'discard' </param>
        /// <returns> randomly selected card from specified deck </returns>
        public async Task <DeckCard> GetCard(int userID, DeckType deckType)
        {
            List <DeckCard> cardDeck = await GetDeck(userID, deckType);

            Random   random   = new Random();
            int      rnd      = random.Next(0, cardDeck.Count - 1);
            DeckCard deckCard = cardDeck[rnd];

            return(deckCard);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// (HELPER for public ResetDecks() and Slap() methods)
        /// reassigns all cards in specified donor deck to specified recipient deck
        /// </summary>
        /// <param name="donor"> deck from which cards are to be moved </param>
        /// <param name="recipient"> deck to which cards are to be moved </param>
        /// <returns> completed task </returns>
        private async Task ResetDecks(List <DeckCard> donor, Deck recipient)
        {
            DeckCard temp = new DeckCard();

            foreach (DeckCard card in donor)
            {
                temp.CardID = card.CardID;
                await UpdateDeckCard(card.CardID, card.DeckID, recipient.ID);
            }
        }
Ejemplo n.º 27
0
    private DeckCard newDeckCard(Cat cat)
    {
        GameObject card = (GameObject)Instantiate(deckCardPrefab, transform);

        card.transform.SetSiblingIndex(transform.childCount - 2);
        DeckCard DC = card.GetComponent <DeckCard>();

        DC.setDeckCard(cat, GameControl.GetTextBox(card, "rarity"));
        return(DC);
    }
Ejemplo n.º 28
0
        public void RemoveCardFromDeck(DeckCard card)
        {
            var index = Deck.Cards.IndexOf(card);

            if (Deck.Cards.Count < index && Deck.Cards[index + 1].IsChild)
            {
                Deck.Cards.RemoveAt(index + 1);
            }
            Deck.Cards.Remove(card);
        }
Ejemplo n.º 29
0
    public DeckCard AddToDeck(Cat cat, bool setListener)
    {
        DeckCard DC = newDeckCard(cat);

        if (setListener)
        {
            DC.setListener(DeckCardFunction(DC, GameControl.control.getMainUI().detailCard));
        }
        return(DC);
    }
Ejemplo n.º 30
0
        public void SetInfo(DeckCard dcard)
        {
            cid      = dcard.BaseId;
            level    = dcard.Level;
            lastCell = -1;
            skills   = new List <MonsterSkill>();
            string effectName = "";

            if (cid > 0)
            {
                card = CardAssistant.GetCard(cid);
                virtualRegion.SetRegionKey(3, CardConfigManager.GetCardConfig(cid).Quality + 1);
                var jobId = CardConfigManager.GetCardConfig(cid).JobId;
                if (jobId > 0)
                {
                    jobId = ConfigData.GetJobConfig(jobId).JobIndex;
                }
                virtualRegion.SetRegionKey(4, jobId);
                card.SetData(dcard);
                if (card.GetCardType() == CardTypes.Monster)
                {
                    MonsterCard monsterCard = card as MonsterCard;
                    if (monsterCard != null)
                    {
                        CheckMonster(monsterCard, ref effectName);
                    }
                }
            }

            string nowEffectName = "";

            if (coverEffect != null)
            {
                nowEffectName = coverEffect.Name;
            }

            if (effectName != nowEffectName)
            {
                if (effectName == "")
                {
                    coverEffect = null;
                }
                else
                {
                    coverEffect = new CoverEffect(EffectBook.GetEffect(effectName), new Point(X + 20, Y + 20), new Size(160, 180));
                }
            }

            tooltip.Hide(parent);

            if (Invalidate != null)
            {
                Invalidate();
            }
        }
Ejemplo n.º 31
0
        public override Deck Load(string filename)
        {
            if(File.Exists(filename)) {
                StreamReader reader = new StreamReader(filename);

                List<string> list = new List<string>();

                while(!reader.EndOfStream) {
                    list.Add(reader.ReadLine());
                }

                reader.Close();
                reader.Dispose();

                Deck deck = new Deck();
                deck.Filename = filename;
                deck.Name = Path.GetFileNameWithoutExtension(filename);

                bool isSideboard = false;

                foreach(string line in list) {
                    if(!line.IsNullOrTrimmedEmpty()
                    && !line.StartsWith("//")) {
                        string correctLine = line;

                        // kill spaces and tabs inside of the string
                        correctLine = correctLine.Replace("\t", " ").Trim();

                        // sb?
                        if(correctLine.ToLower().Equals("sideboard")) {
                            isSideboard = true;
                        }

                        if(correctLine.StartsWith("SB:")) {
                            correctLine = correctLine.Replace("SB:", "").Trim();
                            isSideboard = true;
                        }

                        // add
                        if(!correctLine.ToLower().Equals("sideboard")) {
                            string amount = "";
                            string name = "";

                            if(correctLine[0].ToString().IsNumeric()) {
                                amount = correctLine.Substring(0, correctLine.IndexOf(" ")).Trim();
                                name = correctLine.Substring(correctLine.IndexOf(" ")).Trim();
                            }
                            else {
                                amount = "1";
                                name = correctLine.Trim();
                            }

                            DeckCard dc = new DeckCard();
                            dc.Amount = amount.ToInt32();

                            // the card object will be laoded by setting the name (part of the property)
                            dc.Name = name;

                            dc.Sideboard = isSideboard;

                            deck.CardList.Add(dc);
                        }
                    }
                }

                return deck;
            }

            return null;
        }
Ejemplo n.º 32
0
        public override Deck Load(string filename)
        {
            if(File.Exists(filename)) {
                StreamReader reader = new StreamReader(filename);

                List<string> list = new List<string>();

                while(!reader.EndOfStream) {
                    list.Add(reader.ReadLine());
                }

                reader.Close();
                reader.Dispose();

                Deck deck = new Deck();
                deck.Filename = filename;
                deck.Name = Path.GetFileNameWithoutExtension(filename);

                // TODO: Implement XML Document, currently line parsing is enough

                bool isSideboard = false;

                foreach(string line in list) {
                    string correctLine = line;

                    // kill spaces and tabs inside of the string
                    correctLine = correctLine.Replace("\t", " ").Trim();

                    // name
                    if(correctLine.Contains("<deckname>")) {
                        string nameLine = correctLine.Substring(correctLine.IndexOf("<deckname>") + 10)
                            .Trim();

                        nameLine = nameLine.Substring(0, nameLine.IndexOf("</deckname>"));

                        if(nameLine.Contains(" by ")) {
                            string[] splitted = nameLine.Split(new string[] { " by " }, StringSplitOptions.RemoveEmptyEntries);

                            deck.Name = splitted[0].Trim();

                            if(splitted.Length > 1) {
                                deck.Author = splitted[1].Trim();
                            }
                        }
                        else {
                            deck.Name = nameLine;
                        }
                    }

                    // comment
                    if(correctLine.Contains("<comments>")) {
                        string nameLine = correctLine.Substring(correctLine.IndexOf("<comments>") + 10)
                            .Trim();

                        nameLine = nameLine.Substring(0, nameLine.IndexOf("</comments>"));

                        deck.Comment = nameLine;
                    }

                    // sideboard
                    if(correctLine.Contains("<zone name=\"side\">")) {
                        isSideboard = true;
                    }

                    // add card
                    if(correctLine.Contains("<card ")) {
                        string amount = "";
                        string name = "";

                        string content = correctLine
                            .Replace("<card number=\"", "")
                            .Replace("\" name=\"", "|")
                            .Replace("\"/>", "");

                        List<string> numberAndName = content.Split("|");

                        if(numberAndName.Count == 2) {
                            amount = numberAndName[0].Trim();
                            name = numberAndName[1].Trim();
                        }
                        else if(numberAndName.Count == 1) {
                            amount = "1";
                            name = correctLine.Trim();
                        }
                        else {
                            amount = "1";
                            name = "Plains";
                        }

                        DeckCard dc = new DeckCard();
                        dc.Amount = amount.ToInt32();

                        // the card object will be laoded by setting the name (part of the property)
                        dc.Name = name;

                        dc.Sideboard = isSideboard;

                        deck.CardList.Add(dc);
                    }
                }

                return deck;
            }

            return null;
        }
Ejemplo n.º 33
0
 void DeckCount()
 {
     DeckCard a = new DeckCard(0,0,0,"");
     for (int i = 0; i < Deck.Count; i++)
     {
         switch (Deck[i])
         {
             case "銅貨":
                 a = new DeckCard(1, 0, 0, Deck[i]);
                 break;
             case "銀貨":
                 a = new DeckCard(2, 0, 0, Deck[i]);
                 break;
             case "金貨":
                 a = new DeckCard(3, 0, 0, Deck[i]);
                 break;
             case "屋敷":
                 a = new DeckCard(0, 0, 0, Deck[i]);
                 break;
             case "公領":
                 a = new DeckCard(0, 0, 0, Deck[i]);
                 break;
             case "属州":
                 a = new DeckCard(0, 0, 0, Deck[i]);
                 break;
             case "地下貯蔵庫":
                 a = new DeckCard(0, 0, 0, Deck[i]);
                 break;
             case "市場":
                 a = new DeckCard(1, 1, 0, Deck[i]);
                 break;
             case "民兵":
                 a = new DeckCard(2, 0, -1, Deck[i]);
                 break;
             case "鉱山":
                 a = new DeckCard(0, 0, -1, Deck[i]);
                 break;
             case "堀":
                 a = new DeckCard(0, 2, -1, Deck[i]);
                 break;
             case "鍛冶屋":
                 a = new DeckCard(0, 3, -1, Deck[i]);
                 break;
             case "村":
                 a = new DeckCard(0, 1, 1, Deck[i]);
                 break;
             case "木こり":
                 a = new DeckCard(2, 0, -1, Deck[i]);
                 break;
             case "改築":
                 a = new DeckCard(0, 0, -1, Deck[i]);
                 break;
             case "工房":
                 a = new DeckCard(0, 0, -1, Deck[i]);
                 break;
         }
         DeckList.Add(a);
     }
 }
Ejemplo n.º 34
0
        public override Deck Load(string filename)
        {
            if(File.Exists(filename)) {
                StreamReader reader = new StreamReader(filename);

                List<string> list = new List<string>();
                StringBuilder str = new StringBuilder();

                while(!reader.EndOfStream) {
                    string line = reader.ReadLine();

                    str.Append(line);
                    list.Add(line);
                }

                reader.Close();
                reader.Dispose();

                Deck deck = new Deck();
                deck.Filename = filename;
                deck.Name = Path.GetFileNameWithoutExtension(filename);

                bool isOldFormat = !str.ToString().Contains("SB:");
                bool isSideboard = false;

                foreach(string line in list) {
                    string correctLine = line;

                    // kill spaces and tabs inside of the string
                    correctLine = correctLine.Replace("\t", " ").Trim();

                    // name
                    if(correctLine.Contains("//")
                    && correctLine.Contains("NAME:")) {
                        string nameLine = correctLine.Substring(correctLine.IndexOf("NAME") + 4)
                            .Replace(":", "")
                            .Trim();

                        if(correctLine.Contains(" by ")) {
                            string[] splitted = nameLine.Split(new string[] { " by " }, StringSplitOptions.RemoveEmptyEntries);

                            deck.Name = splitted[0].Trim();

                            if(splitted.Length > 1) {
                                deck.Author = splitted[1].Trim();
                            }
                        }
                        else {
                            deck.Name = nameLine;
                        }
                    }

                    // comment
                    if(correctLine.Contains("//")
                    && correctLine.ToLower().Contains("comment")) {
                        string nameLine = correctLine.Substring(correctLine.IndexOf("COMMENT") + 7)
                            .Replace(":", "")
                            .Trim();

                        deck.Comment = nameLine;
                    }

                    // sb?
                    if(isOldFormat
                    && correctLine.Contains("//")
                    && correctLine.ToLower().Contains("sideboard")) {
                        isSideboard = true;
                    }

                    // add
                    if(!correctLine.IsNullOrTrimmedEmpty()
                    && !correctLine.StartsWith("//")) {
                        string amount = "";
                        string name = "";

                        if(correctLine.StartsWith("SB: ")) {
                            correctLine = correctLine.Replace("SB: ", "");
                            isSideboard = true;
                        }

                        if(correctLine[0].ToString().IsNumeric()) {
                            amount = correctLine.Substring(0, correctLine.IndexOf(" ")).Trim();
                            name = correctLine.Substring(correctLine.IndexOf(" ")).Trim();
                        }
                        else {
                            amount = "1";
                            name = correctLine.Trim();
                        }

                        DeckCard dc = new DeckCard();
                        dc.Amount = amount.ToInt32();

                        // the card object will be laoded by setting the name (part of the property)
                        dc.Name = name;

                        dc.Sideboard = isSideboard;

                        deck.CardList.Add(dc);
                    }
                }

                return deck;
            }

            return null;
        }