多轮审查和修复
This commit is contained in:
@@ -25,6 +25,8 @@ namespace BaseGames.Core.Save
|
||||
public ShopsSaveData Shops = new();
|
||||
public StatsSaveData Stats = new();
|
||||
public NGPlusSaveData NGPlus = null; // null = 非 NG+ 模式
|
||||
public TutorialSaveData Tutorial = new();
|
||||
public SettingsSaveData Settings = new();
|
||||
public Dictionary<string, JObject> DLC = new();
|
||||
}
|
||||
|
||||
@@ -40,6 +42,8 @@ namespace BaseGames.Core.Save
|
||||
public int NGPlusCount;
|
||||
public int SaveCount;
|
||||
public string Checksum; // HMAC-SHA256
|
||||
/// <summary>此存档是否以钢铁之魂(一命)模式开始;加载后 DifficultyManager 会锁定到 SteelSoul。</summary>
|
||||
public bool IsSteelSoul;
|
||||
}
|
||||
|
||||
// ─── Player ───────────────────────────────────────────────────────────────
|
||||
@@ -92,6 +96,7 @@ namespace BaseGames.Core.Save
|
||||
public List<string> OpenedDoors = new();
|
||||
public List<string> DefeatedBossIds = new();
|
||||
public List<string> CollectedIds = new();
|
||||
public List<string> DestroyedObjectIds = new();
|
||||
public Dictionary<string, bool> Switches = new();
|
||||
public Dictionary<string, int> NpcRelations = new();
|
||||
public HashSet<string> ChallengeFirstClears = new();
|
||||
@@ -101,8 +106,29 @@ namespace BaseGames.Core.Save
|
||||
[Serializable]
|
||||
public class MapSaveData
|
||||
{
|
||||
public Dictionary<string, List<int>> DiscoveredRooms = new();
|
||||
public Dictionary<string, bool> MapPurchased = new();
|
||||
public List<string> ExploredRooms = new(); // 踏入过的房间 ID
|
||||
public List<string> MappedRooms = new(); // 完整地图信息(购买/存档点揭示)
|
||||
public List<MapPin> Pins = new(); // 玩家自定义地图标记
|
||||
}
|
||||
|
||||
/// <summary>玩家在地图上放置的自定义标记(架构 15_MapShopModule §1.5)。</summary>
|
||||
[Serializable]
|
||||
public class MapPin
|
||||
{
|
||||
public string RoomId;
|
||||
public float NormalizedPosX;
|
||||
public float NormalizedPosY;
|
||||
public int PinTypeInt; // PinType 枚举整数值,避免 SaveData 依赖 Map 程序集
|
||||
public string Note; // 玩家备注(最多 64 字符)
|
||||
}
|
||||
|
||||
public enum PinType
|
||||
{
|
||||
Marker = 0,
|
||||
Chest = 1,
|
||||
Enemy = 2,
|
||||
Path = 3,
|
||||
Note = 4,
|
||||
}
|
||||
|
||||
// ─── Quests ───────────────────────────────────────────────────────────────
|
||||
@@ -144,6 +170,7 @@ namespace BaseGames.Core.Save
|
||||
public int EnemyKills, Deaths, ParrySuccess, ParryFail;
|
||||
public int GeoEarned, GeoLost;
|
||||
public float DistanceTraveled;
|
||||
public float SpeedrunTime;
|
||||
public int SaveCount;
|
||||
public Dictionary<string, int> SkillUseCounts = new();
|
||||
public Dictionary<string, int> DeathsByBoss = new();
|
||||
@@ -215,4 +242,20 @@ namespace BaseGames.Core.Save
|
||||
public string SceneName;
|
||||
public string ActiveFormId;
|
||||
}
|
||||
|
||||
// ─── Tutorial ─────────────────────────────────────────────────────────────
|
||||
[Serializable]
|
||||
public class TutorialSaveData
|
||||
{
|
||||
/// <summary>已完成(不再弹出)的提示 ID 列表。</summary>
|
||||
public List<string> CompletedHintIds = new();
|
||||
}
|
||||
|
||||
// ─── Settings ─────────────────────────────────────────────────────────────
|
||||
[Serializable]
|
||||
public class SettingsSaveData
|
||||
{
|
||||
/// <summary>玩家选择的语言。空字符串 = 使用系统默认。</summary>
|
||||
public string Language = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user