Update Healer Man server

This commit is contained in:
phenom committed 2026-09-27 18:46:30 -04:00
1 parent e284f4fc76
commit 15a5254380
52 files changed
+637 -80

No files matched your search

+6
View File
@@ -21,6 +21,12 @@ npm run effects:audit
npm run effects:test
```
`npm run effects:meteor` packages the Ascension Mage Meteor release and impact
models used by Falling Stars. It reads the additional Ascension models from the
extracted `patch-N` directory and attaches browser-ready graphs to spell
`ascension:500135`. The full `effects:generate` command runs this step after
the WoW package step so a regenerated manifest keeps the affix visuals.
`effects:generate` rebuilds the DBC/audio mappings before packaging all WoW
visuals. `effects:priest` remains a compatibility alias for `effects:wow` so it
cannot accidentally revert the main manifest to Priest-only coverage. The old
@@ -0,0 +1,36 @@
#!/usr/bin/env node
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { packageWowOriginalEffects } from "./package-wow-original.mjs";
const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
const manifestPath = path.join(projectRoot, "public/assets/game/combat-effects/manifest.json");
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
const entryIndex = manifest.entries.findIndex((entry) => entry.key === "ascension:500135");
if (entryIndex < 0) throw new Error("Mage Meteor is absent from the combat effect manifest.");
const entry = manifest.entries[entryIndex];
const phases = {
release: entry.phases.release,
impact: entry.phases.impact,
};
const roots = ["patch-N", "common-2.mpq", "patch-3", "patch-2", "patch", "expansion", "lichking", "common"]
.map((name) => path.resolve(projectRoot, "../LadiksMPQEditor", name));
const packaged = packageWowOriginalEffects({ entries: [{ ...entry, source: "wow335", phases }], coverage: {} }, {
roots,
catalog: { classes: {} },
});
if (packaged.report.failures.length) {
throw new Error(`Meteor packaging failed: ${JSON.stringify(packaged.report.failures)}`);
}
const packagedPhases = packaged.manifest.entries[0].phases;
for (const phase of Object.keys(phases)) {
if (packagedPhases[phase].some((asset) => !asset.effectGraphUrl)) {
throw new Error(`Meteor ${phase} has an unrenderable model.`);
}
}
manifest.entries[entryIndex] = { ...entry, phases: { ...entry.phases, ...packagedPhases } };
fs.writeFileSync(manifestPath, `${JSON.stringify(manifest)}\n`);
console.log(JSON.stringify({ key: entry.key, phases: packagedPhases, report: packaged.report }, null, 2));