/// <summary>
    /// 只在客户端调用,得到能够亮主的牌
    /// </summary>
    /// <param name="handerPoker"></param>
    /// <param name="liangZhuPoker"></param>
    /// <param name="mLevelPokerNum"></param>
    /// <param name="masterPokerType"></param>
    /// <returns></returns>
    public static List <PokerInfo> GetLiangzhuPoker(List <PokerInfo> handerPoker, List <PokerInfo> liangZhuPoker,
                                                    int mLevelPokerNum,
                                                    int masterPokerType)
    {
        // 优先使用热更新的代码
        if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("PlayRuleUtil_hotfix", "GetLiangzhuPoker"))
        {
            List <PokerInfo> list_temp = (List <PokerInfo>)ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.PlayRuleUtil_hotfix", "GetLiangzhuPoker", null, handerPoker, liangZhuPoker, mLevelPokerNum, masterPokerType);
            return(list_temp);
        }

        List <PokerInfo> pokerInfos   = new List <PokerInfo>();
        List <PokerInfo> jiPaiAndWang = PlayRuleUtil.GetJiPaiAndWang(handerPoker, mLevelPokerNum);

        if (jiPaiAndWang.Count == 0)
        {
            return(pokerInfos);
        }

        //第一次亮主
        if (liangZhuPoker == null || liangZhuPoker.Count == 0)
        {
            for (int i = 0; i < handerPoker.Count; i++)
            {
                if (handerPoker[i].m_num == mLevelPokerNum)
                {
                    pokerInfos.Add(handerPoker[i]);
                }
            }
            List <PokerInfo> doublePoker = PlayRuleUtil.GetDoublePoker(jiPaiAndWang);
            //大小王
            foreach (var poker in doublePoker)
            {
                if (poker.m_pokerType == Consts.PokerType.PokerType_Wang)
                {
                    pokerInfos.Add(poker);
                }
            }
            return(pokerInfos);
        }
        else if (liangZhuPoker.Count == 1)
        {
            List <PokerInfo> doublePoker = PlayRuleUtil.GetDoublePoker(jiPaiAndWang);
            return(doublePoker);
        }
        else if (liangZhuPoker.Count == 2)
        {
            Consts.PokerType mPokerType  = liangZhuPoker[0].m_pokerType;
            List <PokerInfo> doublePoker = PlayRuleUtil.GetDoublePoker(jiPaiAndWang);
            for (int i = 0; i < doublePoker.Count - 1; i += 2)
            {
                if (doublePoker[i].m_pokerType > mPokerType)
                {
                    pokerInfos.Add(doublePoker[i]);
                    pokerInfos.Add(doublePoker[i + 1]);
                }

                if (liangZhuPoker[0].m_num == 15 && doublePoker[i].m_num == 16)
                {
                    pokerInfos.Add(doublePoker[i]);
                    pokerInfos.Add(doublePoker[i + 1]);
//                    ToastScript.createToast("dawang");
                }
            }
            return(pokerInfos);
        }
        else
        {
            return(pokerInfos);
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 只在客户端调用,得到能够亮主的牌
    /// </summary>
    /// <param name="handerPoker"></param>
    /// <param name="liangZhuPoker"></param>
    /// <param name="mLevelPokerNum"></param>
    /// <param name="masterPokerType"></param>
    /// <returns></returns>
    public static List <PokerInfo> GetLiangzhuPoker(List <PokerInfo> handerPoker, List <PokerInfo> liangZhuPoker,
                                                    int mLevelPokerNum,
                                                    int masterPokerType)
    {
        List <PokerInfo> pokerInfos   = new List <PokerInfo>();
        List <PokerInfo> jiPaiAndWang = PlayRuleUtil.GetJiPaiAndWang(handerPoker, mLevelPokerNum);

        if (jiPaiAndWang.Count == 0)
        {
            return(pokerInfos);
        }

        //第一次亮主
        if (liangZhuPoker == null || liangZhuPoker.Count == 0)
        {
            for (int i = 0; i < handerPoker.Count; i++)
            {
                if (handerPoker[i].m_num == mLevelPokerNum)
                {
                    pokerInfos.Add(handerPoker[i]);
                }
            }
            List <PokerInfo> doublePoker = PlayRuleUtil.GetDoublePoker(jiPaiAndWang);
            //大小王
            foreach (var poker in doublePoker)
            {
                if (poker.m_pokerType == Consts.PokerType.PokerType_Wang)
                {
                    pokerInfos.Add(poker);
                }
            }
            return(pokerInfos);
        }
        else if (liangZhuPoker.Count == 1)
        {
            List <PokerInfo> doublePoker = PlayRuleUtil.GetDoublePoker(jiPaiAndWang);
            return(doublePoker);
        }
        else if (liangZhuPoker.Count == 2)
        {
            Consts.PokerType mPokerType  = liangZhuPoker[0].m_pokerType;
            List <PokerInfo> doublePoker = PlayRuleUtil.GetDoublePoker(jiPaiAndWang);
            for (int i = 0; i < doublePoker.Count - 1; i += 2)
            {
                if (doublePoker[i].m_pokerType > mPokerType)
                {
                    pokerInfos.Add(doublePoker[i]);
                    pokerInfos.Add(doublePoker[i + 1]);
                }

                if (liangZhuPoker[0].m_num == 15 && doublePoker[i].m_num == 16)
                {
                    pokerInfos.Add(doublePoker[i]);
                    pokerInfos.Add(doublePoker[i + 1]);
                    //                    ToastScript.createToast("dawang");
                }
            }
            return(pokerInfos);
        }
        else
        {
            return(pokerInfos);
        }
    }