//coverst curret pice class into save data class public PieceSaveData GetSaveData() { var saveData = new PieceSaveData() { name = Base.Name, hp = HP, level = Level, exp = Exp, statusId = Status?.Id, abilities = Abilities.Select(m => m.GetSaveData()).ToList() }; return(saveData); }
// restores the save data public Piece(PieceSaveData saveData) { _base = PieceDB.GetPieceByName(saveData.name); HP = saveData.hp; level = saveData.level; Exp = saveData.exp; if (saveData.statusId != null) { Status = ConditionDB.Conditions[saveData.statusId.Value]; } else { Status = null; } Abilities = saveData.abilities.Select(s => new Ability(s)).ToList(); CalculateStates(); statusChanges = new Queue <string>(); ResetStatBoost(); VolatileStatus = null; }