feat: Round 51 narrative systems improvements
- SaveData: update QuestState.Status comment to include Paused state - QuestManager: add inline comment on AcceptQuest duplicate-accept guard - QuestManager: wrap reward.Apply() in try-catch so exceptions don't corrupt already-committed Completed state - QuestManager.UnlockBranches: support new conditionFlagEntries (invert/ NOT logic) with graceful fallback to legacy conditionFlags - QuestGiver: cache IQuestManager field in OnEnable; subscribe to OnQuestStateChanged for automatic cache invalidation instead of manual _cacheDirty = true after each Interact; remove per-call SL.GetOrDefault - QuestGiver: replace hardcoded Chinese prompt strings with LocalizationManager.Get(key, 'UI') + inline fallback via GetPrompt() - QuestSO: add BranchFlagEntry struct (flagId + invert) for NOT-logic branch conditions; add conditionFlagEntries to QuestBranch with HideInInspector on legacy conditionFlags for backward compat - QuestModule: add static TTL cache (5 s) for FindAll<QuestSO>() in PopulateDependencyGraph to avoid re-scanning disk on every foldout open - NpcSOEditor: add 'jump to localization file' button that pings and selects the UI table JSON in the Project window Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -141,7 +141,7 @@ namespace BaseGames.Core.Save
|
||||
/// OnLoad 按此字段显式选择解析路径,杜绝依赖 Count > 0 的隐式推断。
|
||||
/// </summary>
|
||||
public int DataVersion = 2;
|
||||
public string Status; // "NotStarted"|"Active"|"Completed"|"Failed"
|
||||
public string Status; // "Unavailable"|"Available"|"Active"|"Paused"|"Completed"|"Failed"
|
||||
public int ObjectiveIndex;
|
||||
/// <summary>新格式(Round 24+,DataVersion=2):objectiveId → progressCount,重排目标顺序后存档不会错位。</summary>
|
||||
public Dictionary<string, int> ObjectiveProgress = new();
|
||||
|
||||
Reference in New Issue
Block a user