多轮审查和修复

This commit is contained in:
2026-05-12 15:34:08 +08:00
parent f55d2a57c3
commit ebbbb7332e
805 changed files with 838724 additions and 1905 deletions

View File

@@ -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;
}
}