コード例 #1
0
    private MJliangcard mCard;  //操作的牌

    public void SetCards(OptItemStruct optList, MJliangcard cards, CallBack <OptItemStruct, MJliangcard> callback)
    {
        mOpt = optList;
        MJliangcard gangCards = new MJliangcard();

        if (gangCards.card == null)
        {
            gangCards.card = new List <int>();
        }
        gangCards.card.AddRange(cards.card);
        mCard   = gangCards;
        cardNum = gangCards.card[0];
        //mCard = cards;
        mCallback = callback;
        for (int i = 0; i < gangCards.card.Count; i++)
        {
            mCardObj[i].SetActive(true);

            mCardSpr[i].spriteName = "top_" + gangCards.card[i];
        }
        for (int i = gangCards.card.Count; i < mCardSpr.Length; i++)
        {
            mCardObj[i].SetActive(false);
        }
        mGrid.Reposition();
        mWidget.width = (int)mGrid.cellWidth * gangCards.card.Count;
    }
コード例 #2
0
    private void InitSpecia(OptItemStruct info, List <MJliangcard> cards)
    {
        int           len   = cards.Count;
        int           count = mSpeciaInstructionTable.transform.childCount;
        MJInsCardItem item;

        for (int i = 0; i < len; i++)
        {
            if (i < count)
            {
                item = mSpeciaInstructionTable.transform.GetChild(i).GetComponent <MJInsCardItem>();
            }
            else
            {
                item = NGUITools.AddChild(mSpeciaInstructionTable.gameObject, mInsCardItem.gameObject).GetComponent <MJInsCardItem>();
            }
            item.gameObject.SetActive(true);
            item.SetCards(info, cards[i], OnSpeciaInsItemCall);
            //item.SetCards(info, cards[i], null);
        }
        for (int i = len; i < count; i++)
        {
            mSpeciaInstructionTable.transform.GetChild(i).gameObject.SetActive(false);
        }
        mSpeciaInstructionTable.Reposition();
        mSpeciaInstructionTable.gameObject.SetActive(true);
        Bounds w = NGUIMath.CalculateRelativeWidgetBounds(mSpeciaInstructionTable.transform);

        mWideget.width = (int)w.size.x + 50;
    }
コード例 #3
0
    /// <summary>
    /// 特殊操作点击返回
    /// </summary>
    /// <param name="opt"></param>
    /// <param name="cards"></param>
    public void OnSpeciaInsItemCall(OptItemStruct opt, MJliangcard cards)
    {
        ResetUI();
        OptRequest req = new OptRequest();

        if (opt.ins == eMJInstructionsType.GANG)
        {
            req.ins    = eMJInstructionsType.GANG;
            cards.card = new List <int>();
        }
        //else if (opt.ins == eMJInstructionsType.chi)
        //    opt.type = cards.type;
        opt.cards = cards.card;
        req.cards.Add(cards.card[0]);
        Global.Inst.GetController <MJGameController>().SendInstructions(req, null);
    }
コード例 #4
0
    /// <summary>
    /// 颗操作列表的    杠   合并
    /// </summary>
    /// <param name="optList"></param>
    /// <returns></returns>
    private List <OptItemStruct> MergeInsData(List <OptItemStruct> optList)
    {
        if (MJGameModel.Inst.hitCardCanHuList != null)
        {
            MJGameModel.Inst.hitCardCanHuList.Clear();
        }
        if (MJGameModel.Inst.hasCanHuListCards != null)
        {
            MJGameModel.Inst.hasCanHuListCards.Clear();
        }
        if (optList == null)
        {
            return(null);
        }
        OptItemStruct gangOpts     = new OptItemStruct();
        bool          ishasGamgOpt = false;

        for (int i = optList.Count - 1; i >= 0; i--)
        {
            if (optList[i].ins == eMJInstructionsType.GANG)
            {
                if (ishasGamgOpt)
                {
                    if (gangOpts.cards == null)
                    {
                        gangOpts.cards = new List <int>();
                    }
                    gangOpts.cards.Add(optList[i].cards[0]);
                    optList.Remove(optList[i]);
                    continue;
                }
                ishasGamgOpt = true;
                gangOpts     = optList[i];
            }
            if (optList[i].ins == eMJInstructionsType.HIT)
            {
                GetCanHuList(optList[i]);
            }
        }
        if (gangOpts.ins == eMJInstructionsType.GANG)
        {
            optList.Add(gangOpts);
        }
        return(optList);
    }
コード例 #5
0
    /// <summary>
    /// 设置特殊操作
    /// </summary>
    /// <param name="info"></param>
    public void SetSpeciaInstructions(OptItemStruct info)
    {
        mSpeciaInstructionRoot.SetActive(true);
        List <MJliangcard> list = new List <MJliangcard>();

        mChiTipsObj.SetActive(false);

        /*
         * if (info.ins == eMJInstructionsType.baojiao)//报叫
         * {
         *  mChiTipsObj.SetActive(true);
         *  for (int i = 0; i < info.card.Count; i++)
         *  {
         *      MJliangcard lc = new MJliangcard();
         *      List<int> l = new List<int>();
         *      l.Add(info.card[i]);
         *      lc.card = l;
         *      list.Add(lc);
         *  }
         *  MJGameModel.Inst.mIsTing = true;//听牌状态
         * }
         * else if (info.ins == eMJInstructionsType.chi)//吃
         * {
         *
         *  list = GetChiCards();
         * }
         */
        if (info.ins == eMJInstructionsType.GANG)//杠
        {
            for (int i = 0; i < info.cards.Count; i++)
            {
                MJliangcard lc = new MJliangcard();
                List <int>  l  = new List <int>();
                for (int j = 0; j < 4; j++)
                {
                    l.Add(info.cards[i]);
                }
                lc.card = l;
                list.Add(lc);
            }
        }
        InitSpecia(info, list);
    }
コード例 #6
0
 /// <summary>
 /// 获取 打什么胡什么提示
 /// </summary>
 public void GetCanHuList(OptItemStruct data)
 {
     if (MJGameModel.Inst.hitCardCanHuList != null)
     {
         MJGameModel.Inst.hitCardCanHuList.Clear();
     }
     MJGameModel.Inst.hitCardCanHuList = data.hitCardCanHuList;
     if (MJGameModel.Inst.hasCanHuListCards == null)
     {
         MJGameModel.Inst.hasCanHuListCards = new List <int>();
     }
     MJGameModel.Inst.hasCanHuListCards.Clear();
     if (data != null && data.hitCardCanHuList != null)
     {
         for (int i = 0; i < data.hitCardCanHuList.Count; i++)
         {
             MJGameModel.Inst.hasCanHuListCards.Add(data.hitCardCanHuList[i].hitCard);
         }
     }
     //MJGameModel.Inst.canHuList = data.canHuList;
 }
コード例 #7
0
 /// <summary>
 /// 设置操作类型
 /// </summary>
 /// <param name="list"></param>
 public void SetOpt(OptItemStruct list, MJSelfPlayer player)
 {
     gameObject.SetActive(true);
     mOpt    = list;
     mPlayer = player;
 }