forked from phenom/healer-man
Release Healer Man 0.1.21
This commit is contained in:
1 parent
699fc858c9
commit
f6f2375145
210 files changed
+976039
-6247
No files matched your search
@@ -47,15 +47,23 @@ reviewed mechanics passes.
|
||||
|
||||
## Coordinate conversion
|
||||
|
||||
RuneWaker server positions are world coordinates. The environment ROS is
|
||||
placed by one WDB descriptor. Spawns must be moved into that ROS's local frame
|
||||
before the RuneWaker-to-Three coordinate conversion:
|
||||
RuneWaker server positions are world coordinates. The reviewed primary WDB
|
||||
descriptor remains the coordinate anchor, while every static and reviewed
|
||||
dynamic WDB resource is assembled relative to that anchor. Spawns use:
|
||||
|
||||
```text
|
||||
sourceLocal = inverse(primaryWdbPlacement) * serverPosition
|
||||
threeLocal = (sourceLocal.x, sourceLocal.y, -sourceLocal.z) * metersPerSourceUnit
|
||||
```
|
||||
|
||||
Every resource placement uses the full matrix equivalent, including translation,
|
||||
quaternion rotation, and nonuniform scale:
|
||||
|
||||
```text
|
||||
threeMatrix = S * inverse(primaryTRS) * placementTRS * inverse(S)
|
||||
S = scale(metersPerSourceUnit, metersPerSourceUnit, -metersPerSourceUnit)
|
||||
```
|
||||
|
||||
The current calibrated scale is `0.1` meter per RuneWaker source unit. The
|
||||
authoritative test-dungeon table uses 360 degrees per turn:
|
||||
|
||||
@@ -283,12 +291,17 @@ Review:
|
||||
- collision chunks for decorative blockers;
|
||||
- Recast report and entrance projection;
|
||||
- WDB anchor in `import-metadata.json`;
|
||||
- complete placement accounting in `wdb-placement-manifest.json`;
|
||||
- source-evidenced dynamic placements are absent from static collision and have separately packaged runtime assets;
|
||||
- dynamic filename candidates remain static and review-required until a reviewed recipe rule exists;
|
||||
- Khronos validation output.
|
||||
|
||||
Secondary WDB doodads/effects remain audited. Repeated primary room placements
|
||||
and documented source-coordinate support/fallback geometry are automated; a
|
||||
complete arbitrary multi-ROS WDB scene still requires explicit placement,
|
||||
material, collision, and performance review.
|
||||
Every valid WDB ROS resource is exported once into
|
||||
`runewaker-export-work/resource-cache/<resource-key>`, then reused for all of its
|
||||
placements and across dungeon builds. Missing ROS files, non-ROS descriptors,
|
||||
export failures, and non-mesh particle/light/sound/script components are recorded
|
||||
instead of receiving substitute geometry. The preview and editable Blender file
|
||||
remain primary-ROS diagnostics; review the assembled GLB for final coverage.
|
||||
|
||||
### 6. Review and build creature actors
|
||||
|
||||
@@ -401,6 +414,13 @@ Each mechanic must specify trigger, targets, timing, reset behavior, persistence
|
||||
offline behavior, and multiplayer synchronization boundary before being marked
|
||||
implemented.
|
||||
|
||||
Run `npm run runewaker:audit:encounters` after changing source snapshots,
|
||||
mechanics evidence, generated populations, or the shared boss-mechanic catalog.
|
||||
Its JSON report is the exhaustive implementation ledger. A source-spawn row or
|
||||
evidence record may be promoted from
|
||||
`deferred-source-gap` only when an exact executable mapping and its clearing test
|
||||
are both present; a regex category or suggestive object name is not sufficient.
|
||||
|
||||
### 9. Register the dungeon
|
||||
|
||||
Use the generated environment metadata and population constants to create the
|
||||
@@ -443,6 +463,8 @@ errors, WebGL errors, and mobile/desktop performance.
|
||||
| `public/assets/creatures/<slug>/*` | Browser-shipping actor GLBs/manifest. |
|
||||
| `src/game/generated/*Population.generated.ts` | Runtime entities/spawns/objectives. |
|
||||
| `src/game/generated/*Mechanics.generated.ts` | Non-executable mechanics evidence summary. |
|
||||
| `scripts/runewaker-pipeline/RUNEWAKER_ENCOUNTER_IMPLEMENTATION_REPORT.*` | Deterministic per-row/per-signal fidelity and blocker ledger. |
|
||||
| `scripts/runewaker-pipeline/RUNEWAKER_ENVIRONMENT_ASSEMBLY_REPORT.*` | Non-mutating WDB resource/placement coverage and unsupported-type audit. |
|
||||
|
||||
Generated runtime data must be reproducible from recipes plus portable snapshots
|
||||
without SQL or network access.
|
||||
@@ -462,13 +484,13 @@ without SQL or network access.
|
||||
|
||||
## Current deliberate limits
|
||||
|
||||
The generic scripts automate source discovery, primary environment conversion,
|
||||
The generic scripts automate source discovery, source-hash-validated multi-resource WDB environment conversion,
|
||||
portable population recovery, direct GR2 actor conversion, exact paperdoll
|
||||
assembly, source-safe direct-damage attacks, spawn generation, repeated-room
|
||||
assembly, source-anchor navigation, mechanics evidence extraction, runtime
|
||||
assembly, full placement transforms, static navigation, reviewed dynamic-object packaging, mechanics evidence extraction, runtime
|
||||
registration, and validation. They do not pretend that arbitrary Lua/AutoPlot
|
||||
code can be safely translated without review. Disconnected navmesh islands,
|
||||
doors, phases, summons, patrols, timers, interactions, loot semantics, arbitrary
|
||||
multi-ROS placement assembly, source-exact damage formulas, and multiplayer
|
||||
source behavior for unreviewed dynamic candidates, source-exact damage formulas, and multiplayer
|
||||
encounter synchronization remain explicit per-instance engineering work until
|
||||
implemented and playtested.
|
||||
Reference in new issue
Block a user