public void ButtonEvt_ConfirmHeldCards()
        {
            if (_isGameOver)
            {
                UnloadGame();
                Anim_Win(false);
                LoadGame();
                Anim_WinType(0);
                _isGameOver = false;
                return;
            }
            foreach (var card in _pokerHand)
            {
                if (!_cardsToHold.Contains(card))
                {
                    var newCard = PokerDeckController.ReturnRandomCard();
                    card.LoadCardData(newCard);
                }
            }
            _cardsToHold.Clear();
            var result = CheckForWinningHand(_pokerHand);

            Anim_Win(result != PokerScore.None);
            Anim_WinType((int)result);
            _score     += (int)result;
            _isGameOver = true;
        }
 private void UnloadGame()
 {
     foreach (var card in _pokerHand)
     {
         Destroy(card.gameObject);
     }
     PokerDeckController.ClearDeck();
     _cardsToHold.Clear();
     _pokerHand.Clear();
     Resources.UnloadUnusedAssets();
 }
 /// <summary>
 /// Every new deal comes from a fresh deck of cards.
 /// </summary>
 private void LoadGame()
 {
     PokerDeckController.PrepareDeck(_deckData);
     for (int i = 0; i < _pokerHandSize; i++)
     {
         var cardData = PokerDeckController.ReturnRandomCard();
         var card     = Instantiate(_pokerCardPrefab, _pokerHandGroup);
         card.LoadCardData(cardData);
         card.ButtonComponent.onClick.AddListener(() => ButtonEvt_CardClicked(card));
         _pokerHand.Add(card);
     }
 }