namespace NeonSprawl.Server.Game.Combat; /// /// Server-owned HP store for prototype combat dummies keyed by /// target id (NEO-80). /// /// /// NEO-81+: combat resolution should depend on this interface rather than reaching into store internals. /// Re-hit deny on defeated targets belongs in CombatOperations (NEO-81), not this store. /// public interface ICombatEntityHealthStore { /// /// Reads the current snapshot for a known prototype target. Lazy-initializes HP to /// on first access. /// bool TryGet(string? targetId, out CombatEntityHealthSnapshot snapshot); /// /// Applies non-negative damage to a known prototype target. Lazy-initializes on first access. /// Floors at zero. /// bool TryApplyDamage(string? targetId, int damage, out CombatEntityHealthSnapshot snapshot); /// /// Restores a known prototype target to full HP and clears . /// Creates the row when absent. Intended for tests and future dev fixtures — not HTTP in Slice 1. /// bool TryResetToFull(string? targetId, out CombatEntityHealthSnapshot snapshot); }