Ejemplo n.º 1
0
 /// <summary>
 /// Maoves card from table to destryedCards[]
 /// </summary>
 /// <param card you want to remove="card"></param>
 /// <param its position on the table="cardPosition"></param>
 public void DestroyCard(Card card, CardPosition cardPosition)
 {
     // Remove
     cardArray[cardPosition.row] =
         HelperFunctions.RemoveAtIndex <Card>(cardArray[cardPosition.row], cardPosition.column);
     // Add to destroyedCards[]
     destroyedCards = HelperFunctions.AddAfter <Card>(destroyedCards, card, destroyedCards.Length - 1);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds card to player`s table part after 'addCard.collumn'.
        /// </summary>
        /// <param name="card"></param>
        /// <param name="addAfter"></param>
        public void AddCard(Card card, CardPosition addAfter)
        {
            if (addAfter.column < -1 || addAfter.column > maxWidth ||
                addAfter.row < 0 || addAfter.row >= height)
            {
                throw new System.Exception("Incorrect Card Position: " + addAfter);
            }

            cardArray[addAfter.row] = HelperFunctions.AddAfter <Card>(cardArray[addAfter.row], card, addAfter.column);
        }
Ejemplo n.º 3
0
 // Start is called before the first frame update
 void Start()
 {
     i = HelperFunctions.AddAfter <int>(i, 0, 0);
 }
Ejemplo n.º 4
0
        public IEnumerator PlayCard(int cardIndex, CardPosition cardPosition)
        {
            #region Move card to table
            if (player.useGraphics)
            {
                GameObject thisCard = GetCardObjectByCardIndex(cardIndex);

                thisCard.transform.SetParent(cardRowObject[cardPosition.row].transform);

                Vector3 cardRowPosition = GetCardRowPositionX(cardPosition.row);

                // Add card to the row
                playerCardsRow[cardPosition.row] =
                    HelperFunctions.AddAfter <GameObject>(playerCardsRow[cardPosition.row], thisCard, cardPosition.column);

                //TODO: Update card points text
                UpdateCardPointsText(cardIndex);

                Vector3 realPosition = GetRealCardPosition(cardPosition) - cardRowPosition;

                GameObject[] cardsOnTheRight = new GameObject[0];
                for (int i = cardPosition.column + 2; i < playerCardsRow[cardPosition.row].Length; i++)
                {
                    cardsOnTheRight =
                        HelperFunctions.AddAfter <GameObject>(cardsOnTheRight,
                                                              playerCardsRow[cardPosition.row][i],
                                                              cardsOnTheRight.Length - 1);
                }
                GameObject[] cardsOnTheLeft = new GameObject[0];
                for (int i = cardPosition.column; i >= 0; i--)
                {
                    cardsOnTheLeft =
                        HelperFunctions.AddAfter <GameObject>(cardsOnTheLeft,
                                                              playerCardsRow[cardPosition.row][i],
                                                              cardsOnTheLeft.Length - 1);
                }

                int coef = 1;

                while (realPosition != thisCard.transform.position)
                {
                    #region Move this card
                    thisCard.transform.position =
                        Vector3.Lerp(thisCard.transform.position, realPosition, cardSpeed);
                    #endregion

                    #region Move cards on the right to the right
                    for (int c = 0; c < cardsOnTheRight.Length; c++)
                    {
                        cardsOnTheRight[c].transform.position =
                            Vector3.Lerp(cardsOnTheRight[c].transform.position,
                                         new Vector3(realPosition.x + (cardOffset.x * (c + coef)), realPosition.y, realPosition.z),
                                         cardSpeed);
                    }
                    #endregion

                    #region Move cards on the left to the left
                    for (int c = 0; c < cardsOnTheLeft.Length; c++)
                    {
                        cardsOnTheLeft[c].transform.position =
                            Vector3.Lerp(cardsOnTheLeft[c].transform.position,
                                         new Vector3(realPosition.x - (cardOffset.x * (c + coef)), realPosition.y, realPosition.z),
                                         cardSpeed);
                    }
                    #endregion

                    // Pause and resume next frame
                    yield return(null);
                }
                thisCard.GetComponent <CardVisuals>().onTable = true;
                #endregion
                //Debug.Log("play card end");
            }
            player.ApplyPassive(cardPosition);
        }