Example #1
0
 public void Pass(int actor)
 {
     if (currentSeat == bottom_seat || actor == 1)
     {
         Debug.Log(gameState.ToString());
         if (gameState == RX_GAME_STATE.QIANGDIZHU)
         {
             if (++passCount == 3)
             {
                 GetComponent <NetworkView>().RPC("InitUserList", RPCMode.Server, RX_UserManager.DefaultUser.user_name);
                 return;
             }
             if (currentSeat == bottom_seat)
             {
                 GetComponent <NetworkView>().RPC("Pass", RPCMode.Others, 1);
             }
             SetRoll(currentSeat, RX_ROLE_TYPE.RX_ROLE_NONGMIN);
             SkipHand();
             return;
         }
         if (currentSeat == bottom_seat)
         {
             GetComponent <NetworkView>().RPC("Pass", RPCMode.Others, 1);
         }
         if (++passCount < 2)     //one player pass,continue..
         {
             currentSeat.SetLabel(1, "Ҫ����");
             SkipHand();
         }
         else if (passCount == 2)
         {
             currentSeat.SetLabel(1, "Ҫ����");
             SkipHand();
             prevCardSet = null;
         }
         else                     //two player pass, cannot pass anymore, start new round..
         {
             currentSeat.SetLabel(1, "�»غ�");
             prevCardSet = null;
         }
     }
     else
     {
         labelMsg.text += "Not your turn!";
     }
 }
Example #2
0
    public void Reshuffle()
    {
        list = RX_CardManager.DefaultManager.Reshuffle();

        #region Clear the existing cards on the screen
        List <UISprite> clearBottom = new List <UISprite>(bottom_pool.GetComponentsInChildren <UISprite>());
        List <UISprite> clearLeft   = new List <UISprite>(left_pool.GetComponentsInChildren <UISprite>());
        List <UISprite> clearAll    = new List <UISprite>(right_pool.GetComponentsInChildren <UISprite>());
        clearAll.AddRange(clearBottom);
        clearAll.AddRange(clearLeft);
        clearAll.RemoveAll((UISprite obj) => { return(obj.tag == "cbottom" ||
                                                      obj.tag == "cleft" || obj.tag == "cright"); });
        for (int i = 0; i < clearAll.Count; i++)
        {
            Destroy(clearAll[i].gameObject);
        }
        #endregion

        bottom_seat           = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_BOTTOM, this.bottom_pool);
        bottom_seat.Card_list = list.GetRange(0, 17);
        RX_CardManager.ClearPool();
        left_seat           = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_LEFT, this.left_pool);
        left_seat.Card_list = list.GetRange(17, 17);
        RX_CardManager.ClearPool();
        right_seat           = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_RIGHT, this.right_pool);
        right_seat.Card_list = list.GetRange(34, 17);
        RX_CardManager.ClearPool();

        foreach (KeyValuePair <RX_SEAT_POSITION, List <UISprite> > item in RX_CardManager.HandedSprites)
        {
            for (int i = 0; i < item.Value.Count; i++)
            {
                Destroy(item.Value[i]);
            }
        }

        prevCardSet = null;
    }
