Commit Graph

15 Commits (cb1692ce8568e8f38fca2b0541ebca607607a9f7)

Author SHA1 Message Date
VinPropane cb1692ce85 NEO-95: add player combat HP store and NPC attack resolve
Wire telegraph-complete damage into AdvanceAll and expose GET
/game/players/{id}/combat-health for session player HP read model.
2026-05-28 23:42:18 -04:00
VinPropane 48813998d7 NEO-93: Add NPC runtime state machine and lazy tick advance.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 22:02:39 -04:00
VinPropane 843abf7126 NEO-92: Add threat store and aggro acquire/leash-clear wiring.
Introduce IThreatStateStore with first-hit acquire on damaging casts
and deterministic leash clears on player move and pre-acquire checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 21:45:57 -04:00
Don fa9acc85ac NEO-91: migrate combat targets to three NPC instances
Replace alpha/beta dummies with PrototypeNpcRegistry (melee/ranged/elite),
per-archetype max HP from INpcBehaviorDefinitionRegistry, and updated
server tests + Bruno smokes. Documents breaking client change for NEO-97.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 23:42:31 -04:00
VinPropane 3cbbcb6c2f NEO-84: Address code review — register sync and hook comment parity.
Append NEO-44/NEO-84 to E5.M1 dependency register note, fix E2.M2 NEO-44
status, and add playerId correlation hint on damage-path ability_used hook.
2026-05-25 13:06:04 -04:00
VinPropane 667a1a960a NEO-84: Add combat telemetry hook sites in CombatOperations.
Comment-only ability_used, enemy_defeat, and reserved encounter_start/player_death
markers; README and module docs updated. All 407 server tests pass.
2026-05-25 13:04:11 -04:00
VinPropane ea13b05196 NEO-83: Fix Bruno CI combat-targets HP state pollution.
Add dev combat-targets fixture reset endpoint, Bruno pre-request helper, and enable fixture in CI Bruno step so combat-targets tests run after ability-cast defeat spine.
2026-05-25 11:28:13 -04:00
VinPropane 50a2c9ca9d NEO-83: Address code review follow-ups for combat-targets GET.
Fail fast on health store TryGet miss, tighten one-pulse integration test assertions, add fast Bruno cast→GET smoke, update review doc.
2026-05-25 11:23:32 -04:00
VinPropane 52b1d4d206 NEO-83: Add GET /game/world/combat-targets HP snapshot.
Wire CombatTargetsWorldApi backed by ICombatEntityHealthStore, Bruno happy + cast defeat spine, integration tests, README and module tracking docs.
2026-05-25 11:20:13 -04:00
VinPropane ca15e7a689 NEO-81: Add CombatOperations.TryResolve and CombatResult.
Pure server combat resolution applies catalog damage via the health store,
denies re-hits on defeated targets, and validates unknown ability/target ids.
2026-05-25 10:16:24 -04:00
VinPropane b060b9dffd NEO-80: add combat entity health store for prototype dummies.
Server-owned in-memory HP for prototype_target_alpha/beta with lazy
init at 100 HP, damage floor at zero, defeated flag, and DI registration.
2026-05-24 22:37:57 -04:00
VinPropane 44e0056b37 NEO-78: Add GET /game/world/ability-definitions HTTP projection.
Expose versioned read-only ability catalog via IAbilityDefinitionRegistry,
with integration tests, Bruno folder, and docs alignment.
2026-05-24 22:22:48 -04:00
VinPropane 0e5bbbff2e NEO-79: Address code review — docs alignment, null-safe TryNormalizeKnown.
Update E5.M1 module page, dependency register, and alignment table for
NEO-79 landed; reconcile plan Bruno note; strike through review findings.
2026-05-24 22:07:37 -04:00
VinPropane bd4912004a NEO-79: Add IAbilityDefinitionRegistry and migrate hotbar/cast validation.
Injectable registry backed by AbilityDefinitionCatalog; PrototypeAbilityRegistry
keeps id constants only. Bruno smoke for unknown_ability deny paths.
2026-05-24 22:05:27 -04:00
VinPropane 619089ca40 NEO-77: Add fail-fast ability catalog load at server startup.
Load content/abilities/*_abilities.json with CI-parity validation, E5M1
four-id gate, DI registration, AAA loader/host tests, and Bruno health check.
2026-05-24 21:40:58 -04:00