コード例 #1
0
        public void OpenAPoker(NN_ROOM_DRAW proto)
        {
            if (proto.hasPos())
            {
                NiuNiu.Seat seat = GetSeatBySeatPos(proto.pos);
                if (seat == null)
                {
                    return;
                }

                List <NN_POKER> prPokerList = proto.getNnPokerList();


                //便利应该开的牌
                for (int i = 0; i < prPokerList.Count; i++)
                {
                    //找到对应牌
                    for (int k = 0; k < seat.PokerList.Count; k++)
                    {
                        if (prPokerList[i].index > 0 && prPokerList[i].index == seat.PokerList[k].index)
                        {
                            seat.PokerList[k].SetPoker(prPokerList[i]);
                            seat.PokerList[k].status = NN_ENUM_POKER_STATUS.POKER_STATUS_UPWARD;
                        }
                    }
                }
                SendSeatInfoChangeNotify(seat);

                //UI翻牌
                //显示这些牌
                TransferData data = new TransferData();
                data.SetValue <NiuNiu.Seat>("Seat", seat);
                SendNotification(ConstDefine_NiuNiu.ObKey_SetShowPokersUI, data); //设置某玩家手牌
            }
        }
コード例 #2
0
        /// <summary>
        ///  服务器广播某玩家打开某些牌
        /// </summary>
        /// <param name="obj"></param>
        public void OpenAPoker(byte[] obj)
        {
            NN_ROOM_DRAW proto = NN_ROOM_DRAW.decode(obj);

            RoomNiuNiuProxy.Instance.OpenAPoker(proto);

            if (proto.hasPos() && proto.pos == RoomNiuNiuProxy.Instance.PlayerSeat.Pos)
            {
                NiuNiuGameCtrl.Instance.UIRubPokerViewClose();
            }
        }
コード例 #3
0
    /// <summary>
    /// 打开搓牌界面
    /// </summary>
    private void OpenRubPokerWindow()
    {
        if (m_UIRubPokerView != null)
        {
            return;
        }


        UIViewUtil.Instance.LoadWindowAsync(UIWindowType.RubPoker_NiuNiu, (GameObject go) =>
        {
            m_UIRubPokerView = go.GetComponent <UIRubPokerView_NiuNiu>();
            m_UIRubPokerView.SetUI(RoomNiuNiuProxy.Instance.PlayerSeat, () => {
                UIRubPokerViewClose();

                if (RoomNiuNiuProxy.Instance.CurrentRoom.roomStatus != NN_ENUM_ROOM_STATUS.LOOKPOCKER && RoomNiuNiuProxy.Instance.PlayerSeat.Pour <= 0)
                {
                    return;
                }

                //向服务器申请 翻开这张
                object[] obj = new object[] { 4 };
                NiuNiuEventDispatcher.Instance.Dispatch("NeedOpenPokerNiuNiu", obj);
                //模拟开牌
                Poker pokerLocal   = RoomNiuNiuProxy.Instance.PlayerSeat.PokerList[RoomNiuNiuProxy.Instance.PlayerSeat.PokerList.Count - 1];
                NN_ROOM_DRAW proto = new NN_ROOM_DRAW();
                proto.pos          = RoomNiuNiuProxy.Instance.PlayerSeat.Pos;
                NN_POKER poker     = new NN_POKER();
                poker.index        = pokerLocal.index;
                poker.size         = pokerLocal.size;
                poker.color        = pokerLocal.color;
                poker.pokerStatus  = pokerLocal.status;
                proto.addNnPoker(poker);
                RoomNiuNiuProxy.Instance.OpenAPoker(proto);

                //TransferData data = new TransferData();
                //data.SetValue<NiuNiu.Seat>("Seat", RoomNiuNiuProxy.Instance.PlayerSeat);
                //SendNotification("SetShowPokersUI", data);//设置某玩家手牌
            });
        }
                                            );
    }