更新
This commit is contained in:
28
Assets/Scripts/MainGame/Saving/RunSave/CardSave.cs
Normal file
28
Assets/Scripts/MainGame/Saving/RunSave/CardSave.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
namespace Continentis.MainGame.Saving
|
||||
{
|
||||
/// <summary>
|
||||
/// 单张卡牌的存档快照。
|
||||
/// 只记录能够重建运行时 CardInstance 所需的最小信息。
|
||||
/// </summary>
|
||||
public class CardSave
|
||||
{
|
||||
/// <summary>
|
||||
/// 卡牌数据 DataID,格式:CardData_ModName_CardName
|
||||
/// 通过 ModManager.GetData<CardData>(cardDataID) 还原。
|
||||
/// </summary>
|
||||
public string cardDataID;
|
||||
|
||||
/// <summary>
|
||||
/// 升级层数(0 = 未升级)。
|
||||
/// </summary>
|
||||
public int upgradeLevel;
|
||||
|
||||
public CardSave() { }
|
||||
|
||||
public CardSave(string cardDataID, int upgradeLevel = 0)
|
||||
{
|
||||
this.cardDataID = cardDataID;
|
||||
this.upgradeLevel = upgradeLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/MainGame/Saving/RunSave/CardSave.cs.meta
Normal file
2
Assets/Scripts/MainGame/Saving/RunSave/CardSave.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e280529f33e40e4408aeaff395007ad6
|
||||
53
Assets/Scripts/MainGame/Saving/RunSave/HeroSave.cs
Normal file
53
Assets/Scripts/MainGame/Saving/RunSave/HeroSave.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Continentis.MainGame.Saving
|
||||
{
|
||||
/// <summary>
|
||||
/// 单个玩家英雄的存档快照。
|
||||
/// 记录英雄在跑局中跨战斗保持的所有可变状态。
|
||||
/// </summary>
|
||||
public class HeroSave
|
||||
{
|
||||
/// <summary>
|
||||
/// 英雄角色数据 DataID,格式:CharacterData_ModName_HeroName
|
||||
/// 通过 ModManager.GetData<CharacterData>(characterDataID) 还原。
|
||||
/// </summary>
|
||||
public string characterDataID;
|
||||
|
||||
/// <summary>
|
||||
/// 当前 HP(跨战斗保持,受到伤害后降低,不自动回满)。
|
||||
/// </summary>
|
||||
public int currentHP;
|
||||
|
||||
/// <summary>
|
||||
/// 当前最大 HP(初始值来自 CharacterData,装备或跑局事件可能修改)。
|
||||
/// </summary>
|
||||
public int maxHP;
|
||||
|
||||
/// <summary>
|
||||
/// 当前完整牌组快照,包括初始牌、奖励牌和装备附带牌。
|
||||
/// </summary>
|
||||
public List<CardSave> deck;
|
||||
|
||||
/// <summary>
|
||||
/// 当前装备 DataID 列表,格式:EquipmentData_ModName_EquipmentName
|
||||
/// 通过 ModManager.GetData<EquipmentData>(id) 还原。
|
||||
/// </summary>
|
||||
public List<string> equipmentIDs;
|
||||
|
||||
public HeroSave()
|
||||
{
|
||||
deck = new List<CardSave>();
|
||||
equipmentIDs = new List<string>();
|
||||
}
|
||||
|
||||
public HeroSave(string characterDataID, int currentHP, int maxHP)
|
||||
{
|
||||
this.characterDataID = characterDataID;
|
||||
this.currentHP = currentHP;
|
||||
this.maxHP = maxHP;
|
||||
deck = new List<CardSave>();
|
||||
equipmentIDs = new List<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/MainGame/Saving/RunSave/HeroSave.cs.meta
Normal file
2
Assets/Scripts/MainGame/Saving/RunSave/HeroSave.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f70f65f2802e0e942bc433d15442e5af
|
||||
59
Assets/Scripts/MainGame/Saving/RunSave/RunSave.cs
Normal file
59
Assets/Scripts/MainGame/Saving/RunSave/RunSave.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
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>();
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/MainGame/Saving/RunSave/RunSave.cs.meta
Normal file
2
Assets/Scripts/MainGame/Saving/RunSave/RunSave.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57ef00a1f49761341923dcb281587be4
|
||||
Reference in New Issue
Block a user