//PaSS牌 public void GuoPai(SocketModel socketModel) { int value = socketModel.GetCommand(); // Debug.Log("都PASS了 通知清理MJ 添加MJ到出牌区"); RoomEvent.DoPlayerDiction(value, 1); // if (value == GameInfo.Instance.positon) { Debug.Log("本轮操作权是自己,告诉服务器摸牌"); //告诉服务器摸牌 RoomEvent.DoActionMoPai(); } }
//碰牌 public void PengPai(SocketModel socketModel) { List <int> list = socketModel.GetData(); int pos = list[0]; int mj = list[1]; List <int> alist = new List <int>(); alist.Add(mj); alist.Add(mj); Action act = new Action(); act.setActionType(CardView.CHI_PENG_碰牌); act.setActionData(alist); GameInfo.Instance.addPengPai(pos, act); RoomEvent.DoPlayerDiction(pos, 2); }
//直杠 public void ZhiGang(SocketModel socketModel) { Debug.Log("收到直杠数据"); List <int> plist = socketModel.GetData(); int pos = plist[0]; int mj = plist[1]; int beiGangPos = plist[2]; // List <int> alist = new List <int>(); alist.Add(mj); alist.Add(mj); alist.Add(mj); alist.Add(mj); Action act = new Action(); act.setActionType(CardView.CHI_GANG_杠牌); act.setActionData(alist); // GameInfo.Instance.addZhiGang(pos, act, beiGangPos); //设置操作方向 RoomEvent.DoPlayerDiction(pos, 2); }
//出牌 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("有人操作,吃,碰等操作,要等待"); } } }