private void OnMax() { if (this.mCacheExpItemList == null || this.mCacheExpItemList.Count < 0) { return; } for (int index = 0; index < this.mItems.Count; ++index) { ArtifactLevelUpListItem component = (ArtifactLevelUpListItem)this.mItems[index].GetComponent <ArtifactLevelUpListItem>(); if (UnityEngine.Object.op_Inequality((UnityEngine.Object)component, (UnityEngine.Object)null)) { component.Reset(); } } this.CalcCanArtifactLevelUpMax(); }
private void OnCancel() { if (this.mSelectExpItems.Count <= 0) { return; } for (int index = 0; index < this.mItems.Count; ++index) { ArtifactLevelUpListItem component = (ArtifactLevelUpListItem)this.mItems[index].GetComponent <ArtifactLevelUpListItem>(); if (UnityEngine.Object.op_Inequality((UnityEngine.Object)component, (UnityEngine.Object)null)) { component.Reset(); } } this.mSelectExpItems.Clear(); this.RefreshFinishedStatus(); }
private void Init() { if (UnityEngine.Object.op_Equality((UnityEngine.Object) this.ListParent, (UnityEngine.Object)null) || UnityEngine.Object.op_Equality((UnityEngine.Object) this.ListItemTemplate, (UnityEngine.Object)null)) { return; } this.master = MonoSingleton <GameManager> .Instance.MasterParam; if (this.master == null) { return; } this.player = MonoSingleton <GameManager> .Instance.Player; if (this.player == null) { return; } ArtifactData dataOfClass1 = DataSource.FindDataOfClass <ArtifactData>(((Component)this).get_gameObject(), (ArtifactData)null); if (dataOfClass1 != null) { if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.CurrentLevel, (UnityEngine.Object)null)) { this.CurrentLevel.set_text(dataOfClass1.Lv.ToString()); } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.FinishedLevel, (UnityEngine.Object)null)) { this.FinishedLevel.set_text(this.CurrentLevel.get_text()); } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.MaxLevel, (UnityEngine.Object)null)) { this.MaxLevel.set_text("/" + dataOfClass1.GetLevelCap().ToString()); } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.NextExp, (UnityEngine.Object)null)) { this.NextExp.set_text(dataOfClass1.GetNextExp().ToString()); } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.LevelGauge, (UnityEngine.Object)null)) { int totalExpFromLevel = dataOfClass1.GetTotalExpFromLevel((int)dataOfClass1.Lv); float num1 = (float)(dataOfClass1.GetTotalExpFromLevel((int)dataOfClass1.Lv + 1) - totalExpFromLevel); float num2 = (float)(dataOfClass1.Exp - totalExpFromLevel); if ((double)num1 <= 0.0) { num1 = 1f; } this.LevelGauge.AnimateValue(Mathf.Clamp01(num2 / num1), 0.0f); } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.GetAllExp, (UnityEngine.Object)null)) { this.GetAllExp.set_text("0"); } this.mOriginArtifact = dataOfClass1; } List <string> stringList = new List <string>((IEnumerable <string>)PlayerPrefsUtility.GetString(PlayerPrefsUtility.ARTIFACT_BULK_LEVELUP, string.Empty).Split('|')); List <ItemData> itemDataList = this.player.Items; ArtifactWindow dataOfClass2 = DataSource.FindDataOfClass <ArtifactWindow>(((Component)this).get_gameObject(), (ArtifactWindow)null); if (UnityEngine.Object.op_Inequality((UnityEngine.Object)dataOfClass2, (UnityEngine.Object)null)) { itemDataList = dataOfClass2.TmpItems; } for (int index = 0; index < itemDataList.Count; ++index) { ItemData data = itemDataList[index]; if (data != null && data.Param != null && (data.Param.type == EItemType.ExpUpArtifact && data.Num > 0)) { GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.ListItemTemplate); if (UnityEngine.Object.op_Inequality((UnityEngine.Object)gameObject, (UnityEngine.Object)null)) { DataSource.Bind <ItemData>(gameObject, data); gameObject.get_transform().SetParent((Transform)this.ListParent, false); ArtifactLevelUpListItem component = (ArtifactLevelUpListItem)gameObject.GetComponent <ArtifactLevelUpListItem>(); if (UnityEngine.Object.op_Inequality((UnityEngine.Object)component, (UnityEngine.Object)null)) { component.OnSelect = new ArtifactLevelUpListItem.SelectExpItem(this.RefreshExpSelectItems); component.ChangeUseMax = new ArtifactLevelUpListItem.ChangeToggleEvent(this.RefreshUseMaxItems); component.OnCheck = new ArtifactLevelUpListItem.CheckSliderValue(this.OnCheck); this.mArtifactLevelupLists.Add(component); if (stringList != null && stringList.Count > 0) { component.SetUseMax(stringList.IndexOf(data.Param.iname) != -1); } if (component.IsUseMax()) { this.mCacheExpItemList.Add(data); } gameObject.SetActive(true); } this.mItems.Add(gameObject); } } } if (this.mCacheExpItemList != null && this.mCacheExpItemList.Count > 0) { this.mCacheExpItemList.Sort((Comparison <ItemData>)((a, b) => (int)b.Param.value - (int)a.Param.value)); } ((Selectable)this.MaxBtn).set_interactable(this.mCacheExpItemList != null && this.mCacheExpItemList.Count > 0); ((Selectable)this.DecideBtn).set_interactable(this.mSelectExpItems != null && this.mSelectExpItems.Count > 0); }
private void CalcCanArtifactLevelUpMax() { if (this.mCacheExpItemList == null) { return; } long num1 = 0; using (List <ItemData> .Enumerator enumerator = this.mCacheExpItemList.GetEnumerator()) { while (enumerator.MoveNext()) { ItemData current = enumerator.Current; int num2 = (int)current.Param.value * current.Num; num1 += (long)num2; } } long num3 = (long)Mathf.Min((float)(this.mOriginArtifact.GetGainExpCap() - this.mOriginArtifact.Exp), (float)num1); this.mSelectExpItems.Clear(); int index1 = 0; for (int index2 = 0; index2 < this.mCacheExpItemList.Count; ++index2) { if (num3 <= 0L) { num3 = 0L; break; } ItemData mCacheExpItem1 = this.mCacheExpItemList[index2]; if (mCacheExpItem1 != null || mCacheExpItem1.Num > 0) { ItemData mCacheExpItem2 = this.mCacheExpItemList[index1]; if (index2 == index1 || mCacheExpItem2 != null || mCacheExpItem2.Num > 0) { if ((long)(int)mCacheExpItem1.Param.value > num3) { index1 = index2; } else { int num2 = (int)(num3 / (long)(int)mCacheExpItem1.Param.value); int num4 = Mathf.Min(mCacheExpItem1.Num, num2); int num5 = (int)mCacheExpItem1.Param.value * num4; num3 -= (long)num5; this.mSelectExpItems.Add(mCacheExpItem1.Param.iname, num4); index1 = index2; } } } } if (num3 > 0L) { ItemData mCacheExpItem1 = this.mCacheExpItemList[index1]; if (mCacheExpItem1 != null && mCacheExpItem1.Num > 0) { if (this.mSelectExpItems.ContainsKey(mCacheExpItem1.Param.iname)) { if (mCacheExpItem1.Num - this.mSelectExpItems[mCacheExpItem1.Param.iname] > 0) { Dictionary <string, int> mSelectExpItems; string iname; (mSelectExpItems = this.mSelectExpItems)[iname = mCacheExpItem1.Param.iname] = mSelectExpItems[iname] + 1; } else { for (int index2 = this.mCacheExpItemList.Count - 2; index2 >= 0; --index2) { ItemData mCacheExpItem2 = this.mCacheExpItemList[index2]; bool flag = this.mSelectExpItems.ContainsKey(mCacheExpItem2.ItemID); int num2 = !flag ? 0 : this.mSelectExpItems[mCacheExpItem2.ItemID]; if (mCacheExpItem2.Num - (num2 + 1) > 0) { if (flag) { this.mSelectExpItems[mCacheExpItem2.ItemID] = num2 + 1; } else { this.mSelectExpItems.Add(mCacheExpItem2.ItemID, 1); } this.mSelectExpItems.Remove(this.mCacheExpItemList[this.mCacheExpItemList.Count - 1].ItemID); break; } } } } else { this.mSelectExpItems.Add(mCacheExpItem1.Param.iname, 1); } } } if (this.mSelectExpItems.Count > 0) { for (int index2 = 0; index2 < this.mItems.Count; ++index2) { GameObject mItem = this.mItems[index2]; ItemData dataOfClass = DataSource.FindDataOfClass <ItemData>(mItem, (ItemData)null); if (dataOfClass != null && this.mSelectExpItems.ContainsKey(dataOfClass.Param.iname)) { ArtifactLevelUpListItem component = (ArtifactLevelUpListItem)mItem.GetComponent <ArtifactLevelUpListItem>(); if (UnityEngine.Object.op_Inequality((UnityEngine.Object)component, (UnityEngine.Object)null)) { component.SetUseExpItemSliderValue(this.mSelectExpItems[dataOfClass.Param.iname]); } } } } this.RefreshFinishedStatus(); }