public SerializableAbility ToSerializeable() { SerializableAbility sAbility = new SerializableAbility(); sAbility.DisplayName = DisplayName; List <Stat.SerializableStat> attributes = new List <Stat.SerializableStat>(); for (int x = 0; x < Attributes.Length; x++) { attributes.Add(Attributes[x].ToSerializeable()); } sAbility.attributes = attributes.ToArray(); return(sAbility); }
// Serialization Stuff ---------------------------------------------- public static Ability Deserialize(GameObject player, SerializableAbility sAbility) { // Deserialize Related Stats List <Stat> attributes = new List <Stat>(); for (int x = 0; x < sAbility.attributes.Length; x++) { attributes.Add(sAbility.attributes[x].Deserialize()); } if (sAbility.DisplayName == BlinkAbility.Name) { return(new BlinkAbility(player, attributes.ToArray())); } else if (sAbility.DisplayName == ReviveProjectileAbility.Name) { return(new ReviveProjectileAbility(player, attributes.ToArray())); } throw new UnityException($"Can't find Ability for \"{sAbility.DisplayName}\""); }