//开关微信邀请好友 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); } } }
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(); } }
//更改对应玩家信息显示 //参数座位类 位置索引(转化后的位置) 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);//设置开始游戏按钮遮罩 } }
/// <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)); } } }
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; } }
//具体设置 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); } }
/// <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); } } }
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]); } } }
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);//走马灯 //下注 }
/// <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); }
//公开牌型动画 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 }
/// <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); }
/// <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; } }