feat(headless): complete deterministic bot command parity

This commit is contained in:
Erik 2026-07-27 08:23:36 +02:00
parent 7e8acb74dd
commit 38e83640d9
37 changed files with 2805 additions and 295 deletions

View file

@ -111,6 +111,8 @@ public sealed class RuntimeActionState : IDisposable
public IRuntimeActionView View { get; }
public bool IsDisposed => _disposed;
internal event Action? CombatChanged;
public RuntimeActionOwnershipSnapshot CaptureOwnership() => new(
_disposed,
_internalSubscriptionsAttached,
@ -193,17 +195,26 @@ public sealed class RuntimeActionState : IDisposable
private void OnSelectionChanged(SelectionTransition _) =>
Interlocked.Increment(ref _selectionRevision);
private void OnCombatModeChanged(CombatMode _) =>
private void OnCombatModeChanged(CombatMode _)
{
Interlocked.Increment(ref _combatRevision);
CombatChanged?.Invoke();
}
private void OnHealthChanged(uint _, float __) =>
private void OnHealthChanged(uint _, float __)
{
Interlocked.Increment(ref _combatRevision);
CombatChanged?.Invoke();
}
private void OnInteractionChanged(InteractionModeTransition _) =>
Interlocked.Increment(ref _interactionRevision);
private void OnCombatAttackChanged() =>
private void OnCombatAttackChanged()
{
Interlocked.Increment(ref _combatIntentRevision);
CombatChanged?.Invoke();
}
private void OnSpellCastChanged() =>
Interlocked.Increment(ref _magicIntentRevision);