Release local peer subscriptions when combat sharing stops

This commit is contained in:
Erik 2026-09-27 20:47:52 +02:00
parent 23ef606727
commit 55dc989f85
7 changed files with 40 additions and 4 deletions

View file

@ -8,6 +8,16 @@ namespace OpenAC.MosswartMassacre.Tests.Fakes;
/// </summary>
public sealed class FakeNetwork : INetworkAutomation
{
public bool SupportsSubscriptions => true;
public List<PluginPeerCapabilities> Requests { get; } = [];
public int ActiveLeases { get; private set; }
public IDisposable Subscribe(PluginPeerCapabilities capabilities)
{ Requests.Add(capabilities); ActiveLeases++; return new Lease(this); }
private sealed class Lease(FakeNetwork owner) : IDisposable
{
private bool _disposed;
public void Dispose() { if (_disposed) return; _disposed = true; owner.ActiveLeases--; }
}
public bool IsAvailable { get; set; } = true;
public List<PluginNetworkClient> ImportedClients { get; } = [];