22 lines
1023 B
C#
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);
|