Release Healer Man 0.1.29
This commit is contained in:
1 parent
8c9809d3e0
commit
544c1bee91
120 files changed
+4363
-1036
No files matched your search
@@ -2048,3 +2048,113 @@ Vite's existing large-chunk advisory remains informational.
|
||||
`playtest-artifacts/2026-09-09-arena-loading/`. The existing large-bundle
|
||||
advisory remains. This verifies the local browser build, not a deployment
|
||||
or an Android package.
|
||||
|
||||
# 2026-09-10 - arena character and gameplay integration
|
||||
|
||||
- Replaced the limited arena spell interpreter with a private bundle of the
|
||||
existing character combat engine. Offline practice and server matches share
|
||||
casting, channels, resources, auras, pets, talents and equipment mechanics.
|
||||
Each actor/match keeps its own state; opening panels does not run a second
|
||||
client simulation or overwrite dungeon state.
|
||||
- The controlled character uses CharacterModel with saved appearance, gear,
|
||||
class, specialization, talents and bindings. Other participants also use
|
||||
character models. The HUD displays actual resources, runes, combo points,
|
||||
cast/channel status, cooldowns, buffs, pet commands and PC/controller labels.
|
||||
Spellbook, character, talents, bindings, keybinds, map and options work in
|
||||
arena. Equipment and talents remain locked to the entered match loadout.
|
||||
- Fixed Keybinds opening with a shortened custom PC bar: missing slots now
|
||||
display as empty instead of crashing the React tree. Live checks opened
|
||||
Keybinds, Character, Talents and Options; the four-slot Q/E/R/T bar cast
|
||||
Flash Heal and Power Word: Shield with resource/cast/aura feedback.
|
||||
- Fixed NaN facing, spectator-camera elevation, obstructed starting positions
|
||||
and camera collision. Shared right-button drag ends on release, blur, lost
|
||||
capture, menus and teardown without pointer lock. Movement, jump, targeting,
|
||||
ground placement, feedback, animation and combat effects use arena state.
|
||||
- Authority uses all collision chunks and navigation triangles. Removed
|
||||
invisible static proxy walls. All 3v3 starts are grounded, and bots follow
|
||||
connected routes around walls/ramps. Shortcuts stay on level ground to avoid
|
||||
falling below waypoints. Detailed scenes use a shaped support surface; the
|
||||
loading/error fallback now matches collision instead of using a flat box.
|
||||
- Black Rook's old navigation/anchors were on terrain above the arena. Rebuilt
|
||||
against restored collision, selected its connected interior component (783
|
||||
triangles), and placed both starts on the floor near Y=-28.3. Updated the
|
||||
asset metadata and generator to stop restoring the old terrain navigation.
|
||||
- Added PvP defender stats, shields, resource drains, pushback, school locks
|
||||
and control diminishing returns. Fixed duplicate control entries counting
|
||||
twice, aligned aura/control duration, and made dispels remove movement
|
||||
restrictions. Dispel Magic supports friends and enemies. Healers can heal
|
||||
allied pets; melee bots start weapon attacks to generate rage.
|
||||
- Automated checks: 38 server arena tests and 160 distinct avatar, input,
|
||||
camera, arena character/rules, combat store and ability catalog tests.
|
||||
Coverage includes channels/cancellation, runes, combos, pet orders/damage/
|
||||
healing, interrupts, absorbs, dispels, DR, ground spells, mana burns, RoM
|
||||
secondary resources, dampening, isolation, matchmaking and match results.
|
||||
Both-direction walks between team starts pass across all eight arenas.
|
||||
- Live checks use an isolated in-memory level-80 priest, ArenaPriest, without
|
||||
changing the user's roster. Warnorken showed its interior, the selected
|
||||
character and saved spell labels. Movement changed both actor and camera.
|
||||
Bots traversed, cast spells, reduced health and settled a defeat when idle.
|
||||
No detailed-asset warning appeared. Evidence uses the arena-complete prefix
|
||||
under playtest-artifacts; earlier Nagrand/custom-bar evidence retains the
|
||||
arena-player prefix. The drag probe uses installed input code with scripted
|
||||
right-button events; rotation changes while held, stops after release, and
|
||||
pointerLockElement remains null. This is not a physical-device test.
|
||||
- Final screenshots show the Warnorken interior and character/action bar,
|
||||
Black Rook's corrected interior floor, the roster body/staff, and the
|
||||
character/party after returning to Wailing Caverns. Files:
|
||||
arena-complete-warnorken.png, arena-complete-black-rook.png,
|
||||
arena-complete-roster.png, arena-complete-dungeon.png and
|
||||
arena-complete-keybinds.png in playtest-artifacts.
|
||||
- Production build and release checks passed, with the existing bundle-size
|
||||
advisory. Run npm run arena:abilities:build after catalog/asset changes;
|
||||
prebuild also regenerates the engine and geometry. Verification is local
|
||||
offline practice plus authoritative server tests. Hosted online PvP,
|
||||
deployment and Android hardware were not exercised.
|
||||
|
||||
# 2026-09-10 — profile keybinds and movement-conflict recovery
|
||||
|
||||
- Added Pause / Options → Keybinds with 133 actions, PC and Controller tabs,
|
||||
search/categories, capture and touch selectors, explicit conflict replacement,
|
||||
clear/reset controls, and Restore movement. Desktop defaults to PC; mobile
|
||||
and native Android default to Controller. Both tabs remain available.
|
||||
- Live offline browser check: assigning W to bar 1/button 1 named Move forward
|
||||
in the conflict prompt; cancelling preserved W. Rebinding forward to T,
|
||||
saving, closing, and reopening retained T. Restore movement returned it to W.
|
||||
- At 390 × 844, controller selectors assigned L1 + Triangle to Jump, prompted
|
||||
before clearing the old layer-2 ability binding, and retained the saved chord
|
||||
after reopening. Restored the test bindings afterward. The final phone panel
|
||||
starts at (0, 0), has a 443px scrolling action list, and keeps the footer within
|
||||
the viewport. Desktop layout checked at 1280 × 900.
|
||||
- Fixed the inherited 610px panel-height cap, mobile backdrop padding, action
|
||||
button accessible names, and companion-toggle overlap found during QA.
|
||||
- 89 targeted tests passed across input dispatch, mouse-drag lifecycle, analog
|
||||
remapping, conflict recovery, menus, account isolation, cloud transfer, UI
|
||||
imports, and dual-display synchronization. The full production build and
|
||||
release candidate check passed; the existing bundle-size advisory remains.
|
||||
- Controller chord conflicts also cover a modifier button’s standalone action,
|
||||
preventing combinations such as View + A from opening the companion first.
|
||||
- Hardware controller / Android APK validation and a physical right-button
|
||||
drag were unavailable through this browser session. Drag lifecycle and null
|
||||
pointer-lock assertions passed in the input tests. Browser viewport screenshots
|
||||
are scaled by the in-app compositor; DOM geometry supplied the viewport checks.
|
||||
|
||||
## 2026-09-10 - Original spell media defaults and visual fallback
|
||||
|
||||
- Original spell visuals and authentic sounds are enabled by default. The original media pack is prepared before gameplay; download failure leaves generated visuals available and missing sounds silent.
|
||||
- Saves using the previous generated-only default migrate once to original media while retaining quality, group visibility, mute, and volume settings. Explicit later preferences remain saved.
|
||||
- Removed synthesized combat audio. Original mode now uses generated visuals when no original phase is mapped or when all original graphs/textures for that phase fail to load; usable original layers remain preferred.
|
||||
- Validation: 64 targeted tests passed, covering defaults, persistence migration, media installation/retry, rendering selection, original audio playback, silence on missing/invalid audio, and existing effect lifecycles. Production TypeScript and Vite build passed after correcting the installer test mock type; prebuild content/asset checks also passed.
|
||||
- Browser verification used the production CombatEffects and OriginalCombatEffect components with isolated store/media fixtures and the actual packaged Flash Heal graph/textures. The original case rendered one original emitter and zero generated emitters. Unmapped spell, graph HTTP 404, and texture HTTP 404 cases each rendered zero original emitters and one visible generated effect. Combat reset removed the fallback.
|
||||
- Evidence: playtest-artifacts/spell-media-20260910/original.png, bad-graph.png, bad-texture.png, and missing.png. The first Vite preview timed out; the bundled isolated preview completed successfully. This was an effect-focused browser check, not a full dungeon or device audio audition.
|
||||
- Final release check: blocked by existing trailing whitespace in server/generated/arena-combat-runtime.mjs. The files changed for spell media pass the whitespace check; the unrelated generated arena file was left intact.
|
||||
|
||||
## 2026-09-10 - All regular dungeons bundled with lossless shared storage
|
||||
|
||||
- Web and Android packaging include all 84 regular dungeons and their asset dependencies. Shared Manastorm maps are stored once while every Manastorm pack keeps its optional install flag. Manastorm-only maps remain outside the initial package.
|
||||
- Packaged assets fell from 3,440,440,928 logical bytes to 1,600,690,686 stored bytes, including 179,063,519 bytes saved by sharing exact duplicate files. No source models, texture resolutions, animations, or audio were changed or generated.
|
||||
- Gzip representations retain both compressed and original SHA-256/size metadata. Publishing keeps original remote objects for older clients. Browser installs verify both representations, retain compressed shared objects with small aliases, and preserve shared objects until their final pack is removed. Native optional downloads remain resumable and verify their expanded originals before activation.
|
||||
- Android's packager automatically expanded and renamed .gz files; final objects use .gzip with noCompress instead. Added an APK verifier to the normal Android build workflow, checking every object, every original hash, exact object inventory, and the 84-dungeon/optional-Manastorm boundary.
|
||||
- Final debug APK: 1,622,100,512 bytes. All 9,106 unique objects (9,194 logical asset references) passed verification from inside the actual APK. Verification report and test APK: artifacts/dungeon-texture-audit-20260910/apk-verification.json and healer-man-0.1.28-debug.apk.
|
||||
- Validation: production TypeScript/Vite build and asset checks passed; 80 targeted content, Downloads, and avatar tests passed across the final runs, plus nine publisher/server tests. Android Java compilation and assembleDebug passed. Existing bundle-size/import advisories remain.
|
||||
- Live production browser check used an isolated offline Gziphealer character. Roster and Deadmines rendered the player body, party bodies, equipped weapon silhouettes, and textured dungeon geometry using the bundled compressed objects. Downloads showed all regular dungeon packs included and 75 Manastorm rows not installed. Evidence: artifacts/dungeon-texture-audit-20260910/roster-final.png, deadmines-final.png, and downloads-dom.txt. No new console errors appeared in the final-format dungeon run.
|
||||
- A concurrent build replaced the shared dist directory during the first preview, causing temporary asset 404s. Repeated visual validation against an isolated build completed successfully. Deadmines displayed a route-blocked party status at its entrance; this was a loading/rendering check, not a full dungeon traversal. Physical Android hardware was not exercised.
|
||||
Reference in new issue
Block a user