protected Deck(CardGame sourceGame, string name = DefaultName, DeckFileType fileType = DeckFileType.Txt,
                IReadOnlyCollection <Card> cards = null)
 {
     SourceGame = sourceGame ?? CardGame.Invalid;
     Name       = !string.IsNullOrEmpty(name) ? name.Clone() as string : DefaultName;
     FileType   = fileType;
     Cards      = cards;
 }
 public Deck(CardGame sourceGame, string name = DefaultName, DeckFileType fileType = DeckFileType.Txt, List <Card> cards = null)
 {
     SourceGame = sourceGame ?? CardGame.Invalid;
     Name       = !string.IsNullOrEmpty(name) ? name.Clone() as string : DefaultName;
     FileType   = fileType;
     if (cards != null)
     {
         Cards = new List <Card>(cards);
     }
     else
     {
         Cards = new List <Card>();
     }
 }
        public static UnityDeck Parse(UnityCardGame cardGame, string deckName, DeckFileType deckFileType,
                                      string deckText)
        {
            var deck = new UnityDeck(cardGame, deckName, deckFileType);

            if (string.IsNullOrEmpty(deckText))
            {
                return(deck);
            }

            foreach (string line in deckText.Split('\n').Select(x => x.Trim()))
            {
                switch (deckFileType)
                {
                case DeckFileType.Dec:
                    deck.LoadDec(line);
                    break;

                case DeckFileType.Hsd:
                    deck.LoadHsd(line);
                    break;

                case DeckFileType.Ydk:
                    if (line.Equals("!side"))
                    {
                        return(deck);
                    }
                    deck.LoadYdk(line);
                    break;

                case DeckFileType.Lor:
                    deck.LoadLor(line);
                    break;

                case DeckFileType.Txt:
                default:
                    if (line.Equals("Sideboard") || line.Equals("sideboard") || line.Equals("Sideboard:"))
                    {
                        return(deck);
                    }
                    deck.LoadTxt(line);
                    break;
                }
            }

            return(deck);
        }
Exemple #4
0
        public DeckFileType GetFileTypeFromPath(string filePath)
        {
            DeckFileType fileType  = DeckFileType.Txt;
            string       extension = filePath.Substring(filePath.LastIndexOf('.') + 1);

            if (extension.ToLower().Equals(DeckFileType.Dec.ToString().ToLower()))
            {
                fileType = DeckFileType.Dec;
            }
            else if (extension.ToLower().Equals(DeckFileType.Hsd.ToString().ToLower()))
            {
                fileType = DeckFileType.Hsd;
            }
            else if (extension.ToLower().Equals(DeckFileType.Ydk.ToString().ToLower()))
            {
                fileType = DeckFileType.Ydk;
            }
            return(fileType);
        }
 public UnityDeck(UnityCardGame sourceGame, string name = DefaultName, DeckFileType fileType = DeckFileType.Txt,
                  IReadOnlyCollection <UnityCard> cards = null) : base(sourceGame, name, fileType, cards)
 {
     SourceGame = sourceGame ?? UnityCardGame.UnityInvalid;
     _cards     = cards != null ? new List <UnityCard>(cards) : new List <UnityCard>();
 }