Ejemplo n.º 1
0
    public void SetData()
    {
        for (int i = 0; i < 4; i++)
        {
            PlayerList[i].SetActive(false);
        }

        for (int i = 0; i < PartGameOverControl.instance.SettleInfoList.Count; i++)
        {
            PartGameOverControl.instance.SettleInfoList[i].LeftCardList = CardTools.CardValueSort(PartGameOverControl.instance.SettleInfoList[i].LeftCardList);
            PlayerList[i].SetActive(true);
            PlayerList[i].transform.GetComponent <UILabel>().text = GameDataFunc.GetPlayerInfo((byte)PartGameOverControl.instance.SettleInfoList[i].Pos).name.ToString();
            PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos] = new List <GameObject>();
            int count = PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos].Count;
            for (int j = 0; j < count; j++)
            {
                Destroy(PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos][j]);
            }
            PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos] = new List <GameObject>();
            for (int j = 0; j < PartGameOverControl.instance.SettleInfoList[i].LeftCardList.Count; j++)
            {
                GameObject g = GameObject.Instantiate(CardObj, PlayerList[i].transform.Find("CardPoint"));
                g.transform.localScale    = new Vector3(0.6f, 0.6f, 0.4f);
                g.transform.localPosition = new Vector3(j * 25, 0, 0);
                g.SetActive(true);
                g.transform.GetComponent <Card>().SetValue(PartGameOverControl.instance.SettleInfoList[i].LeftCardList[j]);
                PosAndCardList[PartGameOverControl.instance.SettleInfoList[i].Pos].Add(g);
            }
        }
    }
    public void ProcessAction(GameObject input)
    {
        if (!input.CompareTag("Card"))
        {
            return;
        }

        if (UtilsScript.Instance.selectedCards.Count != 1)
        {
            throw new System.ArgumentException("utils.selectedCards must be of size 1");
        }

        GameObject selectedCard = UtilsScript.Instance.selectedCards[0];

        if (CardTools.CanMatch(input.GetComponent <CardScript>(), selectedCard.GetComponent <CardScript>()))
        {
            UtilsScript.Instance.Match(input, selectedCard);
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 判定出牌音效
    /// </summary>
    /// <param name="cardlist"></param>
    public void CheckOperateSoundType(List <uint> cardlist, int sex)
    {
        cardlist = CardTools.CardValueSort(cardlist);//按值排序
        switch (cardlist.Count)
        {
        case 0:
            int a = UnityEngine.Random.Range(1, 3);
            if (sex == 1)
            {
                SoundManager.Instance.PlaySound(UIPaths.GUOPAI_MAN + a.ToString());
            }
            else
            {
                SoundManager.Instance.PlaySound(UIPaths.GUOPAI_WOMAN + a.ToString());
            }

            break;

        case 1:
            int value = (int)cardlist[cardlist.Count - 1] % 100;
            if (sex == 1)
            {
                SoundManager.Instance.PlaySound(UIPaths.SINGLE_MAN + value.ToString());
            }
            else
            {
                SoundManager.Instance.PlaySound(UIPaths.SINGLE_WOMAN + value.ToString());
            }
            // SoundManager.Instance.PlaySound(UIPaths.SINGLE + value.ToString());
            break;

        case 2:
            int value1 = (int)cardlist[cardlist.Count - 1] % 100;

            if (sex == 1)
            {
                SoundManager.Instance.PlaySound(UIPaths.DOUBLE_MAN + value1.ToString());
            }
            else
            {
                SoundManager.Instance.PlaySound(UIPaths.DOUBLE_WOMAN + value1.ToString());
            }
            //if (value1 > 2 && value1 < 16)
            //{
            //    SoundManager.Instance.PlaySound(UIPaths.DOUBLE + value1.ToString());
            //}
            //else
            //{
            //    int  value2 = (int)cardlist[1] % 100;
            //    if (value2 > 2 && value2 < 16)
            //    {
            //        SoundManager.Instance.PlaySound(UIPaths.DOUBLE + value2.ToString());
            //    }
            //    else
            //    {
            //       //对王
            //    }
            //}

            break;

        case 3:
            int value2 = (int)cardlist[cardlist.Count - 1] % 100;
            // SoundManager.Instance.PlaySound(UIPaths.THREECARD);
            if (sex == 1)
            {
                SoundManager.Instance.PlaySound(UIPaths.TRIPLE_MAN + value2.ToString());
            }
            else
            {
                SoundManager.Instance.PlaySound(UIPaths.TRIPLE_WOMAN + value2.ToString());
            }
            break;

        default:
            LandlordPokerType type = LandlordPokerType.None;
            try
            {
                //  type = myQiPaiHelper.Instance.checkPokerType(cardlist);
            }
            catch (Exception e)
            {
            }


            switch (type)
            {
            case LandlordPokerType.Bomb:
                if (sex == 1)
                {
                    SoundManager.Instance.PlaySound(UIPaths.BOOM_MAN);
                }
                else
                {
                    SoundManager.Instance.PlaySound(UIPaths.BOOM_WOMAN);
                }
                SoundManager.Instance.PlaySound(UIPaths.BOOM);
                CardTypeAnim.Instance.PlayBoomAnim();
                break;

            case LandlordPokerType.ContinueDoube:
                if (sex == 1)
                {
                    SoundManager.Instance.PlaySound(UIPaths.LIANDUI_MAN);
                }
                else
                {
                    SoundManager.Instance.PlaySound(UIPaths.LIANDUI_WOMAN);
                }
                // SoundManager.Instance.PlaySound(UIPaths.LIANDUI);
                CardTypeAnim.Instance.PlayLianDuiAnim();
                break;

            case LandlordPokerType.ShuZi:
                if (sex == 1)
                {
                    SoundManager.Instance.PlaySound(UIPaths.SHUNZHI_MAN);
                }
                else
                {
                    SoundManager.Instance.PlaySound(UIPaths.SHUNZHI_WOMAN);
                }
                // SoundManager.Instance.PlaySound(UIPaths.SHUNZHI);
                CardTypeAnim.Instance.PlayShunZhiAnim();
                break;

            case LandlordPokerType.WangBomb:
                if (sex == 1)
                {
                    SoundManager.Instance.PlaySound(UIPaths.ROCK_MAN);
                }
                else
                {
                    SoundManager.Instance.PlaySound(UIPaths.ROCK_WOMAN);
                }
                SoundManager.Instance.PlaySound(UIPaths.ROCK);
                CardTypeAnim.Instance.PlayRockAnim();
                break;
            }
            break;
        }
    }
Ejemplo n.º 4
0
    public void ProcessAction(GameObject input)
    {
        GameObject selectedCard       = UtilsScript.Instance.selectedCards[0];
        CardScript selectedCardScript = selectedCard.GetComponent <CardScript>();

        if (input.CompareTag("Card"))
        {
            CardScript inputCardScript = input.GetComponent <CardScript>();

            if (UtilsScript.Instance.selectedCards.Count == 1)
            {
                if (CardTools.CanMatch(inputCardScript, selectedCardScript))
                {
                    UtilsScript.Instance.Match(input, selectedCard);
                    return;
                }
                else if (inputCardScript.container.CompareTag("Reactor"))
                {
                    if (!CardTools.IsSameSuit(input, selectedCard))
                    {
                        return;
                    }

                    SoundEffectsController.Instance.CardToReactorSound();
                    selectedCardScript.MoveCard(inputCardScript.container);
                    UtilsScript.Instance.UpdateActions(1, checkGameOver: true);
                    return;
                }
                else if (inputCardScript.container.CompareTag("Foundation"))
                {
                    if (inputCardScript.container.GetComponent <FoundationScript>().cardList[0] != input ||
                        inputCardScript.cardNum != selectedCardScript.cardNum + 1)
                    {
                        return;
                    }

                    SoundEffectsController.Instance.CardStackSound();
                    selectedCardScript.MoveCard(inputCardScript.container);
                }
                else
                {
                    return;
                }
            }
            else if (inputCardScript.container.CompareTag("Foundation"))
            {
                if (inputCardScript.container.GetComponent <FoundationScript>().cardList[0] != input ||
                    inputCardScript.cardNum != selectedCardScript.cardNum + 1)
                {
                    return;
                }

                SoundEffectsController.Instance.CardStackSound();

                for (int i = 0; i < UtilsScript.Instance.selectedCards.Count - 1; i++) //goes through and moves all selesctedCards to clicked location
                {
                    UtilsScript.Instance.selectedCards[i].GetComponent <CardScript>().MoveCard(inputCardScript.container, isStack: true, showHolo: false);
                }

                UtilsScript.Instance.selectedCards[UtilsScript.Instance.selectedCards.Count - 1].GetComponent <CardScript>().MoveCard(inputCardScript.container, isStack: true);
            }
            else
            {
                return;
            }
        }
        else if (input.CompareTag("Reactor"))
        {
            if (UtilsScript.Instance.selectedCards.Count != 1 || !CardTools.IsSameSuit(input, selectedCard))
            {
                return;
            }

            SoundEffectsController.Instance.CardToReactorSound();
            selectedCardScript.MoveCard(input);
            UtilsScript.Instance.UpdateActions(1, checkGameOver: true);
            return;
        }
        else if (input.CompareTag("Foundation"))
        {
            if (input.GetComponent <FoundationScript>().cardList.Count != 0)
            {
                return;
            }

            SoundEffectsController.Instance.CardStackSound();

            if (UtilsScript.Instance.selectedCards.Count == 1)
            {
                selectedCardScript.MoveCard(input);
            }
            else
            {
                for (int i = 0; i < UtilsScript.Instance.selectedCards.Count - 1; i++) //goes through and moves all selesctedCards to clicked location
                {
                    UtilsScript.Instance.selectedCards[i].GetComponent <CardScript>().MoveCard(input, isStack: true, showHolo: false);
                }

                UtilsScript.Instance.selectedCards[UtilsScript.Instance.selectedCards.Count - 1].GetComponent <CardScript>().MoveCard(input, isStack: true);
            }
        }
        else
        {
            return;
        }

        UtilsScript.Instance.UpdateActions(1);
    }
    private void FindMoves(GameObject selectedCard)
    {
        CardScript selectedCardScript = selectedCard.GetComponent <CardScript>();

        int selectedCardNum = selectedCardScript.cardNum;

        bool cardIsFromFoundation = selectedCardScript.container.CompareTag("Foundation");
        bool cardIsFromWastepile  = selectedCardScript.container.CompareTag("Wastepile");

        bool cardCanBeMatched = true;

        // if the card is in a foundation and not at the top of it
        if (cardIsFromFoundation && selectedCard !=
            selectedCardScript.container.GetComponent <FoundationScript>().cardList[0])
        {
            cardCanBeMatched = false;
        }

        if (cardCanBeMatched)
        {
            foreach (GameObject reactor in Config.config.reactors)
            {
                // if the card matches the card in the top of the reactor
                if (reactor.GetComponent <ReactorScript>().cardList.Count != 0 &&
                    CardTools.CanMatch(reactor.GetComponent <ReactorScript>().cardList[0].GetComponent <CardScript>(),
                                       selectedCardScript, checkIsTop: false))
                {
                    cardMatches.Add(reactor.GetComponent <ReactorScript>().cardList[0]);
                }
            }

            // if the card is not in the reactor
            if (!selectedCard.GetComponent <CardScript>().container.CompareTag("Reactor"))
            {
                // get the reactor that we can match into
                foreach (GameObject reactor in Config.config.reactors)
                {
                    if (CardTools.IsSameSuit(selectedCard, reactor))
                    {
                        reactorMove = reactor;
                        break;
                    }
                }
            }
        }

        foreach (GameObject foundation in Config.config.foundations)
        {
            if (foundation.GetComponent <FoundationScript>().cardList.Count != 0)
            {
                CardScript topFoundationCardScript = foundation.GetComponent <FoundationScript>().cardList[0].GetComponent <CardScript>();

                // if the card can match and matches with the foundation top
                if (cardCanBeMatched && CardTools.CanMatch(selectedCardScript, topFoundationCardScript, checkIsTop: false))
                {
                    cardMatches.Add(foundation.GetComponent <FoundationScript>().cardList[0]);
                }
                // if the card is not from a reactor can it stack?
                else if ((cardIsFromFoundation || cardIsFromWastepile) &&
                         topFoundationCardScript.cardNum == selectedCardNum + 1)
                {
                    cardMoves.Add(foundation.GetComponent <FoundationScript>().cardList[0]);
                }
            }
            else if (cardIsFromFoundation || cardIsFromWastepile)
            {
                foundationMoves.Add(foundation);
            }
        }

        // if the card can match and matches with the wastepile top
        if (cardCanBeMatched && WastepileScript.Instance.cardList.Count != 0)
        {
            GameObject topWastepileCard = WastepileScript.Instance.cardList[0];
            if (CardTools.CanMatch(topWastepileCard.GetComponent <CardScript>(), selectedCardScript, checkIsTop: false))
            {
                cardMatches.Add(topWastepileCard);
            }
        }
    }
Ejemplo n.º 6
0
    public void ProcessAction(GameObject input)
    {
        if (UtilsScript.Instance.selectedCards.Count != 1)
        {
            throw new System.ArgumentException("utils.selectedCards must be of size 1");
        }

        GameObject selectedCard       = UtilsScript.Instance.selectedCards[0];
        CardScript selectedCardScript = selectedCard.GetComponent <CardScript>();

        if (input.CompareTag("Card"))
        {
            CardScript inputCardScript = input.GetComponent <CardScript>();

            if (CardTools.CanMatch(inputCardScript, selectedCardScript))
            {
                UtilsScript.Instance.Match(input, selectedCard);
                return;
            }
            else if (inputCardScript.container.CompareTag("Reactor"))
            {
                if (!CardTools.IsSameSuit(input, selectedCard))
                {
                    return;
                }

                SoundEffectsController.Instance.CardToReactorSound();
                selectedCardScript.MoveCard(inputCardScript.container);
            }
            else if (inputCardScript.container.CompareTag("Foundation"))
            {
                if (inputCardScript.container.GetComponent <FoundationScript>().cardList[0] != input ||
                    inputCardScript.cardNum != selectedCardScript.cardNum + 1)
                {
                    return;
                }

                SoundEffectsController.Instance.CardStackSound();
                selectedCardScript.MoveCard(inputCardScript.container);
            }
            else
            {
                return;
            }
        }
        else if (input.CompareTag("Reactor"))
        {
            if (!CardTools.IsSameSuit(input, selectedCard))
            {
                return;
            }

            SoundEffectsController.Instance.CardToReactorSound();
            selectedCardScript.MoveCard(input);
        }
        else if (input.CompareTag("Foundation"))
        {
            if (input.GetComponent <FoundationScript>().cardList.Count != 0)
            {
                return;
            }

            SoundEffectsController.Instance.CardStackSound();
            selectedCardScript.MoveCard(input);
        }
        else
        {
            return;
        }

        UtilsScript.Instance.UpdateActions(1);
    }