예제 #1
0
    /// <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;
            }
        }
    }
예제 #2
0
    //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);
    }