private void RefreshFinishedStatus() { if (this.mSelectExpItems == null || this.mSelectExpItems.Count <= 0) { return; } int exp1 = 0; using (Dictionary <string, int> .KeyCollection.Enumerator enumerator = this.mSelectExpItems.Keys.GetEnumerator()) { while (enumerator.MoveNext()) { string current = enumerator.Current; ItemData itemDataByItemId = this.player.FindItemDataByItemID(current); if (itemDataByItemId != null) { int mSelectExpItem = this.mSelectExpItems[current]; if (mSelectExpItem != 0 && mSelectExpItem <= itemDataByItemId.Num) { int num = (int)itemDataByItemId.Param.value * mSelectExpItem; exp1 += num; } } } } int gainExpCap = this.mOriginArtifact.GetGainExpCap(); int num1 = Math.Min(this.mOriginArtifact.Exp + exp1, gainExpCap); ArtifactData artifactData = this.mOriginArtifact.Copy(); artifactData.GainExp(exp1); using (List <ArtifactLevelUpListItem> .Enumerator enumerator = this.mArtifactLevelupLists.GetEnumerator()) { while (enumerator.MoveNext()) { enumerator.Current.SetInputLock(num1 < gainExpCap); } } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.FinishedLevel, (UnityEngine.Object)null)) { this.FinishedLevel.set_text(artifactData.Lv.ToString()); if ((int)artifactData.Lv >= this.mOriginArtifact.GetLevelCap()) { ((Graphic)this.FinishedLevel).set_color(Color.get_red()); } else if ((int)artifactData.Lv > (int)this.mOriginArtifact.Lv) { ((Graphic)this.FinishedLevel).set_color(Color.get_green()); } else { ((Graphic)this.FinishedLevel).set_color(Color.get_white()); } } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.AddLevelGauge, (UnityEngine.Object)null)) { if (num1 == this.mOriginArtifact.Exp || exp1 == 0) { this.AddLevelGauge.AnimateValue(0.0f, 0.0f); } else { int totalExpFromLevel = this.mOriginArtifact.GetTotalExpFromLevel((int)this.mOriginArtifact.Lv); float num2 = (float)(this.mOriginArtifact.GetTotalExpFromLevel((int)this.mOriginArtifact.Lv + 1) - totalExpFromLevel); float num3 = (float)(num1 - totalExpFromLevel); if ((double)num2 <= 0.0) { num2 = 1f; } this.AddLevelGauge.AnimateValue(Mathf.Clamp01(num3 / num2), 0.0f); } } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.NextExp, (UnityEngine.Object)null)) { int num2 = 0; if (num1 < this.mOriginArtifact.GetGainExpCap()) { int exp2 = artifactData.Exp; int nextExp = artifactData.GetNextExp(); int num3 = num1 - exp2; num2 = Math.Max(0, nextExp <= num3 ? 0 : nextExp - num3); } this.NextExp.set_text(num2.ToString()); } if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.GetAllExp, (UnityEngine.Object)null)) { this.GetAllExp.set_text(exp1.ToString()); } ((Selectable)this.DecideBtn).set_interactable(exp1 > 0); }