Joywayer
0b28cabba4
feat: Round 52 narrative systems improvements
P1-A: QuestManager.OnLoad Enum.TryParse failure warning (dev builds)
P1-B: SaveData.QuestState ObjectiveCompleted dict; BuildObjectiveCompleted
helper; OnSave/OnLoad wiring (DataVersion 2→3)
P2-A: Quest start/complete timestamps (_startedAtUtc/_completedAtUtc dicts;
StartedAtUtc/CompletedAtUtc in SaveData; AcceptQuest/CompleteQuest/
OnSave/OnLoad wiring)
P2-B: DialogueManager pending queue Queue→List + priority-eviction on full
(lowest-priority item evicted when higher-priority request arrives)
P2-C: NpcSO.localizationTable field; NpcSOEditor uses npc.localizationTable
in TryResolveNameKey, PingLocalizationFile, and button label
P3-A: QuestSO.failConditions[] multi-fail array; Obsolete failCondition;
DispatchEvent updates fail check to any-of-array logic with fallback
P3-B: QuestObjectiveSO.prerequisiteObjectiveId; DispatchEvent gates objective
event routing behind prerequisite completed check
P3-C: IQuestEventPayload interface + StringQuestPayload struct; QuestObjectiveSO
typed TryHandleEvent(IQuestEventPayload) overload; DispatchEvent string
overload delegates to typed IQuestEventPayload overload
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 00:47:44 +08:00
..
2026-05-23 19:10:29 +08:00
2026-05-15 14:47:24 +08:00
2026-05-25 00:05:15 +08:00
2026-05-15 14:47:24 +08:00
2026-05-25 00:47:44 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-20 16:18:35 +08:00
2026-05-19 11:50:21 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-19 23:20:44 +08:00
2026-05-20 11:10:31 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-19 11:50:21 +08:00
2026-05-19 11:50:21 +08:00
2026-05-19 15:18:13 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-17 07:56:12 +08:00
2026-05-17 07:56:12 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-19 23:20:44 +08:00
2026-05-15 14:47:24 +08:00
2026-05-20 16:18:35 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-19 11:50:21 +08:00
2026-05-19 11:50:21 +08:00
2026-05-21 11:44:01 +08:00
2026-05-21 11:53:54 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-20 15:10:35 +08:00
2026-05-20 15:26:51 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-21 19:27:36 +08:00
2026-05-21 17:09:06 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-20 16:18:35 +08:00
2026-05-15 14:47:24 +08:00
2026-05-23 21:23:09 +08:00
2026-05-23 21:23:09 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-23 19:10:29 +08:00
2026-05-23 21:23:09 +08:00
2026-05-25 00:05:15 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-19 23:20:44 +08:00
2026-05-15 14:47:24 +08:00
2026-05-23 21:23:09 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-15 14:47:24 +08:00
2026-05-25 00:05:15 +08:00
2026-05-25 00:05:15 +08:00
2026-05-25 00:05:15 +08:00