//摸牌 public void MoPai(SocketModel socketModel) { //GameEvent.DoMsgTipEvent(" 收到摸牌数据"); List <string> msgList = socketModel.GetMessage(); //如果是自己摸牌 Debug.Log("摸牌的位置=" + int.Parse(msgList[0])); if (int.Parse(msgList[0]) == GameInfo.Instance.positon) { Debug.Log("是自己摸牌 摸的牌= " + int.Parse(msgList[1])); //GameEvent.DoMsgTipEvent("是自己摸牌 摸的牌= " + int.Parse(msgList[1])); //摸起的牌放到手牌队列里 int mj = int.Parse(msgList[1]); GameInfo.Instance.putMjtoHandList(mj); //广播给UI显示 GameEvent.DoMoPai(mj); Debug.Log("摸牌==" + mj); //是否能,杠,糊 List <int> list = socketModel.GetData(); RoomEvent.DoActionList(list); //如果Action有数据,可以杠 if (socketModel.GetAdata() != null && socketModel.GetAdata().Count > 0) { Debug.Log("可以杠牌=" + socketModel.GetAdata().Count); GameInfo.Instance.gangList = socketModel.GetAdata();//杠的数据保存在INFO, 选择牌型后清空 } } //不管是谁摸,更新牌的数量 Debug.Log("剩余牌的数量=" + socketModel.GetCommand()); int mjNum = socketModel.GetCommand(); RoomEvent.DoActionLeftMj(mjNum); }
//出牌 public void ChuPai(SocketModel socketModel) { //1.先把出的牌显示出来 List <string> list = socketModel.GetMessage(); //2.其他玩家有没有操作 int stats = socketModel.GetCommand(); if (stats == 0) { GameEvent.DoChuPai(int.Parse(list[0]), int.Parse(list[1]), false); } else { GameEvent.DoChuPai(int.Parse(list[0]), int.Parse(list[1]), true); } Debug.Log("位置=" + list[0] + "出牌 = " + list[1]); //3如果没人操作,设置指示方向 if (stats == 0) { Debug.Log("设置指示方向"); RoomEvent.DoPlayerDiction(int.Parse(list[2])); } //如果是玩家自己出的牌就不继续判断读取数据了 if (int.Parse(list[0]) == GameInfo.Instance.positon) { Debug.Log("如果是玩家自己出的牌就不继续判断读取数据了"); return; } //4.看看自己是否可以可以吃,碰 等操作; List <int> mylist = socketModel.GetData(); Debug.Log("mylist=" + mylist); if (mylist != null) { //如果有操作,通知UI显示相关按键 Debug.Log("自己有操作=" + mylist[0]); //如果Action有数据,可以杠 List <Action> actionlist = socketModel.GetAdata(); if (actionlist != null) { Debug.Log("可以杠牌=" + actionlist.Count); GameInfo.Instance.gangList = actionlist;//杠的数据保存在INFO, 选择牌型后清空 } RoomEvent.DoActionList(mylist); } else { //3.如果自己没有操作,再看其他玩家可以,吃,碰等操作.如果有,就等待. if (stats == 0) { Debug.Log("没有人可以吃,碰操作"); //4.如果其他玩家也没操作,那看看本轮出牌权是否是自己,如果是自己那就向服务器摸牌 if (int.Parse(list[2]) == GameInfo.Instance.positon) { RoomEvent.DoActionMoPai(); } } else { Debug.Log("有人操作,吃,碰等操作,要等待"); } } }