public List <GameObject> GetSortTalkList(int sex, DVoidInt CallBack) { _sex = sex; List <GameObject> lis = new List <GameObject>(); string[] talkValue = sex == 0 ? WomanSortTalk : ManSortTalk; for (int i = 0; i < talkValue.Length; i++) { GameObject text = Instantiate(SortTalkTemp); text.name = i + ""; var textScp = text.GetComponent <Text>(); textScp.text = talkValue[i]; textScp.alignment = TextAnchor.MiddleLeft; textScp.fontSize = FontSize; textScp.color = Color.white; text.GetComponent <Button>().onClick.AddListener(() => { CallBack(int.Parse(text.name)); }); lis.Add(text); } return(lis); }
public List <GameObject> GetExpressIcon(DVoidInt CallBack) { List <GameObject> lis = new List <GameObject>(); foreach (KeyValuePair <int, List <Sprite> > item in _dicExpress) { GameObject itemExp = Instantiate(ExpressTemp); itemExp.name = item.Key + ""; Sprite sprExp = Instantiate(item.Value[0]); Image itemExpImg = itemExp.GetComponent <Image>(); itemExpImg.sprite = sprExp; itemExpImg.SetNativeSize(); Button itemExpBtn = itemExp.GetComponent <Button>(); itemExpBtn.onClick.AddListener(() => { CallBack(int.Parse(itemExp.name)); }); lis.Add(itemExp); } lis.Sort((a, b) => { return(a.name.CompareTo(b.name)); }); return(lis); }
public override void GetGangData(ISFSObject obj, DVoidSfsObject sendCall) { List <FindGangData> findList = FindCanGang(); //如果不能杠财神,则移除可能是财神的牌 if (_cargs2.ContainsKey(Gangcaishen) && _cargs2.GetUtfString(Gangcaishen) == "0") { foreach (var findGangData in findList) { if (findGangData.cards[0] == Laizi) { findList.Remove(findGangData); break; } } } DVoidInt sendCallArray = index => { YxDebug.Log("发送服务器 杠 " + findList[index].cards); if (findList[index].type != UtilDef.DefInt) { obj.PutInt(RequestKey.KeyType, findList[index].type); } if (findList[index].ttype != UtilDef.DefInt) { obj.PutInt(RequestKeyOther.KeyTType, findList[index].ttype); } if (findList[index].cards != null && findList[index].ttype != MjRequestData.CPG_ZhuaGang) { obj.PutIntArray(RequestKey.KeyCards, findList[index].cards); } else if (findList[index].cards != null && findList[index].ttype == MjRequestData.CPG_ZhuaGang) { obj.PutInt(RequestKey.KeyOpCard, findList[index].cards[0]); } sendCall(obj); }; //如果找到的杠 大于1 if (findList.Count > 1) { YxDebug.Log("通知UI 提示杠选择 " + findList.Count); var lisiCard = findList.Select(t => t.cards).ToList(); //通知UI提示选择 EventDispatch.Dispatch((int)UIEventId.CgChoose, new EventData(lisiCard, sendCallArray, _outPutMahjong)); } else { sendCallArray(0); } }
public virtual void SetChooseCg(List <int[]> cgList, DVoidInt call, int outPutCard = UtilDef.NullMj) { gameObject.SetActive(true); CgGroup.Clear(); for (int i = 0; i < cgList.Count; i++) { var valueList = new List <int>(cgList[i]); if (valueList.Count < 4 && outPutCard != UtilDef.NullMj) { valueList.Add(outPutCard); } valueList.Sort((a, b) => { if (a > b) { return(1); } if ((a < b)) { return(-1); } return(0); }); UiCardGroup group = D2MahjongMng.Instance.GetGroup(valueList.ToArray(), EnD2MjType.Me, true); CgGroup.AddUiCdGroup(group); int i1 = i; group.SetClickCallFunc(() => { UtilFunc.OutPutArray(cgList[i1], "选着的牌"); call(i1); gameObject.SetActive(false); }); } CgGroup.Sort(1); }
protected void OnBuZhangFinish(ISFSObject data) { IsBuZhangFinish = true; DVoidInt leaveNum = value => { LeaveMahjongCnt -= value; }; EventDispatch.Dispatch((int)GameEventId.BuZhang, new EventData(BuZhang, leaveNum)); //补张的牌 添加到手牌中 foreach (var buData in BuZhang) { if (buData.Chair == 0) { foreach (var card in buData.BuZhangCards) { UserHardCard[PlayerSeat].Remove(card); } foreach (var card in buData.Cards) { UserHardCard[PlayerSeat].Add(card); } } } }
/// <summary> /// 获取抓牌数据 /// </summary> /// <param name="cardValue"></param> /// <returns></returns> private EventData GetInEventData(int cardValue) { _getInMahjong = cardValue; EventData data = new EventData(_getInMahjong); if (_laizi != UtilDef.NullMj && _laizi == _getInMahjong) { //判断赖子是春夏秋冬 if (_laizi >= 96 && _laizi < 100) { if ((_getInMahjong >= 96) && (_getInMahjong < 100)) { data.data2 = 1; } } else if ((_laizi >= 100) && (_laizi < 104)) //判断赖子是梅兰竹菊 { if (_getInMahjong >= 100 && _getInMahjong < 104) { data.data2 = 1; } } else { data.data2 = _laizi; } } //如果有补张数据 加入补张数据 if (CurrSeat == BuZhangGetInSeat && BuZhangGetIn.Count != 0) { DVoidInt leaveNum = cardNum => { LeaveMahjongCnt -= cardNum; }; data.data3 = BuZhangGetIn; data.data4 = leaveNum; } return(data); }
protected IEnumerator BuZhangAnimation(List <BuZhangData> data, DVoidInt leaveNum) { var count = data.Count; for (int i = 0; i < count; i++) { var zhangData = data[i]; if (zhangData != null) { //移除手牌中的 HardMj[zhangData.Chair].RemoveMahjong(new List <int>(zhangData.BuZhangCards)); //添加到胡牌中 Hu[zhangData.Chair].GetInMahjong(zhangData.BuZhangCards); yield return(new WaitForSeconds(0.2f)); var walPopMjlen = zhangData.BuZhangCards.Length; for (int j = 0; j < walPopMjlen; j++) { OnRevWallMahjongFinish(); } leaveNum(zhangData.BuZhangCards.Length); //添加到手牌中 HardMj[zhangData.Chair].GetInMahjongWithRoat(zhangData.Cards); yield return(new WaitForSeconds(GameConfig.GetInCardRoteTime + GameConfig.GetInCardWaitTime + 0.3f)); } } foreach (var hardCards in HardMj) { if (hardCards) { hardCards.SortHandMahjong(); } } //开局补张以后检索一遍自己手牌有没有漏掉的财神 CheckCaishenBug(); }
public virtual void SetChooseCg(List <int[]> cgList, DVoidInt call, List <int> hzlzg, DVoidInt gCall, int outPutCard = UtilDef.NullMj) { }