Esempio n. 1
0
 /// <summary>
 /// Updates the cards displayed by each <see cref="CardSlotUI"/> in user's deck.
 /// </summary>
 private void RefreshUsedCards(List <Card> deckCards)
 {
     for (int i = _deckSize - 1; i >= 0; --i)
     {
         CardSlotUI cardDisplay = _deckCardsDisplays[i];
         if (i > _deckSize - deckCards.Count - 1)
         {
             cardDisplay.SetCard(deckCards[_deckSize - i - 1]);
         }
         else
         {
             cardDisplay.SetCard(null);
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Fills the deck panel and unused cards panel with cards retrieved from the server.
        /// </summary>
        private async void Init()
        {
            NakamaSessionManager.Instance.OnConnectionSuccess -= Init;
            _deck = await _deckStorage.LoadDataAsync("deck");

            if (_deck == null)
            {
                _deck = GenerateDefaultDeck(_defaultDeck);
                await _deckStorage.StoreDataAsync(_deck);
            }
            _cardInfoSidePanel.SetDeck(_deck);

            // Create a number of CardMenuUI equal to _deckSize and initialize them with user cards.
            for (int i = _deckSize - 1; i >= 0; i--)
            {
                CardSlotUI cardDisplay = Instantiate(_slotPrefab, _deckPanel.transform, false);
                cardDisplay.Init(OnCardSelected);
                _deckCardsDisplays.Add(cardDisplay);
                if (i < _deck.usedCards.Count)
                {
                    cardDisplay.SetCard(_deck.usedCards[i]);
                }
                else
                {
                    cardDisplay.SetCard(null);
                }
            }

            // Update the unused cards panel UI
            RefreshUnusedCards(_deck.unusedCards);
            // Refresh gems counter
            await UpdateFundsCounterAsync();

            // Select first slot if no card is selected
            if (_selectedSlot == null)
            {
                OnCardSelected(_deckCardsDisplays[0]);
            }
        }