// Start turn public void StartTurn() { gameObject.SetActive(true); endTurnButton.interactable = false; // Show drawn card Card drawnCard = player.StartTurn(); // Resource card if (drawnCard.cardType == CardType.Resource) { CardResourceDisplay newCardDisplay = (CardResourceDisplay)CardDisplay.CreateCardDisplay(drawnCard, drawnCardRegion); StartCoroutine(ShowDrawnCard(newCardDisplay)); } // Playable card else { CardPieceDisplay newCardDisplay = (CardPieceDisplay)CardDisplay.CreateCardDisplay(drawnCard, drawnCardRegion); newCardDisplay.player = player; StartCoroutine(ShowDrawnCard(newCardDisplay)); } // Update piece objects foreach (KeyValuePair <GamePiece, GamePieceObject> pair in gamePieceObjects) { if (pair.Key.hasActions) { pair.Value.ShowPieceDisabled(); } } }
// Show whether card is playable private void ShowPlayableCard(CardPieceDisplay cardDisplay) { if (!cardDisplay.isPlayable) { cardDisplay.isPlayable = false; } }
// Add card display public void AddDrawnCard(CardPieceDisplay cardPieceDisplay) { int newCardIndex = (cardRegion.childCount + 1) / 2; cardPieceDisplay.transform.SetParent(cardRegion); cardPieceDisplay.transform.SetSiblingIndex(newCardIndex); cards.Add(cardPieceDisplay); ShowPlayableCard(cardPieceDisplay); }
// Play a card public void PlayCard(CardPieceDisplay selectedCard) { if (selectedCard == null) { return; } cardPieceDisplays.Remove(selectedCard); SetPlayableCards(); }
// Add card display public void AddCard(Card card) { if (card.cardType != CardType.Resource) { CardPieceDisplay newCardDisplay = (CardPieceDisplay)CardDisplay.CreateCardDisplay(card, cardRegion); newCardDisplay.player = player; cards.Add(newCardDisplay); ShowPlayableCard(newCardDisplay); } }
public void Setup() { player = PlayerUTests.CreateTestPlayer(); cardUnit1 = CardUnitUTests.CreateTestCardUnit(); cardUnit2 = CardUnitUTests.CreateTestCardUnit(); player.DrawCard(cardUnit1); cardUnitDisplay1 = player.cardPieceDisplays[0]; Sprite[] cardBackgrounds = Resources.LoadAll <Sprite>("Art/Cards/Card Backgrounds"); playableBorder = cardBackgrounds[1]; unplayableBorder = Resources.Load <Sprite>(ENV.CARD_UNPLAYABLE_BORDER_RESOURCE_PATH); highlightedBorder = Resources.Load <Sprite>(ENV.CARD_HIGHLIGHTED_BORDER_RESOURCE_PATH); }
public void SetsSelectedCardToNextCardOn2ndCardClick() { player.SetResource(ResourceType.Food, 10); player.PlayerClickOnCardInHand(cardUnitDisplay1); Assert.IsTrue(cardUnitDisplay1.IsHighlighted()); player.DrawCard(cardUnit2); CardPieceDisplay cardUnitDisplay2 = player.cardPieceDisplays[1]; player.PlayerClickOnCardInHand(cardUnitDisplay2); Assert.IsTrue(cardUnitDisplay2.IsHighlighted()); Assert.AreEqual(cardUnitDisplay2, player.selectedCard); Assert.AreEqual(playableBorder, cardUnitDisplay1.cardBorder.sprite); Assert.AreEqual(highlightedBorder, cardUnitDisplay2.cardBorder.sprite); }
// Set selected card public void SetSelectedCard(CardPieceDisplay newSelectedCard) { // Set new selected card if (newSelectedCard != null) { selectedCard = newSelectedCard; hasSelectedCard = true; selectedPiece = null; } else { selectedCard = null; hasSelectedCard = false; } }
// Set selected card public void SetSelectedCard(CardPieceDisplay newSelectedCard) { selectedCardDisplay = newSelectedCard; // Get card piece if (newSelectedCard != null) { CardPiece cardPiece = newSelectedCard.GetCardPiece(); player.SetSelectedCard(newSelectedCard); } else { player.SetSelectedCard(null); } actionMapObject.PaintActionMap(); }
// Player clicks on card in hand public void PlayerClickOnCardInHand(CardPieceDisplay cardPieceDisplay) { if (!cardPieceDisplay.isPlayable || !isTurn) { return; } // Dehighlight old card if (selectedCard) { selectedCard.SetHighlighted(false); } if (selectedCard == cardPieceDisplay) { SetSelectedCard(null); } else { SetSelectedCard(cardPieceDisplay); cardPieceDisplay.SetHighlighted(true); } }
// Set whether card is playable private void SetPlayable(CardPieceDisplay cardPieceDisplay) { cardPieceDisplay.isPlayable = CardIsPlayable(cardPieceDisplay.GetCardPiece()); }