//开关微信邀请好友
        void SwitchViewShare(NN_ENUM_ROOM_STATUS roomStatus, NiuNiu.Seat PlayerSeat, int loop)
        {
            if (!SystemProxy.Instance.IsInstallWeChat || !SystemProxy.Instance.IsOpenWXLogin)
            {
                _ViewShareClickBtn.gameObject.SetActive(false);
                return;
            }

#if IS_CANGZHOU
            if (loop > 0)
            {
                _ViewShareClickBtn.gameObject.SetActive(false);
                return;
            }
#endif

            if (roomStatus == NN_ENUM_ROOM_STATUS.IDLE && PlayerSeat.IsBanker)
            {
                if (!_ViewShareClickBtn.gameObject.activeSelf)
                {
                    _ViewShareClickBtn.gameObject.SetActive(true);
                    NiuNiuWindWordAni.PopUp(_ViewShareClickBtn);
                }
            }
            else
            {
                if (_ViewShareClickBtn.gameObject.activeSelf)
                {
                    _ViewShareClickBtn.gameObject.SetActive(false);
                }
            }
        }
Beispiel #2
0
        public void build(byte[] data)
        {
            ByteBuffer buf = ByteBuffer.wrap(data);

            for (int i = 0; i < this.__flag.Length; i++)
            {
                this.__flag[i] = buf.get();
            }

            if (this.hasUnixtime())
            {
                this.unixtime = buf.getLong();
            }

            if (this.hasPos())
            {
                this.pos = buf.getInt();
            }

            if (this.hasDissolve())
            {
                this.dissolve = (NN_ENUM_SEAT_DISSOLVE)buf.get();
            }

            if (this.hasNnRoomStatus())
            {
                this.nn_room_status = (NN_ENUM_ROOM_STATUS)buf.get();
            }
        }
Beispiel #3
0
        //更改对应玩家信息显示
        //参数座位类     位置索引(转化后的位置)
        void SetItemInfoUI(NiuNiu.Seat seat, int pos, NN_ENUM_ROOM_STATUS roomStatus)
        {
            //打开这一Item
            ShowPlayerItem(pos);

            //显示该位置完整信息
            playersItem[pos].ShowWholeItem(seat, roomStatus);
            //Debug.Log("位置" + pos + "的牌型是" + seat.PockeType);
        }
        /// <summary>
        /// 座位信息变更回调
        /// </summary>
        /// <param name="obj"></param>
        private void OnSeatInfoChanged(TransferData data)
        {
            Seat seat     = data.GetValue <Seat>("Seat");                                       //座位
            bool isPlayer = data.GetValue <bool>("IsPlayer");                                   //是否自己
            NN_ENUM_ROOM_STATUS roomStatus = data.GetValue <NN_ENUM_ROOM_STATUS>("RoomStatus"); //房间状态
            Room currentRoom      = data.GetValue <Room>("CurrentRoom");                        //当前房间
            Seat BankerSeat       = data.GetValue <Seat>("BankerSeat");                         //庄家座位
            Seat ChooseBankerSeat = data.GetValue <Seat>("ChooseBankerSeat");                   //当前选庄座位
            int  playerNumber     = data.GetValue <int>("playerNumber");                        //当前房间玩家人数

            if (isPlayer)
            {
                //m_ButtonReady.gameObject.SetActive(!seat.isReady && seat.seatStatus == SEAT_STATUS.IDLE);
                //m_ButtonShare.gameObject.SetActive(roomStatus == ROOM_STATUS.IDLE);

                ////设置开始按钮
                //SetStartBtn(currentRoom, seat);

                //if (!SystemProxy.Instance.IsInstallWeChat)
                //{
                //    m_ButtonShare.gameObject.SetActive(false);
                //}
                ////m_CancelAuto.gameObject.SetActive(seat.IsTrustee);


                ////=================================设置下注按钮=================================================================================
                ////                                                             是庄 自己未下注                                    不是庄 自己未下注 庄家已下注
                //// m_Operater.NoticeJetton(roomStatus == ROOM_STATUS.POUR && (BankerSeat != null) && ((seat.IsBanker && seat.Pour <= 0) || ((seat.Pour <= 0) && (!seat.IsBanker) && BankerSeat.Pour > 0)), seat);
                //m_Operater.NoticeJetton(roomStatus == ROOM_STATUS.GAME && seat.seatStatus == SEAT_STATUS.POUR, seat, currentRoom.baseScore);
                ////RoomJuYouProxy

                ////=================================设置选庄=================================================================================
                ////选庄按钮
                //// m_Operater.ChooseBanker(roomStatus == ROOM_STATUS.CHOOSEBANKER && currentRoom.ChooseBankerSeat != null && currentRoom.ChooseBankerSeat == seat);


                _SelectScore.gameObject.SetActive(roomStatus == NN_ENUM_ROOM_STATUS.POUR && !seat.IsBanker && seat.Pour == 0 && (currentRoom.superModel == Room.SuperModel.CommonRoom || currentRoom.superModel == Room.SuperModel.PassionRoom && seat.PokerList[0].index > 0)); //下注项


                SwitchOpenPokerBtn(currentRoom);                       //设置开牌按钮显影
                SwitchHint(roomStatus, seat);                          //横条提示
                SwitchDecisionBnaker(seat, currentRoom, playerNumber); //确认庄阶段按钮

                //_ViewShareClickBtn.gameObject.SetActive(roomStatus ==  NN_ENUM_ROOM_STATUS.IDLE);//微信邀请

                //if (!SystemProxy.Instance.IsInstallWeChat)
                //{
                //    _ViewShareClickBtn.gameObject.SetActive(false);
                //}
                SwitchViewShare(roomStatus, seat, currentRoom.currentLoop);
                //准备
                _ReadyBtn.gameObject.SetActive(currentRoom.currentLoop == 0 && currentRoom.roomStatus == NN_ENUM_ROOM_STATUS.IDLE && !seat.IsBanker && !seat.IsReady);

                SwitchEnableAllowStartBtn(currentRoom, playerNumber);//设置开始游戏按钮遮罩
            }
        }
