示例#1
0
    private void CardMatchUnsuccessful()
    {
        PrintDebugMsg("Match unsuccessful!");
        if (turnState == TurnPhaseMatching.PlayerOne)
        {
            playerOneMatchAttempts++;
        }
        else
        {
            playerTwoMatchAttempts++;
        }

        pickOne.FaceUp = false;
        pickTwo.FaceUp = false;

        pickOne = null;
        pickTwo = null;

        UpdateUI();
        if (turnState == TurnPhaseMatching.PlayerOne && !singlePlayer)
        {
            turnState = TurnPhaseMatching.PlayerTwo;
            if (playerTwoIsAI)
            {
                PlayAI();
            }
        }
        else
        {
            turnState = TurnPhaseMatching.PlayerOne;
        }
    }
示例#2
0
    private void MoveToMatches(CardMatching cd)
    {
        cd.transform.parent = layoutAnchor;

        if (cd.state != CardStateMatching.Matched)
        {
            if (turnState == TurnPhaseMatching.PlayerOne)
            {
                playerOneMatches.Add(cd);
                cd.transform.localPosition = new Vector3(layout.playerOneMatches.x, layout.playerOneMatches.y, -layout.playerOneMatches.layerID + .5f);
                cd.SetSortingLayerName(layout.playerOneMatches.layerName);
                cd.SetSortOrder(-100 + playerOneMatches.Count);
            }
            else
            {
                playerTwoMatches.Add(cd);
                cd.transform.localPosition = new Vector3(layout.playerTwoMatches.x, layout.playerTwoMatches.y, -layout.playerTwoMatches.layerID + .5f);
                cd.SetSortingLayerName(layout.playerTwoMatches.layerName);
                cd.SetSortOrder(-100 + playerTwoMatches.Count);
            }

            if (cd.state == CardStateMatching.GroupOne)
            {
                cardGroupOne.Remove(cd);
            }
            else
            {
                cardGroupTwo.Remove(cd);
            }

            cd.state = CardStateMatching.Matched;
        }
    }
示例#3
0
    public bool CardMatch(CardMatching c0, CardMatching c1)
    {
        if (c0 == c1)
        {
            return(false);
        }
        if (c0.rank == c1.rank)
        {
            return(true);
        }
        //if (c0.suit == c1.suit) return true;

        return(false);
    }
示例#4
0
 public void CardClicked(CardMatching cd)
 {
     if (state != GameState.GameEnd && cd.state != CardStateMatching.Matched && pickTwo == null)
     {
         if (pickOne == null)
         {
             pickOne        = cd;
             pickOne.FaceUp = true;
         }
         else if (pickOne != cd && CardMatch(pickOne, cd))
         {
             pickTwo        = cd;
             pickTwo.FaceUp = true;
             Invoke("CardMatchSuccessful", matchCheckDelay);
         }
         else if (pickOne != cd)
         {
             pickTwo        = cd;
             pickTwo.FaceUp = true;
             Invoke("CardMatchUnsuccessful", matchCheckDelay);
         }
     }
 }
示例#5
0
    private void CardMatchSuccessful()
    {
        PrintDebugMsg("Match successful!");
        if (turnState == TurnPhaseMatching.PlayerOne)
        {
            playerOneMatchAttempts++;
        }
        else
        {
            playerTwoMatchAttempts++;
        }

        if (turnState == TurnPhaseMatching.PlayerOne)
        {
            pickOne.transform.position = playerOneMatchesAnchor.transform.position;
            pickTwo.transform.position = playerOneMatchesAnchor.transform.position;
            pickOne.transform.parent   = playerOneMatchesAnchor.transform;
            pickTwo.transform.parent   = playerOneMatchesAnchor.transform;
        }
        else
        {
            pickOne.transform.position = playerTwoMatchesAnchor.transform.position;
            pickTwo.transform.position = playerTwoMatchesAnchor.transform.position;
            pickOne.transform.parent   = playerTwoMatchesAnchor.transform;
            pickTwo.transform.parent   = playerTwoMatchesAnchor.transform;
        }

        switch (state)
        {
        case GameState.GroupOne:
            cardGroupOne.Remove(pickOne);
            cardGroupOne.Remove(pickTwo);

            if (turnState == TurnPhaseMatching.PlayerOne)
            {
                playerOneMatches.Add(pickOne);
                playerOneMatches.Add(pickTwo);
            }
            else
            {
                playerTwoMatches.Add(pickOne);
                playerTwoMatches.Add(pickTwo);
            }
            break;

        case GameState.GroupTwo:
            cardGroupTwo.Remove(pickOne);
            cardGroupTwo.Remove(pickTwo);
            if (turnState == TurnPhaseMatching.PlayerOne)
            {
                playerOneMatches.Add(pickOne);
                playerOneMatches.Add(pickTwo);
            }
            else
            {
                playerTwoMatches.Add(pickOne);
                playerTwoMatches.Add(pickTwo);
            }
            break;
        }

        pickOne.state = CardStateMatching.Matched;
        pickTwo.state = CardStateMatching.Matched;
        pickOne       = null;
        pickTwo       = null;

        UpdateUI();
        CheckWin();
        if (playerTwoIsAI)
        {
            PlayAI();
        }
    }