Пример #1
0
        public void ThrowACard(Card card, int playerNumber)
        {
            var cardGO = Instantiate(CardPrefab, CardsHolder).GetComponent <CardObject>();

            cardGO.Initialize(card);
            cardGO.transform.eulerAngles = new Vector3(0, 0, UnityEngine.Random.Range(-90f, 90f));
            //cardGO.transform. = new Vector3(0, 0, UnityEngine.Random.Range(-90f, 90f));

            if (CurrentSuit == SuitsEnum.Undefined)
            {
                CurrentSuit = card.Suit;
                Debug.LogError("New Saar Started " + card.Name);
                OnStartOfANewSaar();
            }
            else if (CheckForThola(card))
            {
                Debug.LogError("Tholla is given " + card.Name);
                StartCoroutine(GiveThollaToPlayer(card));
                return;
            }

            CardsOnTable.Add(playerNumber, card);

            if (HasAllPlayerPlayedThereCards())
            {
                StartCoroutine(FoldTheCardsOnTable());
            }
            else
            {
                ChangeTurnToNextPlayer();
            }
        }
Пример #2
0
 public Card(int suit, int value)
 {
     Value = (ValuesEnum)value;
     Suit  = (SuitsEnum)suit;
     Name  = Value.ToString() + "-" + Suit.ToString();
     //CardImage =
 }
Пример #3
0
        IEnumerator FoldTheCardsOnTable()
        {
            IndexOfPlayerWithTurn = CheckPlayerWithHighestCard();
            StartCoroutine(GiveTurnToPlayer(Players[IndexOfPlayerWithTurn]));
            yield return(new WaitForSeconds(1));

            for (int i = 0; i < CardsHolder.childCount; i++)
            {
                Destroy(CardsHolder.GetChild(i).gameObject, 0.2f);
            }
            Deck.AddRange(CardsOnTable.Values);
            CardsOnTable.Clear();
            CurrentSuit = SuitsEnum.Undefined;
        }
Пример #4
0
        public Card FindACardToMakeAMove(SuitsEnum suit)
        {
            if (suit == SuitsEnum.Undefined)
            {
                return(MyHandOfCards[UnityEngine.Random.Range(0, MyHandOfCards.Count)]);
            }
            foreach (var item in MyHandOfCards)
            {
                if (item.Suit == suit)
                {
                    return(item);
                }
            }
            print("No card found to Move");

            return(null);
        }
Пример #5
0
        IEnumerator GiveThollaToPlayer(Card card)
        {
            IndexOfPlayerWithTurn = CheckPlayerWithHighestCard();
            yield return(new WaitForSeconds(1));

            //Players[playerWithTurn].MyHandOfCards.Add(card);
            for (int i = 0; i < CardsHolder.childCount; i++)
            {
                var cardGo = CardsHolder.GetChild(i).GetComponent <CardObject>();
                Players[IndexOfPlayerWithTurn].AddTholaCards(cardGo.GetCard());
                Destroy(cardGo.gameObject, 0.2f);
            }
            print("Tholla is added to Player" + IndexOfPlayerWithTurn);
            CardsOnTable.Clear();
            CurrentSuit = SuitsEnum.Undefined;
            StartCoroutine(GiveTurnToPlayer(Players[IndexOfPlayerWithTurn]));
        }
Пример #6
0
 public Card FindACardToGiveThollu(SuitsEnum suit)
 {
     foreach (var item in MyHandOfCards)
     {
         if (item.Suit != suit)
         {
             var max = MyHandOfCards[0];
             foreach (var card in MyHandOfCards)
             {
                 if (card.Value > max.Value)
                 {
                     max = card;
                 }
             }
             return(max);
         }
     }
     print("No card found to give thollu");
     return(null);
 }
Пример #7
0
 public Card(SuitsEnum nwSuit, ValueEnum nwValue)
 {
     Suits  = nwSuit;
     Values = nwValue;
 }