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

15 lines
684 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).
/// </summary>
/// <param name="DamageDealt">Catalog damage applied on success; zero on deny.</param>
/// <param name="TargetRemainingHp">Authoritative HP after success; optional on deny (e.g. zero on <c>target_defeated</c>).</param>
/// <param name="TargetDefeated"><c>true</c> when post-resolve HP is zero on success; <c>false</c> on deny.</param>
public readonly record struct CombatResult(
bool Success,
string? ReasonCode,
int DamageDealt,
int? TargetRemainingHp,
bool TargetDefeated);