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); }
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>(); }