Beispiel #5
0
 /// <summary>
 /// 进入房间
 /// </summary>
 /// <param name="seatList"></param>
 public void SetEnterRoomUI(List <NiuNiu.Seat> seatList, NN_ENUM_ROOM_STATUS roomStatus)
 {
     for (int i = 0; i < seatList.Count; i++)
     {
         if (seatList[i] != null && (seatList[i].PlayerId > 0))
         {
             SetItemInfoUI(seatList[i], seatList[i].Index, roomStatus);  //应改为更具信息 显示全部
             Debug.Log(string.Format("刷新房间全部信息:玩家位置{0},玩家座位转化后索引{1}", seatList[i].Pos, seatList[i].Index));
         }
     }
 }
Beispiel #6
0
        public void SetSeatInfo(Seat seat, NN_ENUM_ROOM_STATUS roomStatus)
        {
            m_SeatPos = seat.Pos;

            if (!gameObject.activeSelf && seat.PlayerId != 0)
            {
                SetGold(seat.Gold);                                              //从新开启 则刷新
            }
            gameObject.SetActive(seat.PlayerId != 0);
            //m_PlayerInfo.SetUI(seat);
            RefreshBasicInfo(seat);
            _isReadyTo.gameObject.SetActive(RoomNiuNiuProxy.Instance.CurrentRoom.currentLoop == 0 && RoomNiuNiuProxy.Instance.CurrentRoom.roomStatus == NN_ENUM_ROOM_STATUS.IDLE && seat.IsReady);
        }
        /// <summary>
        ///   设置提示
        /// </summary>
        /// <param name="onOff"></param>
        /// <param name="hintIndex"></param>
        void SwitchHint(NN_ENUM_ROOM_STATUS status, NiuNiu.Seat PlayerSeat)
        {
            bool currActiveSelf = _Hint.rectTransform.parent.gameObject.activeSelf;



            switch (status)
            {
            case NN_ENUM_ROOM_STATUS.IDLE:

                _Hint.rectTransform.parent.gameObject.SetActive(PlayerSeat.IsReady && !PlayerSeat.IsBanker);
                _Hint.text = NiuNiu.ConstDefine_NiuNiu.RoomStateHint_Wait;
                break;

            case NN_ENUM_ROOM_STATUS.BEGIN:
                _Hint.rectTransform.parent.gameObject.SetActive(false);
                break;

            case NN_ENUM_ROOM_STATUS.RSETTLE:
                //_Hint.text = NiuNiu.ConstDefine_NiuNiu.RoomStateHint_SweepTable;
                //_Hint.rectTransform.parent.gameObject.SetActive(true);
                _Hint.rectTransform.parent.gameObject.SetActive(false);
                break;

            case NN_ENUM_ROOM_STATUS.DEAL:
                //_Hint.text = NiuNiu.ConstDefine_NiuNiu.RoomStateHint_Wait;
                _Hint.rectTransform.parent.gameObject.SetActive(false);
                break;

            case NN_ENUM_ROOM_STATUS.POUR:
                _Hint.text = NiuNiu.ConstDefine_NiuNiu.RoomStateHint_Pour;
                _Hint.rectTransform.parent.gameObject.SetActive(PlayerSeat.IsBanker);
                break;

            case NN_ENUM_ROOM_STATUS.LOOKPOCKER:
                _Hint.text = NiuNiu.ConstDefine_NiuNiu.RoomStateHint_LoopPoker;
                _Hint.rectTransform.parent.gameObject.SetActive(true);
                break;

            case NN_ENUM_ROOM_STATUS.HOG:
                //_Hint.text = NiuNiu.ConstDefine_NiuNiu.RoomStateHint_HOG;
                _Hint.rectTransform.parent.gameObject.SetActive(false);
                break;

            case NN_ENUM_ROOM_STATUS.GAMEOVER:
                break;

            default:
                break;
            }
        }
