Beispiel #1
0
        public bool GetWearPos(CSymbolItem item, int page, out int pos, out enFindSymbolWearPosCode findCode)
        {
            pos      = 0;
            findCode = -1;
            if (item == null || (int)item.m_SymbolData.wLevel > this.m_pageMaxLvlLimit)
            {
                findCode = 3;
                return(false);
            }
            ulong[]   array          = this.m_symbolPageArr[page];
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            int  num  = array.Length;
            bool flag = true;

            for (int i = 0; i < num; i++)
            {
                ResSymbolPos symbolPos = CSymbolInfo.GetSymbolPos(i);
                if (((ulong)symbolPos.dwSymbolColor & (ulong)(1L << (int)(item.m_SymbolData.bColor & 31))) != 0uL)
                {
                    flag = (flag && array[i] != 0uL);
                }
                if (array[i] == 0uL && (masterRoleInfo.PvpLevel >= (uint)symbolPos.wOpenLevel || this.GridBuyInfo[i].bBuyFlag == 1) && ((ulong)symbolPos.dwSymbolColor & (ulong)(1L << (int)(item.m_SymbolData.bColor & 31))) != 0uL)
                {
                    pos      = i;
                    findCode = 0;
                    return(true);
                }
            }
            findCode = ((!flag) ? 2 : 1);
            return(false);
        }
Beispiel #2
0
        private uint GetLatestOpenLevel(uint playerLevel)
        {
            ResSymbolPos resSymbolPos = null;

            for (int i = 0; i < this.GridBuyInfo.Length; i++)
            {
                ResSymbolPos symbolPos = CSymbolInfo.GetSymbolPos(i);
                if ((uint)symbolPos.wOpenLevel > playerLevel && this.GridBuyInfo[i].bBuyFlag == 0)
                {
                    if (resSymbolPos == null)
                    {
                        resSymbolPos = symbolPos;
                    }
                    if (symbolPos.wOpenLevel < resSymbolPos.wOpenLevel)
                    {
                        resSymbolPos = symbolPos;
                    }
                }
            }
            if (resSymbolPos == null)
            {
                return(playerLevel + 1u);
            }
            return((uint)resSymbolPos.wOpenLevel);
        }
Beispiel #3
0
        public enSymbolWearState GetSymbolPosWearState(int page, int pos, out int param)
        {
            param = 0;
            if (page < 0 || page >= this.m_pageCount || pos < 0 || pos >= 30)
            {
                return(enSymbolWearState.OtherState);
            }
            ulong[] array = this.m_symbolPageArr[page];
            if (array[pos] > 0uL)
            {
                return(enSymbolWearState.WearSuccess);
            }
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            uint         pvpLevel        = masterRoleInfo.PvpLevel;
            uint         latestOpenLevel = this.GetLatestOpenLevel(pvpLevel);
            ResSymbolPos symbolPos       = CSymbolInfo.GetSymbolPos(pos);

            DebugHelper.Assert(symbolPos != null, "symbolPos!=null");
            if (symbolPos == null)
            {
                return(enSymbolWearState.OtherState);
            }
            param = (int)symbolPos.wOpenLevel;
            if (pvpLevel >= (uint)symbolPos.wOpenLevel)
            {
                return(enSymbolWearState.OpenToWear);
            }
            if (this.GridBuyInfo[pos].bBuyFlag == 1)
            {
                return(enSymbolWearState.OpenToWear);
            }
            ulong[] array2 = this.m_symbolPageArr[page];
            int     num    = array2.Length;
            int     i      = 0;

            while (i < num)
            {
                ResSymbolPos symbolPos2 = CSymbolInfo.GetSymbolPos(i);
                if (pvpLevel < (uint)symbolPos2.wOpenLevel && this.GridBuyInfo[(int)(symbolPos2.bSymbolPos - 1)].bBuyFlag == 0 && symbolPos.dwSymbolColor == symbolPos2.dwSymbolColor)
                {
                    if (this.GridBuyInfo[(int)(symbolPos.bSymbolPos - 2)].bBuyFlag == 1)
                    {
                        return(((long)param != (long)((ulong)latestOpenLevel)) ? enSymbolWearState.CanBuy : enSymbolWearState.CanBuyAndWillOpen);
                    }
                    ResSymbolPos symbolPos3 = CSymbolInfo.GetSymbolPos(pos - 1);
                    if (symbolPos3 != null && pvpLevel >= (uint)symbolPos3.wOpenLevel)
                    {
                        return(((long)param != (long)((ulong)latestOpenLevel)) ? enSymbolWearState.CanBuy : enSymbolWearState.CanBuyAndWillOpen);
                    }
                    return(enSymbolWearState.UnOpen);
                }
                else
                {
                    i++;
                }
            }
            return(enSymbolWearState.WillOpen);
        }
