public void SetData(string saveString, params object[] otherData) { DummySave ds = JsonUtility.FromJson <DummySave>(saveString); ID = ds.ID; Random = ds.Random; TapsWithWeapon.Value = ds.Taps; MarkedAsTrash = ds.Trash; Level = ds.Level; if (ds.EnchantID != -1 && CreatedFromOriginal) { Enchanter og = DataManager.Instance.AllItems.First(it => it.ID == ds.EnchantID) as Enchanter; Enchantment = Instantiate(og); Enchantment.CreatedFromOriginal = true; Enchantment.SetData(ds.EnchantSave, og); } SetValuesBasedOnRandom(); if (CreatedFromOriginal) { return; } Weapon original; if (otherData[0] is PersistentSetItem) { PersistentSetItem allItems = (PersistentSetItem)otherData[0]; original = allItems.First(it => it.ID == ID) as Weapon; } else { original = otherData[0] as Weapon; } // Copy Original Values base.CopyValues(original); DamageAtLevel0 = original.DamageAtLevel0; LevelUp = original.LevelUp; if (ds.EnchantID != -1) { Enchanter og = DataManager.Instance.AllItems.First(it => it.ID == ds.EnchantID) as Enchanter; Enchantment = Instantiate(og); Enchantment.CreatedFromOriginal = true; Enchantment.SetData(ds.EnchantSave, og); } }