neon-sprawl/server/NeonSprawl.Server/Game/Npc/NpcRuntimeStateSnapshot.cs

22 lines
1023 B
C#

namespace NeonSprawl.Server.Game.Npc;
/// <summary>
/// Active telegraph row while an NPC is in <see cref="NpcBehaviorState.TelegraphWindup"/> (NEO-93).
/// <see cref="TelegraphId"/> is stable id for NEO-94 wire projection.
/// <see cref="WindupStartedUtc"/> is UTC instant when windup phase began.
/// </summary>
public readonly record struct ActiveTelegraphSnapshot(string TelegraphId, DateTimeOffset WindupStartedUtc);
/// <summary>
/// Per-NPC runtime behavior state snapshot (NEO-93).
/// <see cref="NpcInstanceId"/> is lowercase prototype NPC instance id.
/// <see cref="BehaviorState"/> is current behavior state.
/// <see cref="PhaseStartedUtc"/> is UTC instant when the current phase began.
/// <see cref="ActiveTelegraph"/> is non-null only during <see cref="NpcBehaviorState.TelegraphWindup"/>.
/// </summary>
public readonly record struct NpcRuntimeStateSnapshot(
string NpcInstanceId,
NpcBehaviorState BehaviorState,
DateTimeOffset PhaseStartedUtc,
ActiveTelegraphSnapshot? ActiveTelegraph);