refactor(net): own live session routing

This commit is contained in:
Erik 2026-07-21 11:17:09 +02:00
parent 707e606e35
commit 961bdd07b7
12 changed files with 1645 additions and 543 deletions

View file

@ -51,16 +51,34 @@ public sealed class CombatChatTranslator : IDisposable
private bool _disposed;
public CombatChatTranslator(CombatState combat, ChatLog chat)
public CombatChatTranslator(
CombatState combat,
ChatLog chat,
Func<bool>? accepting = null)
{
_combat = combat ?? throw new ArgumentNullException(nameof(combat));
_chat = chat ?? throw new ArgumentNullException(nameof(chat));
_onDealt = HandleDamageDealt;
_onTaken = HandleDamageTaken;
_onMissed = HandleMissedOutgoing;
_onEvaded = HandleEvadedIncoming;
_onKill = HandleKillLanded;
_onDealt = value =>
{
if (accepting?.Invoke() != false) HandleDamageDealt(value);
};
_onTaken = value =>
{
if (accepting?.Invoke() != false) HandleDamageTaken(value);
};
_onMissed = value =>
{
if (accepting?.Invoke() != false) HandleMissedOutgoing(value);
};
_onEvaded = value =>
{
if (accepting?.Invoke() != false) HandleEvadedIncoming(value);
};
_onKill = (name, guid) =>
{
if (accepting?.Invoke() != false) HandleKillLanded(name, guid);
};
_combat.DamageDealtAccepted += _onDealt;
_combat.DamageTaken += _onTaken;