Exemplo n.º 1
0
 public Nullable <Vals.Colour> determineCureActionAvailable(int[] cardCureRequirements, bool researchStationAvailable)
 {
     if (researchStationAvailable)
     {
         int[]      cardsOfEachColour = new int[Vals.DISEASE_COUNT];
         PlayerCard prev        = hand[0];
         int        colourCount = 1;
         int        cardsToCure = roleModifiedCardsToCure(cardCureRequirements[(int)prev.getColour()]);
         for (int i = 1; i < hand.Count; i++)
         {
             if (hand[i].getColour() == prev.getColour() && !board.isDiseaseCured(hand[i].getColour()))
             {
                 colourCount++;
                 if (colourCount == cardsToCure)
                 {
                     return(prev.getColour());
                 }
             }
             else
             {
                 colourCount = 1;
             }
             prev = hand[i];
         }
     }
     return(null);
 }
Exemplo n.º 2
0
    public void dealInitialPlayerHands(Stack <PlayerCard> shuffledPlayerCards, PlayerManager playerManager, List <PlayerCard> eventCards)
    {
        int cardsRequired = playerManager.getInitialHandCount();
        List <PlayerCard> initialHandCards = new List <PlayerCard>();

        for (int i = 0; i < cardsRequired; i++)
        {
            PlayerCard drawn = shuffledPlayerCards.Pop();
            initialHandCards.Add(drawn);
            if (drawn.getColour() == Vals.Colour.EVENT)
            {
                eventCards.Add(drawn);
            }
        }
        playerManager.setInitialHands(initialHandCards);
    }
Exemplo n.º 3
0
    public IEnumerator playerDraw(Player curPlayer, PlayerCard card1, PlayerCard card2)
    {
        playerCard1.SetActive(true);
        playerCard2.SetActive(true);

        yield return(StartCoroutine(moveAndFlipCard(playerCard1.transform, mapCentreLeft, playerCardFaces[(int)card1.getColour()], new Vector3(1.5f, 1.5f, 1.5f))));

        playerCard1Title.text = card1.getName();
        yield return(StartCoroutine(moveAndFlipCard(playerCard2.transform, mapCentreRight, playerCardFaces[(int)card2.getColour()], new Vector3(1.5f, 1.5f, 1.5f))));

        playerCard2Title.text = card2.getName();
        yield return(new WaitForSeconds(Vals.GENERIC_WAIT_TIME));

        if (card1.getName().Equals("Epidemic"))
        {
            yield return(StartCoroutine(moveAndShrinkCard(playerCard1.transform, playerDiscardCentre)));
        }
        else
        {
            yield return(StartCoroutine(moveAndShrinkCard(playerCard1.transform, handCentres[curPlayer.getTurnOrderPos() - 1])));
        }
        if (card2.getName().Equals("Epidemic"))
        {
            yield return(StartCoroutine(moveAndShrinkCard(playerCard2.transform, playerDiscardCentre)));
        }
        else
        {
            yield return(StartCoroutine(moveAndShrinkCard(playerCard2.transform, handCentres[curPlayer.getTurnOrderPos() - 1])));
        }

        resetPosition(playerCard1, playerDeck.transform, playerCardBack, playerCard1Title);
        resetPosition(playerCard2, playerDeck.transform, playerCardBack, playerCard2Title);
        yield break;
    }