using System;
namespace Continentis.MainGame.Saving
{
///
/// 游戏存档的根节点,作为单一顶层对象写入 ES3 文件。
/// ES3 用法:ES3.Save("GameSave", gameSave, "save.es3")
/// ES3.Load<GameSave>("GameSave", "save.es3")
///
public class GameSave
{
///
/// 存档格式版本号。当数据结构发生破坏性变更时递增,
/// SaveManager 读取时据此执行迁移逻辑。
///
public int saveVersion = 1;
/// 最后一次保存的时间戳(UTC)。
public DateTime saveTime;
///
/// 玩家账号级别数据(解锁内容、统计数据),跨跑局持久。
///
public PlayerSave playerData;
///
/// 当前进行中的跑局快照。null 表示无进行中的跑局(主菜单状态)。
///
public RunSave currentRun;
public GameSave()
{
playerData = new PlayerSave();
currentRun = null;
}
/// 判断当前是否存在未完成的跑局。
public bool HasActiveRun => currentRun != null;
}
}