Beispiel #8
0
        //具体设置
        void RoomOpenPokerSettleAniPerform(NiuNiu.Seat seat, NN_ENUM_ROOM_STATUS roomStatus)
        {
            UISceneView_NiuNiu.Instance.SetShowTypeUI(seat, seat.Index, roomStatus); //显示牌型信息
            UISceneView_NiuNiu.Instance.PlayEarningsAni(seat, seat.Index);           //动画显示本局收益信息  SetGold
            Debug.Log("位置" + seat.Pos + "服务器传递收益为:" + seat.Earnings);

            StartCoroutine(delaySetGold(seat));                    //更新玩家积分 SetGold

            playersItem[seat.Index].SetAllPokerUI(seat.PokerList); //刷新牌

            if (!isPlayDrawPokerAni)
            {
                playersItem[seat.Index].SetPokerPos(seat.PokerList);                     //计算是否移动牌位置
            }
        }
        /// <summary>
        ///  //开关选择下注分数
        /// </summary>
        /// <param name="seat"></param>
        /// <param name="roomStatus"></param>
        public void SwitchSelectScore(NiuNiu.Seat playerSeat, NN_ENUM_ROOM_STATUS roomStatus)
        {
            if (roomStatus != NN_ENUM_ROOM_STATUS.POUR)
            {
                _SelectScore.gameObject.SetActive(false);
                return;
            }

            if (!playerSeat.IsBanker && playerSeat.Pour == 0)
            {
                _SelectScore.gameObject.SetActive(true);
            }
            else
            {
                _SelectScore.gameObject.SetActive(false);
            }
        }
