using System; using System.Collections.Generic; namespace Ichni.Story.Dialogue { /// 对话记录中一条已经实际显示或采用的内容。 [Serializable] public sealed class DialogueHistoryEntry { public string speakerName; public string content; public bool isChoice; } /// /// 当前一次 TextBlock 对话专用的临时记录。 /// 记录不会写入 ES3;开始下一次对话、正常结束或点击 Back 取消时都会清空, /// 因而它只承担 DialogUIPage 内的“本次对话回顾”职责。 /// public static class DialogueHistory { private static readonly List EntriesInternal = new(); public static IReadOnlyList Entries => EntriesInternal; public static void BeginSession() => EntriesInternal.Clear(); public static void AddLine(string speakerName, string content) { if (string.IsNullOrWhiteSpace(content)) return; EntriesInternal.Add(new DialogueHistoryEntry { speakerName = speakerName ?? string.Empty, content = content, isChoice = false }); } public static void AddChoice(string content) { if (string.IsNullOrWhiteSpace(content)) return; EntriesInternal.Add(new DialogueHistoryEntry { speakerName = string.Empty, content = content, isChoice = true }); } public static void Clear() => EntriesInternal.Clear(); } }