public void SendStackCardsToPlayer(Player receivingPlayer, CardAnimator cardAnimator, List <byte> cardValues, bool isLocalPlayer) { List <Card> StackCards = cardAnimator.getStack(); int playerDisplayingCardsCount = StackCards.Count; if (playerDisplayingCardsCount < cardValues.Count) { Debug.LogError("Not enough stack cards"); return; } for (int index = 0; index < cardValues.Count; index++) { Card card = null; byte cardValue = cardValues[index]; if (isLocalPlayer) { foreach (Card c in StackCards) { if (c.Rank == Card.GetRank(cardValue) && c.Suit == Card.GetSuit(cardValue)) { card = c; break; } } } else { card = StackCards[playerDisplayingCardsCount - 1 - index]; card.SetCardValue(cardValue); card.SetFaceUp(true); } if (card != null) { card.isInStack = false; card.isTouchable = true; receivingPlayer.ReceiveDisplayingCard(card); cardAnimator.AddCardAnimation(card, receivingPlayer.NextCardPosition(), index); if (isLocalPlayer) { NumberOfDisplayingCards++; } else { receivingPlayer.NumberOfDisplayingCards++; } } else { Debug.LogError("Unable to find stack card."); } } cardAnimator.clearStack(); RepositionDisplayingCards(cardAnimator); }
public void RepositionDroppedCards(CardAnimator cardAnimator) { for (int i = 0; i < DroppedCards.Count; i++) { Vector2 newPos = cardAnimator.droppedCardPosition + Vector2.right * Constants.PLAYER_CARD_POSITION_OFFSET * i; cardAnimator.AddCardAnimation(DroppedCards[i], newPos); } }
public void RepositionDisplayingCards(CardAnimator cardAnimator) { numberOfDisplayingCards = 0; foreach (Card card in DisplayingCards) { numberOfDisplayingCards++; cardAnimator.AddCardAnimation(card, NextCardPosition()); } }
public void RepositionDisplayingCards(CardAnimator cardAnimator) { NumberOfDisplayingCards = 0; for (int i = 0; i < DisplayingCards.Count; i++) { NumberOfDisplayingCards++; Vector2 nextPos = Position + Vector2.right * Constants.PLAYER_CARD_POSITION_OFFSET * (i + 1); cardAnimator.AddCardAnimation(DisplayingCards[i], nextPos); } }
public void RepositionDisplayingCards(CardAnimator cardAnimator) { NumberOfDisplayingCards = 0; foreach (Card card in DisplayingCards) { card.transform.rotation = Quaternion.identity; NumberOfDisplayingCards++; cardAnimator.AddCardAnimation(card, NextCardPosition()); } }
public void SendDisplayingCardToPlayer(Player receivingPlayer, CardAnimator cardAnimator, List <byte> cardValues, bool isLocalPlayer) { int playerDisplayingCardsCount = DisplayingCards.Count; if (playerDisplayingCardsCount < cardValues.Count) { Debug.LogError("Not enough displaying cards"); return; } for (int index = 0; index < cardValues.Count; index++) { Card card = null; byte cardValue = cardValues[index]; if (isLocalPlayer) { foreach (Card c in DisplayingCards) { if (c.Rank == Card.GetRank(cardValue) && c.Suit == Card.GetSuit(cardValue)) { card = c; break; } } } else { card = DisplayingCards[playerDisplayingCardsCount - 1 - index]; card.SetCardValue(cardValue); card.SetFaceUp(true); } if (card != null) { Debug.Log("DisplayingCards.Remove(card) " + card); DisplayingCards.Remove(card); receivingPlayer.ReceiveDisplayingCard(card); cardAnimator.AddCardAnimation(card, receivingPlayer.NextCardPosition()); NumberOfDisplayingCards--; } else { Debug.LogError("Unable to find displaying card."); } } RepositionDisplayingCards(cardAnimator); }
public void CreateBottomBook(byte cardValue, CardAnimator cardAnimator, int index) { Vector2 targetPosition = GetBookPositionByIndex(index); Card card = cardAnimator.TakeFirstDisplayingCard(); card.SetCardValue(cardValue); card.SetDisplayingOrder(-1); card.OwnerId = PlayerId; card.SetFaceUp(false); card.isTouchable = false; float randomRotation = UnityEngine.Random.Range(-1 * Constants.BOOK_MAX_RANDOM_ROTATION, Constants.BOOK_MAX_RANDOM_ROTATION); Quaternion rotation = Quaternion.Euler(Vector3.forward * randomRotation); cardAnimator.AddCardAnimation(card, targetPosition, rotation); HiddenBooks.Add(card); NumberOfHiddenBooks++; }
public void ReceiveBook(Ranks rank, CardAnimator cardAnimator) { Vector2 targetPosition = NextBookPosition(); List <Card> displayingCardsToRemove = new List <Card>(); foreach (Card card in DisplayingCards) { if (card.Rank == rank) { card.SetFaceUp(true); float randomRotation = UnityEngine.Random.Range(-1 * Constants.BOOK_MAX_RANDOM_ROTATION, Constants.BOOK_MAX_RANDOM_ROTATION); cardAnimator.AddCardAnimation(card, targetPosition, Quaternion.Euler(Vector3.forward * randomRotation)); displayingCardsToRemove.Add(card); } } DisplayingCards.RemoveAll(card => displayingCardsToRemove.Contains(card)); RepositionDisplayingCards(cardAnimator); numberOfBooks++; }
public void CreateTopBook(byte rank, CardAnimator cardAnimator, int index) { Vector2 targetPosition = GetBookPositionByIndex(index); Card card = cardAnimator.TakeFirstDisplayingCard(); //card.Suit = (Suits)UnityEngine.Random.Range(0, 3); //card.Rank = rank; card.SetCardValue(rank); card.SetDisplayingOrder(0); card.OwnerId = PlayerId; //card.SetFaceUp(true); card.isTouchable = false; float randomRotation = UnityEngine.Random.Range(-1 * Constants.BOOK_MAX_RANDOM_ROTATION, Constants.BOOK_MAX_RANDOM_ROTATION); Quaternion rotation = Quaternion.Euler(Vector3.forward * randomRotation); cardAnimator.AddCardAnimation(card, targetPosition, rotation); DisplayingBooks.Add(card); NumberOfBooks++; }