26 lines
945 B
C#
26 lines
945 B
C#
|
|
namespace Theriapolis.Core.Persistence;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Phase 6 M4 — serializable quest engine state. Holds active + completed
|
||
|
|
/// quests + the player journal tail. Round-trips via SaveCodec
|
||
|
|
/// <c>TAG_QUESTS = 111</c>.
|
||
|
|
/// </summary>
|
||
|
|
public sealed class QuestSnapshot
|
||
|
|
{
|
||
|
|
public List<QuestStateSnapshot> Active { get; set; } = new();
|
||
|
|
public List<QuestStateSnapshot> Completed { get; set; } = new();
|
||
|
|
|
||
|
|
/// <summary>Most recent journal entries written by the engine.</summary>
|
||
|
|
public List<string> Journal { get; set; } = new();
|
||
|
|
}
|
||
|
|
|
||
|
|
public sealed class QuestStateSnapshot
|
||
|
|
{
|
||
|
|
public string QuestId { get; set; } = "";
|
||
|
|
public string CurrentStep { get; set; } = "";
|
||
|
|
public byte Status { get; set; } // QuestStatus byte value
|
||
|
|
public long StartedAt { get; set; }
|
||
|
|
public long StepStartedAt { get; set; }
|
||
|
|
public string[] JournalLines { get; set; } = System.Array.Empty<string>();
|
||
|
|
}
|