Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
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();
        }