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); }
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); }
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); }
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); }
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); }
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); }
public static bool CheckSymbolColor(ResSymbolPos symbolPos, byte color) { return((symbolPos != null) && ((symbolPos.dwSymbolColor & (((int)1) << color)) != 0L)); }
public static bool CheckSymbolColor(ResSymbolPos symbolPos, byte color) { return(symbolPos != null && ((ulong)symbolPos.dwSymbolColor & (ulong)(1L << (int)(color & 31))) != 0uL); }
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); }
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)); }