using System.Collections.Generic; namespace Continentis.MainGame.Saving { /// /// 当次跑局的完整存档快照。 /// 记录跑局开始配置、当前进度、资源,以及所有英雄的状态。 /// public class RunSave { /// /// 当次跑局使用的配置 DataID,格式:RunConfig_ModName_ConfigName /// 通过 ModManager.GetData<RunConfig>(runConfigID) 还原关卡序列等初始设置。 /// /// /// 当前关卡序列进度,即 combatNodeIDs 的当前索引。 /// public int currentNodeIndex; /// /// 关卡序列快照:开局时从 RunConfig.encounterSequenceIDs 拷贝而来。 /// 格式:CombatNodeData_ModName_NodeName /// EnterCombat 直接读取此列表,跑局中无需再查询 RunConfig。 /// public List combatNodeIDs; /// /// 当前金币数量。 /// public int gold; /// /// 跑局随机种子,用于保证重新进入游戏后奖励池与随机事件一致。 /// public int randomSeed; /// /// 所有玩家英雄的状态快照列表,顺序与 RunConfig.initialHeroIDs 一致。 /// public List heroes; // TODO: Phase 4+ — 添加 relics(遗物列表)和 mapNodeRecord(地图选择记录) public RunSave() { combatNodeIDs = new List(); heroes = new List(); } public RunSave(int randomSeed, int startingGold, List combatNodeIDs) { this.randomSeed = randomSeed; this.gold = startingGold; this.combatNodeIDs = combatNodeIDs ?? new List(); this.currentNodeIndex = 0; heroes = new List(); } } }