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 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 Card DropCardFromPlayer(CardAnimator cardAnimator, byte cardValue, bool isLocalPlayer) { int playerDisplayingCardsCount = DisplayingCards.Count; Card card = null; if (isLocalPlayer) { foreach (Card c in DisplayingCards) { if (c.Rank == Card.GetRank(cardValue) && c.Suit == Card.GetSuit(cardValue)) { card = c; break; } } } else { //computer di rasesatppudu ra card = DisplayingCards[playerDisplayingCardsCount - 1]; card.SetCardValue(cardValue); card.SetFaceUp(true); } if (card != null) { DisplayingCards.Remove(card); //cardAnimator.AddCardAnimation(card, receivingPlayer.NextCardPosition()); NumberOfDisplayingCards--; } else { Debug.LogError("Unable to find displaying card."); } RepositionDisplayingCards(cardAnimator); return(card); }
public string SendDisplayingCardToStack(CardAnimator cardAnimator, List <byte> cardValues, bool isLocalPlayer) { string result = ""; List <Card> allPossibleCards = new List <Card>(); allPossibleCards.AddRange(DisplayingCards); if (DisplayingCards.Count == 0 && isFinishedHandCards()) { allPossibleCards.AddRange(DisplayingBooks); foreach (Card card in DisplayingBooks) { card.isTouchable = true; } } else { foreach (Card card in DisplayingBooks) { card.isTouchable = false; } } if (DisplayingBooks.Count == 0 && allPossibleCards.Count == 0 && isFinishedDisplayingBooks()) { allPossibleCards.AddRange(HiddenBooks); foreach (Card card in HiddenBooks) { card.isTouchable = true; } } else { foreach (Card card in HiddenBooks) { card.isTouchable = false; } } for (int i = 0; i < cardValues.Count; i++) { byte cardValue = cardValues[i]; Card card = null; if (isLocalPlayer) { foreach (Card c in allPossibleCards) { if ((c.Rank == Card.GetRank(cardValue) && c.Suit == Card.GetSuit(cardValue)) || isFinishedDisplayingBooks()) { card = c; card.SetCardValue(cardValue); break; } } } else { card = allPossibleCards[i]; //[i] ?? card.SetCardValue(cardValue); //result = false; } result = isCardOkToThrow(cardAnimator, card); } return(result); }