Exemplo n.º 1
0
        public void Init(TCGCards.Core.Deck deck)
        {
            this.deck = deck;
            var formatName = MainMenu.formats.FirstOrDefault(f => f.Id.Equals(deck.FormatId)).Name;

            deckNameText.text = $"{deck.Name} ({formatName})";
        }
Exemplo n.º 2
0
        public void OnSaveClick()
        {
            var filename = deckName.text + MainMenu.Deck.deckExtension;

            foreach (var character in Path.GetInvalidFileNameChars())
            {
                filename = filename.Replace(character, '\0');
            }

            var directory = Path.Combine(Application.streamingAssetsPath, "Decks");

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            var format = MainMenu.MainMenu.formats.First(x => x.Name == formatDropdown.options[formatDropdown.value].text);

            var fullPath = Path.Combine(directory, filename);

            var cards = deckContent.GetComponentsInChildren <DeckCard>();

            if (cards.Length == 0)
            {
                return;
            }

            var deck = new TCGCards.Core.Deck
            {
                Cards    = new Stack <Card>(cards.Select(deckCard => deckCard.card)),
                FormatId = format.Id,
                Name     = deckName.text
            };

            var deckValidation = format.ValidateDeck(deck);

            if (!deckValidation.Result)
            {
                ValidationModal.SetActive(true);
                ValidationText.text = string.Join(Environment.NewLine, deckValidation.Messages);
                return;
            }

            var data = Serializer.Serialize(deck);

            File.WriteAllText(fullPath, data);
        }
Exemplo n.º 3
0
 public void OnExitClick()
 {
     CurrentDeck = null;
     SceneManager.LoadScene("MainMenu");
 }