neon-sprawl/server/NeonSprawl.Server/Game/Combat/CombatResult.cs

16 lines
752 B
C#

namespace NeonSprawl.Server.Game.Combat;
/// <summary>
/// Server-internal combat resolution envelope (NEO-81); promoted to wire JSON via cast response extension (NEO-82).
/// NEO-84 telemetry hook sites live in <see cref="CombatOperations.TryResolve"/>.
/// <see cref="DamageDealt"/> is catalog damage applied on success; zero on deny.
/// <see cref="TargetRemainingHp"/> is authoritative HP after success; optional on deny (e.g. zero on <c>target_defeated</c>).
/// <see cref="TargetDefeated"/> is <c>true</c> when post-resolve HP is zero on success; <c>false</c> on deny.
/// </summary>
public readonly record struct CombatResult(
bool Success,
string? ReasonCode,
int DamageDealt,
int? TargetRemainingHp,
bool TargetDefeated);