Beispiel #4
0
        public static int GetSymbolPosOpenCnt(int pvpLvl)
        {
            int num = 0;

            for (int i = 0; i < 30; i++)
            {
                ResSymbolPos symbolPos = CSymbolInfo.GetSymbolPos(i);
                if ((int)symbolPos.wOpenLevel <= pvpLvl)
                {
                    num++;
                }
            }
            return(num);
        }
Beispiel #5
0
        public bool IsAnySymbolItemCanWear(int pageIndex, int pos, ref ListView <CSymbolItem> symbolList)
        {
            ResSymbolPos symbolPos      = CSymbolInfo.GetSymbolPos(pos);
            CRoleInfo    masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if (masterRoleInfo == null || pageIndex < 0 || pageIndex >= this.m_pageCount || symbolPos == null || symbolList == null || ((uint)symbolPos.wOpenLevel > masterRoleInfo.PvpLevel && this.GridBuyInfo[pos].bBuyFlag == 0))
            {
                return(false);
            }
            for (int i = 0; i < symbolList.get_Count(); i++)
            {
                if (this.IsSymbolPosMatchItem(pageIndex, symbolPos, symbolList.get_Item(i)))
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #6
0
        public int GetNextCanEquipPos(int page, int nowPos, ref ListView <CSymbolItem> symbolList)
        {
            int num = -1;

            if (page < 0 || page >= this.m_pageCount || nowPos < 0 || nowPos >= 30)
            {
                return(num);
            }
            ulong[]   array          = this.m_symbolPageArr[page];
            CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            uint pvpLevel        = masterRoleInfo.PvpLevel;
            uint dwSymbolColor   = CSymbolInfo.GetSymbolPos(nowPos).dwSymbolColor;
            int  firstColorIndex = this.GetFirstColorIndex(dwSymbolColor);
            int  num2            = -1;

            for (int i = firstColorIndex; i < array.Length; i++)
            {
                if (i != nowPos && array[i] == 0uL)
                {
                    ResSymbolPos symbolPos = CSymbolInfo.GetSymbolPos(i);
                    if (symbolPos != null && (pvpLevel >= (uint)symbolPos.wOpenLevel || this.GridBuyInfo[i].bBuyFlag == 1))
                    {
                        if (this.IsAnySymbolItemCanWear(page, i, ref symbolList))
                        {
                            num = i;
                            break;
                        }
                        if (num2 == -1)
                        {
                            num2 = i;
                        }
                    }
                }
            }
            if (num == -1)
            {
                for (int j = 0; j < firstColorIndex; j++)
                {
                    if (j != nowPos && array[j] == 0uL)
                    {
                        ResSymbolPos symbolPos2 = CSymbolInfo.GetSymbolPos(j);
                        if (symbolPos2 != null && (pvpLevel >= (uint)symbolPos2.wOpenLevel || this.GridBuyInfo[j].bBuyFlag == 1))
                        {
                            if (this.IsAnySymbolItemCanWear(page, j, ref symbolList))
                            {
                                num = j;
                                break;
                            }
                            if (num2 == -1)
                            {
                                num2 = j;
                            }
                        }
                    }
                }
            }
            if (num == -1)
            {
                num = num2;
            }
            return(num);
        }
Beispiel #7
0
 public bool IsSymbolPosMatchItem(int pageIndex, ResSymbolPos symbolPos, CSymbolItem symbol)
 {
     return(pageIndex >= 0 && pageIndex < this.m_pageCount && symbolPos != null && symbol != null && (CSymbolInfo.CheckSymbolColor(symbolPos, symbol.m_SymbolData.bColor) && symbol.m_stackCount > symbol.GetPageWearCnt(pageIndex) && (int)symbol.m_SymbolData.wLevel <= this.m_pageMaxLvlLimit && symbol.GetPageWearCnt(pageIndex) < CSymbolWearController.s_maxSameIDSymbolEquipNum));
 }
Beispiel #8
0
        public static void ShowPlayerLevelUp(CUIFormScript form, int oldLvl, int newLvl)
        {
            if (form != null)
            {
                GameObject gameObject = form.transform.Find("PlayerLvlUp").gameObject;
                Text       component  = gameObject.transform.Find("bg/TxtPlayerLvl").gameObject.GetComponent <Text>();
                component.text = newLvl.ToString();
                Text component2 = gameObject.transform.Find("bg/TxtPlayerBeforeLvl").gameObject.GetComponent <Text>();
                component2.text = oldLvl.ToString();
                ResAcntExpInfo dataByKey = GameDataMgr.acntExpDatabin.GetDataByKey((uint)oldLvl);
                DebugHelper.Assert(dataByKey != null, "Can't find acnt exp config -- level {0}", new object[]
                {
                    oldLvl
                });
                ResAcntExpInfo dataByKey2 = GameDataMgr.acntExpDatabin.GetDataByKey((uint)newLvl);
                DebugHelper.Assert(dataByKey2 != null, "Can't find acnt exp config -- level {0}", new object[]
                {
                    newLvl
                });
                Transform transform         = gameObject.transform.Find("Panel/groupPanel/symbolPosPanel");
                int       symbolPosOpenCnt  = CSymbolInfo.GetSymbolPosOpenCnt(oldLvl);
                int       symbolPosOpenCnt2 = CSymbolInfo.GetSymbolPosOpenCnt(newLvl);
                bool      hasBuy            = false;
                CRoleInfo master            = Singleton <CRoleInfoManager> .get_instance().GetMasterRoleInfo();

                if (master != null && symbolPosOpenCnt < symbolPosOpenCnt2)
                {
                    GameDataMgr.symbolPosDatabin.Accept(delegate(ResSymbolPos rule)
                    {
                        if (rule != null && (int)rule.wOpenLevel == newLvl)
                        {
                            hasBuy = master.m_symbolInfo.IsGridPosHasBuy((int)rule.bSymbolPos);
                        }
                    });
                }
                transform.gameObject.CustomSetActive(!hasBuy && symbolPosOpenCnt2 > symbolPosOpenCnt);
                if (!hasBuy && symbolPosOpenCnt2 > symbolPosOpenCnt)
                {
                    Text component3 = transform.Find("curCntText").gameObject.GetComponent <Text>();
                    component3.text = symbolPosOpenCnt.ToString();
                    Text component4 = transform.Find("levelUpCntText").gameObject.GetComponent <Text>();
                    component4.text = symbolPosOpenCnt2.ToString();
                }
                Transform transform2      = gameObject.transform.Find("Panel/groupPanel/symbolLevelPanel");
                int       symbolLvlLimit  = CSymbolInfo.GetSymbolLvlLimit(oldLvl);
                int       symbolLvlLimit2 = CSymbolInfo.GetSymbolLvlLimit(newLvl);
                transform2.gameObject.CustomSetActive(symbolLvlLimit2 > symbolLvlLimit);
                if (symbolLvlLimit2 > symbolLvlLimit)
                {
                    Text component5 = transform2.Find("curCntText").gameObject.GetComponent <Text>();
                    Text component6 = transform2.Find("levelUpCntText").gameObject.GetComponent <Text>();
                    component5.text = symbolLvlLimit.ToString();
                    component6.text = symbolLvlLimit2.ToString();
                }
                Transform        transform3 = gameObject.transform.Find("Panel/groupPanel/symbolPageCntPanel");
                ResHeroSymbolLvl dataByKey3 = GameDataMgr.heroSymbolLvlDatabin.GetDataByKey((long)newLvl);
                if (dataByKey3 != null)
                {
                    transform3.gameObject.CustomSetActive(dataByKey3.bPresentSymbolPage > 0);
                    CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

                    if (masterRoleInfo == null)
                    {
                        return;
                    }
                    if (dataByKey3.bPresentSymbolPage > 0 && masterRoleInfo != null)
                    {
                        Text component7 = transform3.Find("curCntText").gameObject.GetComponent <Text>();
                        Text component8 = transform3.Find("levelUpCntText").gameObject.GetComponent <Text>();
                        component7.text = (masterRoleInfo.m_symbolInfo.m_pageCount - 1).ToString();
                        component8.text = masterRoleInfo.m_symbolInfo.m_pageCount.ToString();
                    }
                }
            }
        }