15 lines
756 B
C#
15 lines
756 B
C#
namespace NeonSprawl.Server.Game.Targeting;
|
|
|
|
/// <summary>In-memory per-player combat target lock for prototype HTTP (NEO-23).</summary>
|
|
public interface IPlayerTargetLockStore
|
|
{
|
|
/// <summary>Current lock id (lowercase registry key) and sequence; missing player ⇒ <c>(null, 0)</c>.</summary>
|
|
(string? LockIdLowercase, int Sequence) GetLockState(string playerId);
|
|
|
|
/// <summary>Clears lock; bumps sequence only if a lock was present.</summary>
|
|
(string? LockIdLowercase, int Sequence) ApplyClear(string playerId);
|
|
|
|
/// <summary>Sets lock to <paramref name="targetIdLowercase"/>; no sequence bump if already equal (idempotent).</summary>
|
|
(string? LockIdLowercase, int Sequence) ApplySet(string playerId, string targetIdLowercase);
|
|
}
|