Release Healer Man 0.1.4

This commit is contained in:
phenom
2026-08-18 12:06:04 -04:00
parent 5bb170039a
commit f4c9cf356c
63 changed files with 2694 additions and 81 deletions
+93
View File
@@ -4,6 +4,99 @@ This file is the durable record of runtime behavior, regressions, and the
evidence required before calling a visual bug fixed. Update it whenever scene,
camera, input, physics, mob-rendering, or asset-loading code changes.
## 2026-08-17 authentic combat VFX and audio - COMPLETE
- Player, party, and enemy combat actions now publish transient presentation
phases without changing combat resolution. The scene consumes those events
through bounded pooled effects (High: 64 systems / 8,192 particles; Low: 24
systems / 2,048 particles with no effect lights), while Off skips visual
spawning. Actor-group switches clear live systems and voices immediately.
- The generated source catalog covers 6,383 runtime spell/skill IDs: 5,144
resolve to preserved WoW/Ascension/RuneWaker descriptors and the remaining
1,239 are explicit school/delivery fallbacks. All 38 referenced source sound
paths resolve to 32 deduplicated packaged clips (6,365,096 bytes); the audit
reports no missing packaged assets.
- Owner settings migrated to local profile database v3 and remain independent
of character gameplay settings. Options exposed High/Low/Off, independent
Player/Party/Enemy visual switches, and independent audio mute/volume rows.
The existing master volume also controls combat and Manastorm cues.
- Live Wailing Caverns verification entered through the offline roster as a
Human Priest healer. The entrance fight visibly presented party melee/ranged
effects and enemy actions. A High-quality Smite capture showed the player
cast system alongside party effects; Low-quality Lesser Heal showed the
reduced healing system; Off-quality Shadow Word: Pain showed combat state,
aura/combat text, and damage continuing without spawned VFX. Defaults were
restored to High after the pass.
- At a 390 x 844 mobile viewport, the Options dialog measured 362 px wide with
345 px of scroll content and no document overflow. Player frame, party list,
minimap, and action bar all remained inside the viewport. A discovered narrow
Options text/control overflow was fixed by allowing grid labels to shrink and
moving combat-audio controls onto a full-width narrow-screen row.
- Verification passed: combat-effects parser/coverage audit **4/4**, focused
persistence/event/cue/UI suites **68/68**, full Vitest **118 files / 674
tests**, TypeScript, production build, and Android web build. Both builds
retained the existing informational large-chunk advisory; the browser console
had no errors and one existing third-party initialization deprecation warning.
- Evidence: `playtest-artifacts/2026-08-17-combat-presentation/desktop-high-combat.png`,
`desktop-player-smite.png`, `desktop-low-heal.png`, `desktop-off-combat.png`,
`desktop-options.png`, `mobile-combat-controls.png`, and
`mobile-high-combat.png`.
- Coverage limit: browser automation exercised Web Audio creation, group
routing, mute, volume, and authentic clip loading but cannot judge perceived
loudness or spatial balance; that final acoustic judgment still requires a
listening pass on physical desktop/mobile speakers.
## 2026-08-17 dungeon proximity aggro and range overlay - COMPLETE
- Idle dungeon enemies now check the living player and party positions during
the low-frequency combat tick. Crossing a mob's radius engages its complete
linked pack through the normal threat path, anchors each member at its pull
position, and seeds initial threat on the nearest actor who crossed the line.
- Normal enemies default to a 16-unit aggro radius and bosses to 20 units;
creature definitions can override either value. Proximity uses full 3D
distance so vertically overlapping dungeon floors do not pull one another,
while the existing planar combat leash continues to support uneven terrain.
- Options now includes `Mob aggro ranges`, defaulting to Off and persisting with
the rest of the account gameplay settings. When enabled, idle dungeon mobs
render restrained orange world-space boundaries above uneven terrain. Rings
disappear once their mob engages and are never rendered in Manastorm.
- Focused verification passed: `src/game/combatStore.test.ts` and
`src/game/mobAi.test.ts`, **2 files / 60 tests**. `npx tsc -b --pretty false`
passed, and `npx vite build` passed with 960 transformed modules.
- Live browser verification entered Wailing Caverns as a healer through the
offline roster. With the party left in Defend and no player attack issued,
the entrance pack automatically acquired and damaged Garrick. The Options
dialog showed the new setting Off by default; matched scene captures then
confirmed visible range rings when On and their removal when toggled Off.
- The browser console contained no errors and one existing third-party
initialization deprecation warning. The local Vite host separately recorded
the known optional `/content/manifest.json` proxy refusal because the content
server on port 4173 was not running; packaged dungeon play was unaffected.
## 2026-08-17 Kresh cliff-pull aggro regression - COMPLETE
- Reproduced the reported reset with a deterministic combat-store regression:
Kresh registers at one end of his long patrol, moves to a later patrol point,
takes damage while the player is falling well above him, and advances combat
after the player reaches the lower grotto.
- Roaming mobs now anchor their leash at their runtime position when a new pull
starts instead of retaining the position where their model first mounted.
Aggro leash eligibility uses planar dungeon distance, matching the existing
mob-AI rule, while attack reach still includes vertical separation. A real
horizontal leash break continues to evade and restore the encounter.
- Focused verification passed: `src/game/combatStore.test.ts` and
`src/game/mobAi.test.ts`, **2 files / 58 tests**. `npm run build` also passed,
including TypeScript, 956 transformed Vite modules, and the KTX2 audit of
11,839 compressed textures with zero fallbacks.
- Production-preview smoke testing entered Wailing Caverns through the offline
roster, rendered the full dungeon/HUD/party view, issued the Attack order,
and observed live enemy damage on the tank. This checkout lacks the optional
local playable-character and creature model packs, so the documented
procedural fallbacks and their asset warnings were visible during this pass.
- Coverage limit: the exact cliff jump was validated by the deterministic
combat-state regression rather than by manually traversing from the entrance
to Kresh during the browser smoke test.
## 2026-08-16 responsive jump and natural teammate movement - COMPLETE
- Added the grounded single-jump path for Space and controller L3, including a