Files
Continentis/Assets/Scripts/MainGame/Saving/RunSave/RunSave.cs
SoulliesOfficial c3b1561375 更新
2026-04-01 12:23:27 -04:00

59 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Collections.Generic;
namespace Continentis.MainGame.Saving
{
/// <summary>
/// 当次跑局的完整存档快照。
/// 记录跑局开始配置、当前进度、资源,以及所有英雄的状态。
/// </summary>
public class RunSave
{
/// <summary>
/// 当次跑局使用的配置 DataID格式RunConfig_ModName_ConfigName
/// 通过 ModManager.GetData&lt;RunConfig&gt;(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>();
}
}
}