/// <summary> /// 摸牌,在摸牌位置生成一张摸牌,并添加到手牌集合 /// </summary> /// <param name="hs"></param> public void MoPai(int hs, int id) { GameInfo.HYFw = GameInfo.FW; GameObject go = (GameObject)GameObject.Instantiate(shouPaiGO, moPaiTrans.position, quaShou, shouPaiContainerTrans); //if (go=null) //{ // go = (GameObject)GameObject.Instantiate(shouPaiGO, moPaiTrans.position, quaShou, shouPaiContainerTrans); //} go.transform.localEulerAngles = quaShou.eulerAngles; go.GetComponent <MeshRenderer>().material.mainTexture = textureArray[hs]; go.GetComponent <MJ_SP>().HS = hs; go.GetComponent <MJ_SP>().ID = id; //JudgeIfNotCanout(go); shouPaiGOList.Add(go); //go.GetComponent<MJ_Event>().SetOtherMjPos(); maskPai.OnQueYiMenButtonClick(GameInfo.queType, false); if (GameInfo.isRealTing || GameInfo.isTT) { for (int i = 0; i < shouPaiGOList.Count - 1; i++) { shouPaiGOList[i].GetComponent <MeshRenderer>().material.color = startGame.darkColor; shouPaiGOList[i].GetComponent <MJ_Event>().isCanOut = false; } } }
//S杠牌 public void Gang_S(int ganghs = 0) { GameObject qipai = GameObject.Find("Main Camera"); GangMSG gangInfo = null; if (GameInfo.cunGang == null) { return; } if (GameInfo.cunGang.gang.Count == 1) { gangInfo = GameInfo.cunGang.gang[0]; gangType = qipai.GetComponent <FICpaipaipai>().GetGangType(gangInfo.Type); } else if (GameInfo.cunGang.gang.Count > 1 && ganghs == 0) { //当多个杠牌存在时根据花色显示牌让用户选择。当点击后再调用此方法并传递选择的花色 //这里传递所有的杠牌集合,当选择具体牌面之后,再调用此杠牌方法,将花色传递 ShowAllCardsCanGang(GameInfo.cunGang.gang); return; } else if (ganghs != 0) { gangInfo = GameInfo.cunGang.gang.First(w => w.mj.PaiHS == ganghs); if (gangInfo == null) { return;//如果用户选择的花色不存在需要执行的操作 } //隐藏选择花色的牌 gangType = qipai.GetComponent <FICpaipaipai>().GetGangType(gangInfo.Type); } else { return; } // qipai.GetComponent<FICpaipaipai>().SPengGangPai(gangInfo.Mj.PaiHS, PPTYPE.Gang, true, gangType,GameInfo.GetFW(gangInfo.Fw)); //myCards.GangREConnect(gangInfo.Mj.PaiHS, gangType, GameInfo.GetFW(gangInfo.Fw)); //GameObject game = myCards.shouPaiContainerTrans.gameObject; //int peng = 0; switch (gangType) { case "M": myCards.DestroyGangShouPais(gangInfo.mj.PaiHS); break; case "H": case "A": myCards.DestroyGangShouPais(gangInfo.mj.PaiHS); break; case "Z": myCards.DestroyGangShouPais(gangInfo.mj.PaiHS); break; } myCards.GangPai(gangInfo, true); if (gangType.Equals(GangType.mingGang)) { qipai.GetComponent <FICpaipaipai>().DelQIpai(GameInfo.GetFW(gangInfo.fw)); } GameObject.Find("Main Camera").GetComponent <FICStartGame>().pengButtonGO.SetActive(false); GameObject.Find("Main Camera").GetComponent <FICStartGame>().gangButtonGO.SetActive(false); GameObject.Find("Main Camera").GetComponent <FICStartGame>().guoButtonGO.SetActive(false); GameObject.Find("Main Camera").GetComponent <FICStartGame>().huButtonGO.SetActive(false); //var sp = SendPeng.CreateBuilder().SetTypes(2) // .SetState(1) // .SetOpenid(GameInfo.OpenID) // .SetRoomid(GameInfo.room_id) // .SetFW(gangInfo.Fw) // .SetMj(gangInfo.Mj) // .SetGtype(gangType) // .Build(); //byte[] body = sp.ToByteArray(); var sp = new SendPeng(); sp.types = 2; sp.state = 1; sp.openid = GameInfo.OpenID; sp.roomid = GameInfo.room_id; sp.FW = gangInfo.fw; sp.mj = gangInfo.mj; sp.Gtype = gangType; byte[] body = ProtobufUtility.GetByteFromProtoBuf(sp); byte[] data = CreateHead.CreateMessage(CreateHead.CSXYNUM + 4001, body.Length, 0, body); GameInfo.cs.Send(data); GameInfo.IsGang = true; GameInfo.pengInfo = null; GameInfo.cunGang = null; GameInfo.huPaiInfo = null; GameInfo.returnHByType = null; GameInfo.nowFW = GameInfo.nowFW == GameInfo.room_peo ? 1 : GameInfo.nowFW + 1; maskpai.OnQueYiMenButtonClick(GameInfo.queType); startGame.ShowDeskSkillsOnDirection(FW.South, PPTYPE.Gang); }