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
@@ -3,11 +3,12 @@
|
||||
This pipeline converts preserved RuneWaker `.ros` dungeon assets into the same
|
||||
browser-facing GLB roles used by HealerMan's WoW dungeon pipeline:
|
||||
|
||||
1. the preserved Rune engine reads the WDB entity table and exports the primary ROS as an OBJ/MTL bridge;
|
||||
2. Microsoft `texconv` decodes the legacy DDS textures to PNG;
|
||||
3. Blender converts the Y-up source to textured visual and chunked collision GLBs;
|
||||
4. glTF Transform optimizes the visual asset with meshopt;
|
||||
5. HealerMan's Recast stage bakes navigation and the Khronos validator gates every GLB.
|
||||
1. the preserved Rune engine reads every WDB descriptor and exports each unique ROS once into a normalized-path cache validated by the source SHA-256;
|
||||
2. Microsoft `texconv` decodes each cached resource's legacy DDS textures to PNG;
|
||||
3. Blender converts the Y-up resources to reusable visual and collision GLBs;
|
||||
4. the assembler applies every placement's full translation/quaternion/scale transform relative to the reviewed primary WDB anchor;
|
||||
5. glTF Transform instances and optimizes the assembled visual with meshopt;
|
||||
6. HealerMan's Recast stage bakes static navigation and the Khronos validator gates every GLB.
|
||||
|
||||
Run the Forsaken Abbey pilot from the HealerMan root:
|
||||
|
||||
@@ -24,10 +25,29 @@ Optional environment variables:
|
||||
|
||||
The shipping environment is written to
|
||||
`src/assets/game/dungeons/forsaken-abbey` and registered as a playable
|
||||
dungeon. The build reads all 184 WDB entity descriptors,
|
||||
uses the primary ROS placement as the server-to-local anchor, reads the entrance
|
||||
from `Resource/luascript/03242.lua`, and requires that entrance to project within
|
||||
2 meters of the generated navmesh.
|
||||
dungeon. The build reads all 184 WDB entity descriptors, uses the primary ROS
|
||||
placement only as the server-to-local coordinate anchor, reads the entrance from
|
||||
`Resource/luascript/03242.lua`, and requires that entrance to project within 2
|
||||
meters of the generated navmesh.
|
||||
|
||||
All valid ROS placement resources are assembled by default. Use `--primary-only`
|
||||
only for a deliberate compatibility/debug build. The build writes
|
||||
`wdb-placement-manifest.json` with stable placement IDs, source TRS, the complete
|
||||
primary-local Three.js matrix, resource-cache keys, bounds, flags, asset status,
|
||||
and reviewed dynamic-object metadata. Static placements enter visual, collision,
|
||||
and navigation assets. Explicit dynamic placements ship separately so runtime
|
||||
state can move, hide, or replace them without baking their collision into the
|
||||
static world.
|
||||
|
||||
Audit the checked-in WDB coverage without regenerating GLBs:
|
||||
|
||||
```powershell
|
||||
npm run runewaker:audit:environment-assembly
|
||||
```
|
||||
|
||||
See
|
||||
[RUNEWAKER_ENVIRONMENT_ASSEMBLY_REPORT.md](./RUNEWAKER_ENVIRONMENT_ASSEMBLY_REPORT.md)
|
||||
for unsupported types and dynamic candidates that still need source review.
|
||||
|
||||
Population and creature assets are separate, offline-capable stages:
|
||||
|
||||
@@ -36,6 +56,15 @@ npm run runewaker:forsaken:actors
|
||||
npm run runewaker:forsaken:population
|
||||
```
|
||||
|
||||
Source-shaped combat coefficients and boss loot are refreshed independently:
|
||||
|
||||
```powershell
|
||||
npm run runewaker:spells:refresh
|
||||
npm run runewaker:loot:refresh
|
||||
```
|
||||
|
||||
See [RUNEWAKER_FORMULA_AND_LOOT.md](./RUNEWAKER_FORMULA_AND_LOOT.md) for the exact formula mapping boundary and [RUNEWAKER_LOOT_IMPORT_REPORT.md](./RUNEWAKER_LOOT_IMPORT_REPORT.md) for every boss's loot status.
|
||||
|
||||
Only an explicit forensic refresh connects to the isolated development SQL
|
||||
instance:
|
||||
|
||||
@@ -121,8 +150,10 @@ Spell conversion is deliberately fail-closed. Only a MagicObject component
|
||||
positively classified as direct HP damage becomes an executable HealerMan
|
||||
attack. Buffs, healing, summons, plot hooks, and unknown effects remain
|
||||
evidence-only. The portable mapping preserves source spell identity, name,
|
||||
damage family, school, range, and cooldown. The current 0.85 damage coefficient
|
||||
is HealerMan-authored and is not represented as the original RuneWaker formula.
|
||||
damage family, school, range, cooldown, source power fields, and source-code
|
||||
formula provenance. Live damage uses a labeled HealerMan baseline adapter because
|
||||
the required native ATK/MATK, DEF/MDEF, weapon, resistance, critical, level-rate,
|
||||
and global-rate inputs are not packaged; it is not represented as source-exact.
|
||||
|
||||
`runewaker:bosses:refresh` first rebuilds that portable spell snapshot, then
|
||||
statically follows each packaged boss's preserved AutoPlot/template callbacks
|
||||
@@ -165,6 +196,21 @@ accepts that reviewed override only as `bossObjectiveOrder: { kind:
|
||||
"source-authored", spawnIds: [...], evidence: [...] }`; it rejects missing
|
||||
evidence, duplicates, or an order that does not account for every boss spawn.
|
||||
|
||||
The same gameplay audit also regenerates the deterministic
|
||||
[RUNEWAKER_ENCOUNTER_IMPLEMENTATION_REPORT.md](./RUNEWAKER_ENCOUNTER_IMPLEMENTATION_REPORT.md)
|
||||
and its exhaustive JSON companion. The ledger records all deferred source spawn
|
||||
rows and direct mechanics evidence with stable IDs, source files and hashes,
|
||||
fidelity, implementation status, blocker, next work, and a clearing test.
|
||||
Category totals are overlapping review labels, never a claimed count of unique
|
||||
mechanics. Unproven behavior remains `deferred-source-gap` instead of being
|
||||
silently inferred from a name or regex match.
|
||||
|
||||
Run only that ledger and its pipeline tests with:
|
||||
|
||||
~~~powershell
|
||||
npm run runewaker:audit:encounters
|
||||
~~~
|
||||
|
||||
Run the component-level navigation review separately:
|
||||
|
||||
~~~powershell
|
||||
|
||||
Reference in new issue
Block a user