Example #1
0
        public string GetCommonItemListString()
        {
            StringBuilder stringBuilder = new StringBuilder();

            using (Dictionary <byte, NeedEquipItemDictionary> .KeyCollection.Enumerator enumerator = this.CommonNeedNum.Keys.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    NeedEquipItemDictionary equipItemDictionary = this.CommonNeedNum[enumerator.Current];
                    stringBuilder.Append(LocalizedText.Get("sys.COMMON_EQUIP_CHECK_ITEM", (object)equipItemDictionary.CommonItemParam.name, (object)equipItemDictionary.NeedPicec, (object)equipItemDictionary.CommonEquipItemNum));
                    stringBuilder.Append(",");
                }
            }
            stringBuilder.Remove(stringBuilder.Length - 1, 1);
            stringBuilder.Append("\n");
            return(stringBuilder.ToString());
        }
        private void Refresh()
        {
            this.mItemParam = MonoSingleton <GameManager> .Instance.GetItemParam(GlobalVars.SelectedCreateItemID);

            int  cost       = 0;
            bool is_ikkatsu = false;
            Dictionary <string, int> consumes  = (Dictionary <string, int>)null;
            NeedEquipItemList        item_list = new NeedEquipItemList();

            MonoSingleton <GameManager> .Instance.Player.CheckEnableCreateItem(this.mItemParam, ref is_ikkatsu, ref cost, ref consumes, item_list);

            for (int index = 0; index < this.mConsumeObjects.Count; ++index)
            {
                this.mConsumeObjects[index].get_gameObject().SetActive(false);
            }
            if (consumes != null)
            {
                int index = 0;
                using (Dictionary <string, int> .Enumerator enumerator = consumes.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        KeyValuePair <string, int> current = enumerator.Current;
                        if (index >= this.mConsumeObjects.Count)
                        {
                            GameObject gameObject = (GameObject)Object.Instantiate <GameObject>((M0)this.ItemTemplate);
                            gameObject.get_transform().SetParent((Transform)this.ItemLayoutParent, false);
                            this.mConsumeObjects.Add(gameObject);
                        }
                        GameObject mConsumeObject = this.mConsumeObjects[index];
                        DataSource.Bind <ConsumeItemData>(mConsumeObject, new ConsumeItemData()
                        {
                            param = MonoSingleton <GameManager> .Instance.GetItemParam(current.Key),
                            num   = current.Value
                        });
                        mConsumeObject.SetActive(true);
                        ++index;
                    }
                }
            }
            using (Dictionary <byte, NeedEquipItemDictionary> .KeyCollection.Enumerator enumerator = item_list.CommonNeedNum.Keys.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    byte current = enumerator.Current;
                    NeedEquipItemDictionary equipItemDictionary = item_list.CommonNeedNum[current];
                    ItemParam commonItemParam = equipItemDictionary.CommonItemParam;
                    if (commonItemParam != null)
                    {
                        for (int index = 0; index < equipItemDictionary.list.Count; ++index)
                        {
                            ItemParam itemParam = equipItemDictionary.list[index].Param;
                            if (itemParam != null)
                            {
                                if ((int)itemParam.cmn_type - 1 == 2)
                                {
                                    GameObject gameObject = (GameObject)Object.Instantiate <GameObject>((M0)this.ItemTemplate);
                                    gameObject.get_gameObject().SetActive(true);
                                    gameObject.get_transform().SetParent((Transform)this.ItemLayoutParent, false);
                                    ItemData itemData = this.CreateItemData(itemParam.iname, 1);
                                    DataSource.Bind <ItemData>(gameObject, itemData);
                                }
                                else
                                {
                                    GameObject gameObject = (GameObject)Object.Instantiate <GameObject>((M0)this.CommonItemTemplate);
                                    gameObject.get_gameObject().SetActive(true);
                                    gameObject.get_transform().SetParent((Transform)this.CommonItemLayoutParent, false);
                                    ItemData data = MonoSingleton <GameManager> .Instance.Player.FindItemDataByItemID(itemParam.iname) ?? this.CreateItemData(commonItemParam.iname, 0);

                                    ItemData cmmon_data = MonoSingleton <GameManager> .Instance.Player.FindItemDataByItemID(commonItemParam.iname) ?? this.CreateItemData(commonItemParam.iname, 0);

                                    ((CommonConvertItem)gameObject.GetComponent <CommonConvertItem>()).Bind(data, cmmon_data, equipItemDictionary.list[index].NeedPiece);
                                }
                            }
                        }
                    }
                }
            }
            DataSource.Bind <ItemParam>(((Component)this).get_gameObject(), this.mItemParam);
            GameParameter.UpdateAll(((Component)this).get_gameObject());
        }
        private void Start()
        {
            if (UnityEngine.Object.op_Equality((UnityEngine.Object) this.ListItem, (UnityEngine.Object)null) || UnityEngine.Object.op_Equality((UnityEngine.Object) this.ListTransform, (UnityEngine.Object)null))
            {
                return;
            }
            this.ListItem.SetActive(false);
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.CostText, (UnityEngine.Object)null))
            {
                this.CostText.set_text("0");
            }
            this.mCurrentUnit = DataSource.FindDataOfClass <UnitData>(((Component)this).get_gameObject(), (UnitData)null);
            if (this.mCurrentUnit == null)
            {
                return;
            }
            bool flag1 = this.mCurrentUnit.CurrentJob.Rank == 0;

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RankMaxEquipAttention, (UnityEngine.Object)null))
            {
                this.RankMaxEquipAttention.SetActive(!flag1);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.JobInfo, (UnityEngine.Object)null))
            {
                this.JobInfo.SetActive(!flag1);
                DataSource.Bind <JobData>(this.JobInfo, this.mCurrentUnit.CurrentJob);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.AllEquipConfirm, (UnityEngine.Object)null))
            {
                if (this.mCurrentUnit.JobIndex >= this.mCurrentUnit.NumJobsAvailable)
                {
                    this.AllEquipConfirm.set_text(LocalizedText.Get("sys.UNIT_ALLEQUIP_CHANGE_CONFIRM"));
                }
                else
                {
                    this.AllEquipConfirm.set_text(!flag1 ? LocalizedText.Get("sys.UNIT_ALLEQUIP_CONFIRM") : LocalizedText.Get("sys.UNIT_ALLEQUIP_UNLOCK_CONFIRM"));
                }
            }
            int cost = 0;
            Dictionary <string, int> equips   = new Dictionary <string, int>();
            Dictionary <string, int> consumes = new Dictionary <string, int>();

            this.NeedEquipList = new NeedEquipItemList();
            if (!this.mCurrentUnit.CurrentJob.CanAllEquip(ref cost, ref equips, ref consumes, ref this.target_rank, ref this.can_jobmaster, ref this.can_jobmax, this.NeedEquipList, this.IsAllIn))
            {
                return;
            }
            this.target_rank = Mathf.Min(this.mCurrentUnit.GetJobRankCap(), Mathf.Max(this.target_rank, this.mCurrentUnit.CurrentJob.Rank + 1));
            if (!this.IsAllIn)
            {
                this.can_jobmaster = this.mCurrentUnit.GetJobRankCap() == JobParam.MAX_JOB_RANK && this.target_rank == this.mCurrentUnit.GetJobRankCap() && this.mCurrentUnit.CurrentJob.Rank == this.mCurrentUnit.GetJobRankCap();
            }
            this.SetCommonFlag(this.NeedEquipList.IsEnoughCommon());
            List <ItemParam> items = MonoSingleton <GameManager> .Instance.MasterParam.Items;

            using (Dictionary <string, int> .KeyCollection.Enumerator enumerator = equips.Keys.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    string    key       = enumerator.Current;
                    ItemParam itemParam = items.Find((Predicate <ItemParam>)(eq => eq.iname == key));
                    if (itemParam != null)
                    {
                        GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.ListItem);
                        gameObject.get_gameObject().SetActive(true);
                        gameObject.get_transform().SetParent(this.ListTransform, false);
                        ItemData itemData = this.CreateItemData(itemParam.iname, equips[key]);
                        DataSource.Bind <ItemData>(gameObject, itemData);
                    }
                }
            }
            using (Dictionary <string, int> .KeyCollection.Enumerator enumerator = consumes.Keys.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    string    key       = enumerator.Current;
                    ItemParam itemParam = items.Find((Predicate <ItemParam>)(eq => eq.iname == key));
                    if (itemParam != null)
                    {
                        GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.ListItem);
                        gameObject.get_gameObject().SetActive(true);
                        gameObject.get_transform().SetParent(this.ListTransform, false);
                        ItemData itemData = this.CreateItemData(itemParam.iname, consumes[key]);
                        DataSource.Bind <ItemData>(gameObject, itemData);
                    }
                }
            }
            if (this.NeedEquipList.IsEnoughCommon())
            {
                using (Dictionary <byte, NeedEquipItemDictionary> .KeyCollection.Enumerator enumerator = this.NeedEquipList.CommonNeedNum.Keys.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        NeedEquipItemDictionary equipItemDictionary = this.NeedEquipList.CommonNeedNum[enumerator.Current];
                        ItemParam commonItemParam = equipItemDictionary.CommonItemParam;
                        if (commonItemParam != null)
                        {
                            bool flag2 = true;
                            for (int index = 0; index < equipItemDictionary.list.Count; ++index)
                            {
                                ItemParam itemParam = equipItemDictionary.list[index].Param;
                                if (itemParam != null && (int)itemParam.cmn_type - 1 != 2)
                                {
                                    flag2 = false;
                                    GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.CommonListItem);
                                    gameObject.get_gameObject().SetActive(true);
                                    gameObject.get_transform().SetParent(this.CommonListTransform, false);
                                    ItemData data = MonoSingleton <GameManager> .Instance.Player.FindItemDataByItemID(itemParam.iname) ?? this.CreateItemData(itemParam.iname, 0);

                                    ItemData cmmon_data = MonoSingleton <GameManager> .Instance.Player.FindItemDataByItemID(commonItemParam.iname) ?? this.CreateItemData(commonItemParam.iname, 0);

                                    ((CommonConvertItem)gameObject.GetComponent <CommonConvertItem>()).Bind(data, cmmon_data, equipItemDictionary.list[index].NeedPiece);
                                }
                            }
                            if (flag2)
                            {
                                this.IsSoul = true;
                                GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.ListItem);
                                gameObject.get_gameObject().SetActive(true);
                                gameObject.get_transform().SetParent(this.ListTransform, false);
                                ItemData itemData = this.CreateItemData(commonItemParam.iname, equipItemDictionary.list.Count);
                                DataSource.Bind <ItemData>(gameObject, itemData);
                            }
                        }
                    }
                }
            }
            GameManager instance = MonoSingleton <GameManager> .Instance;
            bool        flag3    = cost > instance.Player.Gold;

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.YesButton, (UnityEngine.Object)null))
            {
                ((Selectable)this.YesButton).set_interactable(!flag3);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.NoGoldWarningText, (UnityEngine.Object)null))
            {
                ((Component)this.NoGoldWarningText).get_gameObject().SetActive(flag3);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.CostText, (UnityEngine.Object)null))
            {
                this.CostText.set_text(cost.ToString());
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.MaxJobLv, (UnityEngine.Object)null))
            {
                this.MaxJobLv.set_text("/" + this.mCurrentUnit.GetJobRankCap().ToString());
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TargetJobLv, (UnityEngine.Object)null))
            {
                this.TargetJobLv.set_text(this.target_rank.ToString());
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.ScrollParent, (UnityEngine.Object)null))
            {
                this.DecelerationRate = this.ScrollParent.get_decelerationRate();
                this.ScrollParent.set_decelerationRate(0.0f);
            }
            this.ListRectTranceform.set_anchoredPosition(new Vector2((float)this.ListRectTranceform.get_anchoredPosition().x, 0.0f));
            this.StartCoroutine(this.ScrollInit());
        }