Exemple #1
0
        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);
        }