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; }
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; }
/// <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); }
/// <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); }
/// <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); }
/// <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; }
/// <summary> /// 设置操作类型 /// </summary> /// <param name="list"></param> public void SetOpt(OptItemStruct list, MJSelfPlayer player) { gameObject.SetActive(true); mOpt = list; mPlayer = player; }