Beispiel #10
0
        /// <summary>
        /// 设置手牌牌型显示  (参数牌型 或 牌型资源索引 )
        /// </summary>
        /// <param name="pokersType"></param>
        public void SetPockeTypeUI(int pokersType, NN_ENUM_ROOM_STATUS roomStatus)
        {
            if (pokersType >= -1 && pokersType <= 17)
            {
                string pokerName = "niuniu_pokertype0";
                if (pokersType == -1)
                {
                    pokerName = "niuniu_pokertype0";
                    _pockeType.gameObject.SetActive(true);
                }
                if (pokersType > 0)
                {
                    pokerName = "niuniu_pokertype" + pokersType;
                    _pockeType.gameObject.SetActive(true);
                }
                if (pokersType == 0 || roomStatus != NN_ENUM_ROOM_STATUS.RSETTLE)
                {
                    _pockeType.gameObject.SetActive(false);
                }


                if (_pockeType.gameObject.activeSelf)
                {
                    Sprite currSprite = null;
                    string pathK      = string.Format("download/{0}/source/uisource/niuniu.drb", ConstDefine.GAME_NAME);
                    currSprite = AssetBundleManager.Instance.LoadSprite(pathK, pokerName);

                    if (currSprite != null)
                    {
                        _pockeType.sprite = currSprite;
                    }


                    if (myPokerTypeSequence != null)
                    {
                        _pockeType.rectTransform.localScale = Vector3.one * 3;
                        myPokerTypeSequence.Restart();
                    }
                    //NiuNiuWindWordAni.PokerTypeAni(_pockeType.rectTransform);
                    //播放声音
                    string pokerTypeAudio = string.Format("{0}_PokerType{1}_niuniu", _gender, pokersType);
                    AudioEffectManager.Instance.Play(pokerTypeAudio, Vector3.zero);
                }
            }
        }
Beispiel #11
0
        public void SetRoom(NN_ROOM prRoom)
        {
            if (prRoom.hasNnRoomStatus())
            {
                roomStatus = prRoom.nn_room_status;
            }

            if (prRoom.hasLoop())
            {
                currentLoop = prRoom.loop;
            }

            if (prRoom.hasMaxLoop())
            {
                maxLoop = prRoom.maxLoop;
            }

            if (prRoom.hasUnixtime())
            {
                serverTime = prRoom.unixtime;
            }



            List <NN_SEAT> prPokerList = prRoom.getNnSeatList();

            for (int i = 0; i < prPokerList.Count; i++)
            {
                if (prPokerList[i] != null && (prPokerList[i].pos > 0 || prPokerList[i].playerId > 0))//&& pBRoom.SeatList[i].Pos== CurrentRoom.SeatList[i].Pos)
                {
                    //--------------1-----------------
                    for (int j = 0; j < SeatList.Count; j++)
                    {
                        if (prPokerList[i].pos == SeatList[j].Pos)
                        {
                            SeatList[j].SetSeat(prPokerList[i]);
                            break;
                        }
                    }
                    //------------2-------------------
                    //Syn(pBRoom.SeatList[i]);
                }
            }
        }
Beispiel #12
0
        private void OnSeatInfoChanged(TransferData data)
        {
            //PaiJiu.UIItemSeat_PaiJiu
            Seat seat = data.GetValue <Seat>("Seat");
            NN_ENUM_ROOM_STATUS roomStatus = data.GetValue <NN_ENUM_ROOM_STATUS>("RoomStatus");
            Seat BankerSeat = data.GetValue <Seat>("BankerSeat");  //庄家座位
            Room currRoom   = data.GetValue <Room>("CurrentRoom"); //当前房间
            // PAIGOW_ENUM_ROOM_STATUS roomStatus = data.GetValue<RoomEntity.RoomStatus>("RoomStatus");
            bool IsPlayer = data.GetValue <bool>("IsPlayer");

            if (m_nSeatIndex != seat.Index)
            {
                return;
            }
            if (!gameObject.activeSelf && seat.PlayerId <= 0)
            {
                return;
            }
            SetSeatInfo(seat, roomStatus);

            //设置走马灯
            SetChooseBankerHint(seat.IsBanker);
            //SetChooseBankerHint( (roomStatus != NN_ENUM_ROOM_STATUS.HOG && seat.IsBanker) || (roomStatus == NN_ENUM_ROOM_STATUS.HOG && currRoom.RobBankerSeat != null && seat == currRoom.RobBankerSeat));
            //设置已下注
            SetBaseScoreUI(seat.Pour);
            //设置庄
            SetBanker((seat.IsBanker && (currRoom.roomModel != Room.RoomModel.robBanker || currRoom.roomStatus != NN_ENUM_ROOM_STATUS.HOG)));

            //设置是否抢庄标识
            if (currRoom.roomModel == Room.RoomModel.robBanker)
            {
                SetRobBanker(seat, roomStatus);
            }
            ////设置牌型
            //SetPockeTypeUI(seat.PockeType, roomStatus);
            //设置牌
            //SetAllPokerUI(seat.PokerList);


            //m_Pour.transform.parent.gameObject.SetActive(seat.Pour > 0);
            //m_Pour.SafeSetText(seat.Pour.ToString());
            //SetChooseBankerHint(seat.seatStatus == SEAT_STATUS.POUR || seat.seatStatus == SEAT_STATUS.SETTLE);//走马灯
            //下注
        }
