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(); }
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); } } }