Esempio n. 1
0
 private int GetFirstColorIndex(uint symBolColor)
 {
     Dictionary <long, object> .Enumerator enumerator = GameDataMgr.symbolPosDatabin.GetEnumerator();
     while (enumerator.MoveNext())
     {
         KeyValuePair <long, object> current = enumerator.Current;
         ResSymbolPos pos = (ResSymbolPos)current.Value;
         if (pos.dwSymbolColor == symBolColor)
         {
             return(pos.bSymbolPos - 1);
         }
     }
     return(0);
 }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public bool IsAnySymbolItemCanWear(int pageIndex, int pos, ref ListView <CSymbolItem> symbolList)
        {
            ResSymbolPos symbolPos      = GetSymbolPos(pos);
            CRoleInfo    masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

            if ((((masterRoleInfo != null) && (pageIndex >= 0)) && ((pageIndex < this.m_pageCount) && (symbolPos != null))) && ((symbolList != null) && ((symbolPos.wOpenLevel <= masterRoleInfo.PvpLevel) || (this.GridBuyInfo[pos].bBuyFlag != 0))))
            {
                for (int i = 0; i < symbolList.Count; i++)
                {
                    if (this.IsSymbolPosMatchItem(pageIndex, symbolPos, symbolList[i]))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 4
0
        private int GetFirstColorIndex(uint symBolColor)
        {
            int result = 0;

            Dictionary <long, object> .Enumerator enumerator = GameDataMgr.symbolPosDatabin.GetEnumerator();
            while (enumerator.MoveNext())
            {
                KeyValuePair <long, object> current = enumerator.get_Current();
                ResSymbolPos resSymbolPos           = (ResSymbolPos)current.get_Value();
                if (resSymbolPos.dwSymbolColor == symBolColor)
                {
                    result = (int)(resSymbolPos.bSymbolPos - 1);
                    break;
                }
            }
            return(result);
        }
Esempio n. 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);
        }
Esempio n. 6
0
        public bool GetWearPos(CSymbolItem item, int page, out int pos)
        {
            pos = 0;
            if ((item != null) && (item.m_SymbolData.wLevel <= this.m_pageMaxLvlLimit))
            {
                ulong[]   numArray       = this.m_symbolPageArr[page];
                CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .GetInstance().GetMasterRoleInfo();

                int length = numArray.Length;
                for (int i = 0; i < length; i++)
                {
                    ResSymbolPos symbolPos = GetSymbolPos(i);
                    if (((numArray[i] == 0) && (masterRoleInfo.PvpLevel >= symbolPos.wOpenLevel)) && ((symbolPos.dwSymbolColor & (((int)1) << item.m_SymbolData.bColor)) != 0))
                    {
                        pos = i;
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 7
0
 public static bool CheckSymbolColor(ResSymbolPos symbolPos, byte color)
 {
     return((symbolPos != null) && ((symbolPos.dwSymbolColor & (((int)1) << color)) != 0L));
 }
Esempio n. 8
0
 public static bool CheckSymbolColor(ResSymbolPos symbolPos, byte color)
 {
     return(symbolPos != null && ((ulong)symbolPos.dwSymbolColor & (ulong)(1L << (int)(color & 31))) != 0uL);
 }
Esempio n. 9
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);
        }
Esempio n. 10
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));
 }