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