Example #3
0
    void InitReshuffleRPC(string pokerInfos)
    {
        #region Clear the existing cards on the screen
        List <UISprite> clearBottom = new List <UISprite>(bottom_pool.GetComponentsInChildren <UISprite>());
        List <UISprite> clearLeft   = new List <UISprite>(left_pool.GetComponentsInChildren <UISprite>());
        List <UISprite> clearAll    = new List <UISprite>(right_pool.GetComponentsInChildren <UISprite>());
        clearAll.AddRange(clearBottom);
        clearAll.AddRange(clearLeft);
        clearAll.RemoveAll((UISprite obj) =>
        {
            return(obj.tag == "cbottom" ||
                   obj.tag == "cleft" || obj.tag == "cright");
        });
        for (int i = 0; i < clearAll.Count; i++)
        {
            Destroy(clearAll[i].gameObject);
        }
        #endregion

        string[] pairs = pokerInfos.Split('|');

        //convert pokerInfo to cardList
        int[] cardsdInfo = new int[54];
        for (int i = 0; i < 54; i++)
        {
            cardsdInfo[i] = int.Parse(pairs[i].Split(':')[1]);
        }
        list = CreateCardList(cardsdInfo);

        //if current player is the 2nd player...
        if (pairs[17].Split(':')[0] == RX_UserManager.DefaultUser.user_name)
        {
            //generate cardInfo array,(killed userName)  -- me bottom
            labelBottom.text             = (pairs[17].Split(':')[0]);
            bottom_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_BOTTOM, this.bottom_pool);
            bottom_seat.Card_list        = list.GetRange(17, 17);
            bottom_seat.Seat_user        = pairs[17].Split(':')[0];
            bottom_seat.Handed_container = handed_bootom;
            RX_CardManager.ClearPool();

            //server -- right
            labelRight.text             = (pairs[0].Split(':')[0]);
            right_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_RIGHT, this.right_pool);
            right_seat.Card_list        = list.GetRange(0, 17);
            right_seat.Seat_user        = pairs[0].Split(':')[0];
            right_seat.Handed_container = handed_right;
            RX_CardManager.ClearPool();

            //3rd -- left
            labelLeft.text             = (pairs[34].Split(':')[0]);
            left_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_LEFT, this.left_pool);
            left_seat.Card_list        = list.GetRange(34, 17);
            left_seat.Seat_user        = pairs[34].Split(':')[0];
            left_seat.Handed_container = handed_left;
            RX_CardManager.ClearPool();

            //set diZhu....
            InitGame(right_seat);
        }

        //if current player is the 3nd player...
        if (pairs[34].Split(':')[0] == RX_UserManager.DefaultUser.user_name)
        {
            //generate cardInfo array,(killed userName)  -- me bottom
            labelBottom.text             = (pairs[34].Split(':')[0]);
            bottom_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_BOTTOM, this.bottom_pool);
            bottom_seat.Card_list        = list.GetRange(34, 17);
            bottom_seat.Seat_user        = pairs[34].Split(':')[0];
            bottom_seat.Handed_container = handed_bootom;
            RX_CardManager.ClearPool();

            //server -- left
            labelLeft.text             = (pairs[0].Split(':')[0]);
            left_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_LEFT, this.left_pool);
            left_seat.Card_list        = list.GetRange(0, 17);
            left_seat.Seat_user        = pairs[0].Split(':')[0];
            left_seat.Handed_container = handed_left;
            RX_CardManager.ClearPool();

            //3rd -- right
            labelRight.text             = (pairs[17].Split(':')[0]);
            right_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_RIGHT, this.right_pool);
            right_seat.Card_list        = list.GetRange(17, 17);
            right_seat.Seat_user        = pairs[17].Split(':')[0];
            right_seat.Handed_container = handed_right;
            RX_CardManager.ClearPool();

            //set diZhu....
            InitGame(left_seat);
        }

        //if current player is the server player...
        if (pairs[0].Split(':')[0] == RX_UserManager.DefaultUser.user_name)
        {
            //generate cardInfo array,(killed userName)  -- me bottom
            labelBottom.text             = (pairs[0].Split(':')[0]);
            bottom_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_BOTTOM, this.bottom_pool);
            bottom_seat.Card_list        = list.GetRange(0, 17);
            bottom_seat.Seat_user        = pairs[0].Split(':')[0];
            bottom_seat.Handed_container = handed_bootom;
            RX_CardManager.ClearPool();

            //server -- left
            labelLeft.text             = (pairs[17].Split(':')[0]);
            left_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_LEFT, this.left_pool);
            left_seat.Card_list        = list.GetRange(17, 17);
            left_seat.Seat_user        = pairs[17].Split(':')[0];
            left_seat.Handed_container = handed_left;
            RX_CardManager.ClearPool();

            //3rd -- right
            labelRight.text             = (pairs[34].Split(':')[0]);
            right_seat                  = new RX_SeatInfo(RX_SEAT_POSITION.RX_SEAT_RIGHT, this.right_pool);
            right_seat.Card_list        = list.GetRange(34, 17);
            right_seat.Seat_user        = pairs[34].Split(':')[0];
            right_seat.Handed_container = handed_right;
            RX_CardManager.ClearPool();

            //set diZhu....
            InitGame(bottom_seat);
        }

        //clear handed cards
        foreach (KeyValuePair <RX_SEAT_POSITION, List <UISprite> > item in RX_CardManager.HandedSprites)
        {
            for (int i = 0; i < item.Value.Count; i++)
            {
                Destroy(item.Value[i]);
            }
        }
        //new prevCardSet
        prevCardSet = null;
    }
Example #4
0
    public void PopSet(int actor)
    {
        if (currentSeat == bottom_seat || actor == 1)
        {
            if (gameState == RX_GAME_STATE.QIANGDIZHU)
            {
                SetRoll(currentSeat, RX_ROLE_TYPE.RX_ROLE_DIZHU);
                giveAHandButtonLabel.text = "����";
                gameState = RX_GAME_STATE.PLAYING;
                if (currentSeat == bottom_seat)
                {
                    GetComponent <NetworkView>().RPC("PopSet", RPCMode.Others, 1);
                }
                return;
            }

            currentCardSet = currentSeat.PopCardSet();
            if (currentCardSet == null)
            {
                currentSeat.ClearPopCard();
                labelMsg.text = "Failed!";
            }
            else
            {
                //tongBu other's pop cards    RX_CardSet
                if (currentSeat == bottom_seat)
                {
                    string sendData = "";
                    for (int i = 0; i < currentCardSet.Card_lister.Count; i++)
                    {
                        sendData += currentCardSet.Card_lister[i].ToString() + "|";
                    }
                    GetComponent <NetworkView>().RPC("TongBuPopSet", RPCMode.Others, sendData);
                }

                currentSeat.ClearPopCard();
                passCount = 0;

                if (currentSeat.Card_list.Count == 0)
                {
                    labelMsg.text = currentSeat.Seat_label.text.Split('-')[0] + "��ʤ!";
                    return;
                }
                currentSeat.SetLabel(1, "�ȴ�����");

                //set currentSet to next
                SkipHand();

                labelMsg.text  = "Play Success!\n";
                labelMsg.text += (currentCardSet.Card_type + "\n" + currentCardSet.Card_level.ToString() + "\n");
                labelMsg.text += "-->" + currentSeat.Seat_pos.ToString() + "<-- turn!\n";
                prevCardSet    = currentCardSet;
                currentCardSet = null;
                return;
            }
        }
        else
        {
            labelMsg.text += "Not your turn!";
        }
    }