/// <summary> /// 初始化房间信息 构建房间 /// </summary> /// <param name="proto"></param> public void InitRoom(PAIGOW_ROOM protoRoom) //------------------------使用协议类 接收全部信息 例骰子-------------------------------------------- { BankerSeat = null; CurrentRoom = new PaiJiu.Room() { currentLoop = protoRoom.loop, roomId = protoRoom.roomId, //matchId = protoRoom.matchId,//比赛场 roomStatus = protoRoom.room_status, maxLoop = protoRoom.maxLoop, mahJongSum = protoRoom.mahJongSum, }; if (protoRoom.hasLoopEnd()) { CurrentRoom.loopEnd = protoRoom.loopEnd; } if (protoRoom.hasRemainMahjong()) { CurrentRoom.remainMahjong = protoRoom.remainMahjong; } Debug.Log("初始化房间信息 构建房间 CurrentRoom 房间ID" + CurrentRoom.roomId + "状态:" + CurrentRoom.roomStatus); //收到数据存到模型基类<------------------------------<保存配置>---------------------------------------- CurrentRoom.Config.Clear(); for (int i = 0; i < protoRoom.getSettingIdList().Count; i++) { cfg_settingEntity settingEntity = cfg_settingDBModel.Instance.Get(protoRoom.getSettingId(i)); if (settingEntity != null) { CurrentRoom.Config.Add(settingEntity); } } //NiuNiu.RoomNiuNiuProxy //获得当前游戏模式 for (int i = 0; i < CurrentRoom.Config.Count; i++) { if (CurrentRoom.Config[i].tags.Equals("banker")) { CurrentRoom.roomModel = (ROOM_MODEL)(CurrentRoom.Config[i].value - 1); Debug.Log("服务器发送的房间 庄模式为为:" + CurrentRoom.Config[i].value); } } //------------------------------------------------骰子数据 Debug.Log("-----剩余牌墙具体信息---protoRoom.hasMahjongs_remain()--------" + protoRoom.hasMahjongs_remain()); //剩余牌墙具体信息 if (protoRoom.hasMahjongs_remain()) { Debug.Log("-----剩余牌墙具体信息-----------" + protoRoom.getMahjongs_remainList().Count); List <PAIGOW_MAHJONG> Mahjongs_remain = protoRoom.getMahjongs_remainList(); CurrentRoom.pokerWall.Clear(); for (int i = 0; i < Mahjongs_remain.Count; i++) { Poker poker = new Poker(); poker.SetPoker(Mahjongs_remain[i]); CurrentRoom.pokerWall.Add(poker); Debug.Log("-----剩余牌墙具体信息-----------" + poker.ToChinese()); } } //座位 CurrentRoom.SeatList = new List <PaiJiu.Seat>(); for (int i = 0; i < protoRoom.paigowSeatCount(); ++i) { PAIGOW_SEAT paijiu_Seat = protoRoom.getPaigowSeat(i); PaiJiu.Seat seat = new PaiJiu.Seat(); AppDebug.Log(string.Format("手牌长度" + paijiu_Seat.paigowMahjongCount())); //创建牌 接收 for (int j = 0; j < paijiu_Seat.paigowMahjongCount(); j++) { //添加空牌 seat.PokerList.Add(new Poker((j + 1), 0, 0, PAIGOW_STATUS.HIDE)); } for (int j = 0; j < paijiu_Seat.getPaigowMahjongList().Count; j++) { AppDebug.Log(string.Format("---------------------------手牌" + paijiu_Seat.getPaigowMahjongList()[j].type + "_" + paijiu_Seat.getPaigowMahjongList()[j].size)); } seat.SetSeat(paijiu_Seat); CurrentRoom.SeatList.Add(seat); if (paijiu_Seat.isBanker) { BankerSeat = seat; //庄家Pos } if (paijiu_Seat.isBanker) { Debug.Log(string.Format("庄家pos:{0} 下注{1}", paijiu_Seat.pos, paijiu_Seat.pour)); } } //已操作解散房间座位 if (protoRoom.hasOperatePosList()) { for (int i = 0; i < protoRoom.getOperatePosListList().Count; i++) { CurrentRoom.OperatePosList.Add(protoRoom.getOperatePosListList()[i]); } } //正在选庄座位 if (protoRoom.hasChooseBankerPos()) { CurrentRoom.ChooseBankerSeat = GetSeatBySeatId(protoRoom.chooseBankerPos); } //(时间戳) if (protoRoom.hasUnixtime()) { CurrentRoom.Unixtime = protoRoom.unixtime; } if (protoRoom.hasDealTime()) { CurrentRoom.dealTime = protoRoom.dealTime; } CalculateSeatIndex(CurrentRoom); PeopleCounting(); //同意房间解散人数 //if (CurrentRoom.roomStatus == PAIGOW_ENUM_ROOM_STATUS.DISSOLVE) //{ // //计算当前同意解散人数 // ADHEnterRoom(protoRoom.getPaigowSeatList()); //} //座位抢庄状态 if (BankerSeat != null && CurrentRoom.roomStatus == ROOM_STATUS.GRABBANKER) { for (int i = 0; i < CurrentRoom.SeatList.Count; i++) { CurrentRoom.SeatList[i].isGrabBanker = 0; } } AppDebug.Log(string.Format("第一个玩家信息 位置{0} 庄{1} 转化索引{2} 玩家ID{3}", CurrentRoom.SeatList[0].Pos, CurrentRoom.SeatList[0].IsBanker, CurrentRoom.SeatList[0].Index, CurrentRoom.SeatList[0].PlayerId)); AppDebug.Log(string.Format("自己玩家位置{0}", PlayerSeat.Pos)); }
public void SetRoom(PAIGOW_ROOM prRoom) { if (prRoom.hasRoomStatus()) { roomStatus = prRoom.room_status; } if (prRoom.hasLoop()) { currentLoop = prRoom.loop; } if (prRoom.hasMaxLoop()) { maxLoop = prRoom.maxLoop; } if (prRoom.hasUnixtime()) { Unixtime = prRoom.unixtime; } if (prRoom.hasRemainMahjong()) { remainMahjong = prRoom.remainMahjong; } if (prRoom.hasLoopEnd()) { loopEnd = prRoom.loopEnd; } if (prRoom.hasMahJongSum()) { mahJongSum = prRoom.mahJongSum; } if (prRoom.hasDealTime()) { dealTime = prRoom.dealTime; } if (prRoom.hasIsCutPan()) { isCutPan = prRoom.isCutPan; } if (prRoom.hasIsBombPan()) { isBombPan = prRoom.isBombPan; } List <PAIGOW_SEAT> prPokerList = prRoom.getPaigowSeatList(); for (int i = 0; i < prPokerList.Count; i++) { if (prPokerList[i] != null && prPokerList[i].pos > 0 || prPokerList[i].playerId > 0) { //--------------1----------------- for (int j = 0; j < SeatList.Count; j++) { if (prPokerList[i].pos == SeatList[j].Pos) { SeatList[j].SetSeat(prPokerList[i]); break; } } } } }