Beispiel #13
0
        /// <summary>
        /// 根据信息打开这个Item 完整信息
        /// </summary>
        /// <param name="seat"></param>
        public void ShowWholeItem(NiuNiu.Seat seat, NN_ENUM_ROOM_STATUS roomStatus)
        {
            //头像
            SetAvatarUI(seat.Avatar);
            //昵称
            SetNicknameUI(seat.Nickname);
            //玩家是否准备
            SetIsReadyToUI(seat.IsReady);
            //是否是庄
            SetBankerUI(seat.IsBanker);


            //当前分数
            SetGold(seat.Gold);

            //下注显示
            SetBaseScoreUI(seat.Pour);
            //_banker.gameObject.SetActive(false);


            //牌型
            SetPockeTypeUI(seat.PockeType, roomStatus);

            //牌
            SetAllPokerUI(seat.PokerList);

            //PokerPos
            if (roomStatus == NN_ENUM_ROOM_STATUS.RSETTLE)
            {
                if (seat.PokerList[0].index > 0)
                {
                    SetPokerPos(seat.PokerList);
                }
            }
            Debug.Log("位置" + seat.Pos + "的玩家是否胜利" + seat.Winner);
        }
Beispiel #14
0
        //公开牌型动画
        IEnumerator RoomOpenPokerSettleAni(NiuNiu.Room room)//NN_ENUM_ROOM_STATUS roomStatus
        {
            List <NiuNiu.Seat>  seatList   = room.SeatList;
            NN_ENUM_ROOM_STATUS roomStatus = room.roomStatus;

            NiuNiu.Seat playerSeat = null;
            for (int i = 0; i < seatList.Count; i++)
            {
                if (seatList[i].Index == 0)
                {
                    playerSeat = seatList[i];
                    break;
                }
            }
            //yield return 0;

            for (int i = 0; i < seatList.Count; i++)
            {
                if (seatList[i] != null && seatList[i].PlayerId > 0 && seatList[i].PockeType != 0 && !seatList[i].IsBanker)
                {
                    RoomOpenPokerSettleAniPerform(seatList[i], roomStatus);
                }
                else
                {
                    continue;
                }

                yield return(new WaitForSeconds(PokerTypeAniIntervalTime));
            }


            //显示庄的各种动画
            for (int i = 0; i < seatList.Count; i++)
            {
                if (seatList[i].IsBanker)
                {
                    //
                    RoomOpenPokerSettleAniPerform(seatList[i], roomStatus);
                    yield return(new WaitForSeconds(PokerTypeAniIntervalTime));

                    break;
                }
            }

#if IS_WANGQUE
            //显示通杀 通赔
            PlayTongCompensateKill(seatList);
#endif

            //显示金币移动
            GoldFlowCtrl_NiuNiu.Instance.GoldFlowAni(seatList);


#if IS_CANGZHOU
            if (room.superModel == Room.SuperModel.CommonRoom)
            {
                //每局小结算
                yield return(new WaitForSeconds(popupUnitAni));

                NiuNiuGameCtrl.Instance.OpenView(UIWindowType.UnitSettlement_NiuNiu);//管理器调用
            }
#endif

            //#if IS_WANGQUE
            //            if (room.superModel == Room.SuperModel.PassionRoom)
            //            {
            //                const string prefabName = "UIItemSeniorSettle_NiuNiu";
            //                string prefabPath = string.Format("download/{0}/prefab/uiprefab/uiitems/{1}.drb", ConstDefine.GAME_NAME, prefabName);
            //                GameObject go = AssetBundleManager.Instance.LoadAssetBundle<GameObject>(prefabPath, prefabName);
            //                go = UnityEngine.Object.Instantiate(go);
            //                go.SetParent(m_EffectContainer.transform);
            //                 go.GetComponent<UIItemSeniorSettle_NiuNiu>().SetUI(playerSeat !=null ? playerSeat.Earnings:0);

            //            }
            //#endif
        }
