/// <summary> /// 组牌变化,这里基本只有抓杠才有的情况,组牌位置不变,只刷新组数据 /// </summary> public virtual void ChangeGroup(int value, MahjongItem addItem) { bool isHorizontal = Layout.directon.Equals(Directon.Horizontal); Vector3 pos = Vector3.zero; if (isHorizontal) { pos.x = 1 * GroupItemWidth; pos.y = pos.y + FourOffsetY; } else { pos.y = 1 * GroupItemHeight + FourOffsetY; } for (int i = 0, lenth = _pileList.Count; i < lenth; i++) { MahjongGroupItem group = _pileList[i]; if (group.Values[0].Equals(value) && group.CurrentType.Equals(GroupType.Peng)) { group.Values = new int[4]; for (int j = 0, groupLenth = group.Values.Length; j < groupLenth; j++) { group.Values[j] = value; } group.SetNewItem(addItem, value, EnumMahJongAction.Lie); group.RefreshGroup(addItem); addItem.transform.localPosition = pos; ParseItemToThis(group.transform); return; } } }
/// <summary> /// 添加一个组牌 /// </summary> /// <param name="data"></param> /// <param name="items"></param> /// <param name="isOther"></param> public virtual MahjongGroupItem AddGroup(MahjongGroupData data, List <MahjongItem> items, bool isOther) { MahjongGroupItem group = _groupPile.AddGroup(data, items, isOther); _groupPile.ResetPosition(); return(group); }
protected override void ParseItemToThis(Transform trans) { MahjongGroupItem item = trans.GetComponent <MahjongGroupItem>(); List <MahjongItem> list = item.ItemList; int groupMaxLayer = 0; for (int i = 0, lenth = list.Count; i < lenth; i++) { MahjongItem mJItem = list[i]; mJItem.SelfData.ShowDirection = ItemShow; mJItem.SelfData.Direction = ItemDirection; mJItem.SelfData.MahjongLayer = NowLayer; if (groupMaxLayer < NowLayer) { groupMaxLayer = NowLayer; } mJItem.transform.localScale = new Vector3(_localScaleX, _localScaleY); mJItem.gameObject.SetActive(false); mJItem.gameObject.SetActive(true); } if (list.Count == 4) { list[3].SelfData.MahjongLayer = groupMaxLayer + 4;//将第四张麻将层级集体拉高 } }
public override MahjongGroupItem AddGroup(MahjongGroupData groupData, List <MahjongItem> items, bool isOther) { if (groupData.type.Equals(GroupType.FengGang)) { groupData.SortDataByLuanFengData(); } MahjongGroupItem group = base.AddGroup(groupData, items, isOther); return(group); }
public MahjongGroupItem GetGroupItem(int value) { MahjongGroupItem returnGroup = _pileList.Find(item => item.Values[0].Equals(value)); if (returnGroup != null) { return(returnGroup); } YxDebug.LogError("没有找到对应的组牌" + value); return(null); }
public virtual MahjongGroupItem AddGroup(MahjongGroupData groupData, List <MahjongItem> items, bool isOther) { MahjongGroupItem item = MahjongGroupItem.CreateGroup(); item.ParentPile = this; items = item.SetGroup(groupData, items, GroupItemWidth, GroupItemHeight, FourOffsetY, isOther, Layout.directon); _pileList.Add(item); AddItem(item.transform); ParseItemToThis(item.transform); item.SetLuanFengShow(groupData, items); return(item); }
public virtual MahjongGroupItem AddGroup(MahjongGroupData groupData, List <MahjongItem> items, bool isOther, bool changeNumber = true) { var Item = MahjongGroupItem.CreateGroup(); Item.ParentPile = this; Item.SetGroup(groupData, items, GroupItemWidth, GroupItemHeight, FourOffsetY, isOther, Layout.directon); _pileList.Add(Item); AddItem(Item.transform); ParseItemToThis(Item.transform); return(Item); }
/// <summary> /// 查找打出的某些牌 /// </summary> /// <param name="value"></param> /// <returns></returns> public virtual List <Transform> FindCardInGroups(int value) { List <Transform> trans = _groupPile.GetList(); List <Transform> returnTrans = new List <Transform>(); for (int i = 0, lenth = trans.Count; i < lenth; i++) { MahjongGroupItem group = trans[i].GetComponent <MahjongGroupItem>(); List <MahjongItem> items = group.ItemList; int max = items.Count; if (max.Equals(4)) //碰的跳过 { continue; } for (int j = 0; j < max; j++) { if (items[j].Value.Equals(value)) { returnTrans.Add(items[j].transform); } } } return(returnTrans); }