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();
}
}