Пример #1
0
            void OnTitleDataRetrieved(PlayFabTitleDataCore data)
            {
                var jArray = JArray.Parse(data.Value[ItemsUpgradesCore.Key]);

                List = new ItemUpgradesTemplate[jArray.Count];

                for (int i = 0; i < jArray.Count; i++)
                {
                    ItemUpgradesTemplate template = null;

                    if (jArray[i][ItemUpgradesTemplate.ID].ToObject <string>() == nameof(Default))
                    {
                        template = Default;
                    }
                    else
                    {
                        template = ScriptableObject.CreateInstance <ItemUpgradesTemplate>();
                    }

                    template.Load(jArray[i].ToString());

                    List[i] = template;
                }

                var target = List.Last();
            }
Пример #2
0
            public virtual void Load(CatalogItem item)
            {
                void LoadTemplate(JToken token)
                {
                    if (token == null)
                    {
                        template = Items.Upgrades.Templates.Default;
                    }
                    else
                    {
                        var value = token.ToObject <string>();

                        if (string.IsNullOrEmpty(value))
                        {
                            template = null;
                        }
                        else
                        {
                            template = Items.Upgrades.Templates.Find(value);
                        }
                    }
                }

                void LoadApplicable(JArray array)
                {
                    applicable = new ItemUpgradeType[array.Count];

                    for (int i = 0; i < array.Count; i++)
                    {
                        applicable[i] = Items.Upgrades.Types.Find(array[i].ToObject <string>());
                    }
                }

                if (string.IsNullOrEmpty(item.CustomData))
                {
                }
                else
                {
                    var jObject = JObject.Parse(item.CustomData);

                    if (jObject[Key] == null)
                    {
                    }
                    else
                    {
                        LoadTemplate(jObject[Key][nameof(template)]);

                        LoadApplicable(jObject[Key][nameof(applicable)] as JArray);
                    }
                }
            }