// 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();
            }
        }
    }
Exemplo n.º 2
0
 // Show whether card is playable
 private void ShowPlayableCard(CardPieceDisplay cardDisplay)
 {
     if (!cardDisplay.isPlayable)
     {
         cardDisplay.isPlayable = false;
     }
 }
Exemplo n.º 3
0
    // 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);
    }
Exemplo n.º 4
0
 // Play a card
 public void PlayCard(CardPieceDisplay selectedCard)
 {
     if (selectedCard == null)
     {
         return;
     }
     cardPieceDisplays.Remove(selectedCard);
     SetPlayableCards();
 }
Exemplo n.º 5
0
 // 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);
     }
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 // 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();
    }
Exemplo n.º 10
0
    // 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);
        }
    }
Exemplo n.º 11
0
 // Set whether card is playable
 private void SetPlayable(CardPieceDisplay cardPieceDisplay)
 {
     cardPieceDisplay.isPlayable = CardIsPlayable(cardPieceDisplay.GetCardPiece());
 }