Beispiel #15
0
 /// <summary>
 /// 设置是否抢庄
 /// </summary>
 /// <param name="isBanker"></param>
 public void SetRobBanker(Seat seat, NN_ENUM_ROOM_STATUS roomStatus)
 {
     m_isRobBanker[0].gameObject.SetActive(seat.isAlreadyHOG == 1); //抢
     m_isRobBanker[1].gameObject.SetActive(seat.isAlreadyHOG == 2); //不抢
     m_isRobBanker[0].transform.parent.gameObject.SetActive(roomStatus == NN_ENUM_ROOM_STATUS.HOG);
 }
Beispiel #16
0
 /// <summary>
 ///  显示牌型
 /// </summary>
 /// <param name="seat"></param>
 /// <param name="pos"></param>
 public void SetShowTypeUI(NiuNiu.Seat seat, int pos, NN_ENUM_ROOM_STATUS roomStatus)
 {
     playersItem[pos].SetPockeTypeUI(seat.PockeType, roomStatus);
 }
        /// <summary>
        /// 处理开关 换庄系列(换庄 抢庄等)
        /// </summary>
        /// <param name="seat"></param>
        /// <param name="room"></param>
        public void SwitchDecisionBnaker(NiuNiu.Seat seat, NiuNiu.Room room, int playerNumber)
        {
            NN_ENUM_ROOM_STATUS roomStatus = room.roomStatus;

            bool currActiveSelfBankerBtn   = _BankerBtnParent.gameObject.activeSelf;
            bool currActiveSelfNoBankerBtn = _NoBankerBtnParent.gameObject.activeSelf;


            Debug.Log(string.Format("处理开关换庄按钮 房间状态:{0},自己ID:{1},庄:{2}", roomStatus.ToString(), seat.PlayerId, seat.IsBanker));

            if (roomStatus == NN_ENUM_ROOM_STATUS.IDLE || roomStatus == NN_ENUM_ROOM_STATUS.DISSOLVE)
            {
                //庄
                if (seat.IsBanker && playerNumber >= 2)
                {
                    if (currActiveSelfBankerBtn == false)
                    {
                        _BankerBtnParent.gameObject.SetActive(true);
                        NiuNiuWindWordAni.PopUp(_BankerBtnParent);
                    }
                }
                else
                {
                    _BankerBtnParent.gameObject.SetActive(false);
                }

                //非庄
                //if (!seat.IsBanker && currActiveSelfBankerBtn == true)
                //{
                _NoBankerBtnParent.gameObject.SetActive(false);
                //}
            }
            else if (roomStatus == NN_ENUM_ROOM_STATUS.HOG)
            {
                _BankerBtnParent.gameObject.SetActive(false);
                if (room.roomModel == Room.RoomModel.robBanker)
                {
                    _NoBankerBtnParent.gameObject.SetActive(seat.isAlreadyHOG == 0 && seat.PokerList[0].index > 0);

                    if (seat.isAlreadyHOG == 0 && seat.PokerList[0].index > 0 && currActiveSelfNoBankerBtn == false)
                    {
                        NiuNiuWindWordAni.PopUp(_NoBankerBtnParent);
                    }
                }
                else if (room.roomModel == Room.RoomModel.AbdicateBanker)
                {
                    _NoBankerBtnParent.gameObject.SetActive(!seat.IsBanker && seat.isAlreadyHOG == 0);
                    if (!seat.IsBanker && seat.isAlreadyHOG == 0 && currActiveSelfNoBankerBtn == false)
                    {
                        NiuNiuWindWordAni.PopUp(_NoBankerBtnParent);
                    }
                }
            }
            else
            {
                if (currActiveSelfBankerBtn)
                {
                    _BankerBtnParent.gameObject.SetActive(false);
                }
                if (currActiveSelfNoBankerBtn)
                {
                    _NoBankerBtnParent.gameObject.SetActive(false);
                }
                return;
            }
        }