public static CreatureSaveData Save(Creature creature) { var data = new CreatureSaveData(); data.SpeciesPath = creature.Species ? creature.Species.Path : ""; creature.Save(data); return(data); }
protected virtual void Save(CreatureSaveData data) { data.Name = Name; data.LearnedSkills = _learnedSkills; Traits.SaveTo(data.Traits, VariableDefinition.Saved); foreach (var move in Moves) { data.Moves.Add(Move.Save(move)); } }
public static Creature Create(CreatureSaveData data, ITrainer trainer) { var species = Resources.Load <Species>(data.SpeciesPath); if (species != null) { var creature = species.CreateCreature(trainer); creature.Load(data); return(creature); } return(null); }
protected virtual void Load(CreatureSaveData data) { Name = data.Name; _learnedSkills = data.LearnedSkills; Traits.LoadFrom(data.Traits, VariableDefinition.Saved); foreach (var moveData in data.Moves) { var move = Move.Create(this, moveData); if (move != null) { Moves.Add(move); } else { Debug.LogWarningFormat(this, _missingAbilityWarning, Name); } } }