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); }
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); }
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); }
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 = 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 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)); }
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(); } } } }