Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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;//将第四张麻将层级集体拉高
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        /// <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);
        }