namespace NeonSprawl.Server.Game.Combat; /// /// Session in-memory player combat HP for incoming NPC damage (NEO-95). /// No Postgres persistence in Epic 5 Slice 2. /// public interface IPlayerCombatHealthStore { /// /// Reads the current snapshot for a player. Lazy-initializes HP to /// on first access. /// bool TryGet(string? playerId, out PlayerCombatHealthSnapshot snapshot); /// /// Applies non-negative NPC attack damage. Lazy-initializes on first access. /// Floors at zero. /// bool TryApplyDamage(string? playerId, int damage, out PlayerCombatHealthSnapshot snapshot); /// /// Restores a player to full HP. Creates the row when absent (dev fixture + tests). /// bool TryResetToFull(string? playerId, out PlayerCombatHealthSnapshot snapshot); }