Exemple #1
0
    private List <MJItem> GetOperCardList(MJOperatorModel data, MJItem item)
    {
        int           index    = 0;
        List <MJItem> itemList = new List <MJItem>();

        int[] pais = data.Pais;
        for (int i = 0; i < pais.Length; ++i)
        {
            if (pais[i] > 0 && pais[i] < 48)
            {
                while (index < handCardList.Count)
                {
                    if (handCardList[index].PaiVal == pais[i])
                    {
                        itemList.Add(handCardList[index++]);
                        break;
                    }
                }
                Debug.LogError("GetOperCardList , oper card is not exist");
            }
            else
            {
                Debug.LogError("GetOperCardList data.Pais[" + i + "]:" + pais[i]);
            }
        }
        item.PaiVal = data.Pai;
        itemList.Add(item);

        InsertSort(itemList);
        return(itemList);
    }
Exemple #2
0
    /// <summary>
    /// 操作牌调用
    /// </summary>
    /// <param name="oper"></param>
    /// <returns></returns>
    public IEnumerator OperateCard(MJOperatorModel oper, MJItem item)
    {
        yield return(null);

        switch (oper.Oper)
        {
        case MahjongOperAll.GiveUp:
            break;

        case MahjongOperAll.Collect:
        case MahjongOperAll.TripletLeft:
        case MahjongOperAll.TripletCenter:
        case MahjongOperAll.TripletRight:
        case MahjongOperAll.DarkBar:
        case MahjongOperAll.BrightBarLeft:
        case MahjongOperAll.BrightBarCenter:
        case MahjongOperAll.BrightBarRight:
            CreateOperCard(oper, item);
            break;

        case MahjongOperAll.AddBarLeft:
        case MahjongOperAll.AddBarCenter:
        case MahjongOperAll.AddBarRight:
            AddOperCard(oper, item);
            break;

        case MahjongOperAll.Ting:
        case MahjongOperAll.Hu:
            break;
        }
    }
Exemple #3
0
 /// <summary>
 /// 更新操作牌
 /// </summary>
 /// <param name="data"></param>
 /// <param name="item"></param>
 private void AddOperCard(MJOperatorModel data, MJItem item)
 {
     for (int i = 0; i < operCardList.Count; ++i)
     {
         if (data.Pai == operCardList[i].KeyItem.PaiVal)
         {
             item.PaiVal = data.Pai;
             operCardList[i].AddShow(data, item);
             break;
         }
     }
 }
Exemple #4
0
    /// <summary>
    /// 操作牌
    /// </summary>
    /// <param name="viewSeat"></param>
    /// <param name="oper"></param>
    /// <returns></returns>
    public IEnumerator OperateCard(int viewSeat, MJOperatorModel oper, int outCardViewSeat)
    {
        yield return(null);

        MJPlayer player = _mjPlayerList[viewSeat];
        MJItem   item   = null;

        if (outCardViewSeat != -1)
        {
            item = _mjPlayerList[viewSeat].GetLastOutCard();
        }
        StartCoroutine(player.OperateCard(oper, item));
    }
Exemple #5
0
    /// <summary>
    /// 创建操作牌
    /// </summary>
    /// <param name="data"></param>
    /// <param name="item"></param>
    private void CreateOperCard(MJOperatorModel data, MJItem item)
    {
        float xOffset = 0;

        for (int i = 0; i < operCardList.Count; ++i)
        {
            xOffset = xOffset + operCardList[i].Width + MahjongConst.MahjongOperCardInterval;
        }
        MJOperatorCard oper = new GameObject().AddComponent <MJOperatorCard>();

        oper.transform.SetParent(_operCardPoint);
        oper.transform.localPosition = new Vector3(xOffset, 0, 0);
        oper.Show(data, GetOperCardList(data, item));
        operCardList.Add(oper);
    }
    /// <summary>
    /// 增加
    /// </summary>
    /// <param name="data"></param>
    /// <param name="mj"></param>
    /// <returns></returns>
    public IEnumerator AddShow(MJOperatorModel data, MJItem mj)
    {
        yield return(null);

        if (_operData.Oper != MahjongOperAll.None)
        {
            yield break;
        }
        _operData = data;
        Vector3 keyPos = _keyItem.transform.position;

        //mj.PaiVal = data.Pai;
        mj.transform.SetParent(transform);
        mj.transform.DOLocalMove(keyPos + new Vector3(0, 0, MahjongConst.MahjongOffset_x), 0.05f);
        mj.transform.DOLocalRotate(new Vector3(0, 90, 0), 0.05f);
        operList.Add(mj);
        yield return(new WaitForSeconds(0.05f));
    }
    /// <summary>
    /// 显示
    /// </summary>
    /// <param name="data"></param>
    /// <param name="list"></param>
    /// <returns></returns>
    public IEnumerator Show(MJOperatorModel data, List <MJItem> list)
    {
        yield return(null);

        operList = new List <MJItem>();
        int        keyIndex;
        List <int> values = data.GetOperValue(out keyIndex);

        if (keyIndex != -1)
        {
            _keyItem = list[keyIndex];
        }
        float xOffset = 0;

        for (int i = 0; i < list.Count; ++i)
        {
            //list[i].PaiVal = values[i];
            list[i].transform.SetParent(transform);
            if (i == keyIndex || i == keyIndex - 1)
            {
                list[i].transform.DOLocalMove(
                    new Vector3(xOffset, (MahjongConst.MahjongOffset_z + MahjongConst.MahjongOffset_x) / 2, 0),
                    0.05f);
                list[i].transform.DOLocalRotate(new Vector3(0, 90, 0), 0.05f);
                xOffset += (MahjongConst.MahjongOffset_x + MahjongConst.MahjongOffset_z) / 2;
            }
            else
            {
                list[i].transform.DOLocalMove(new Vector3(xOffset, 0, 0), 0.05f);
                list[i].transform.DOLocalRotate(Vector3.zero, 0.05f);
                xOffset += MahjongConst.MahjongOffset_x;
            }
            operList.Add(list[i]);
        }
        yield return(new WaitForSeconds(0.05f));
    }