Update Healer Man server

This commit is contained in:
phenom committed 2026-09-24 18:15:45 -04:00
1 parent 71246e5b75
commit a868401ebc
40 files changed
+1522 -161

No files matched your search

@@ -353,12 +353,52 @@ test("primary-five RuneWaker spells retain source phases and packaged sound cues
assert.ok(entry(490495).sounds.some((sound) => sound.sourcePath === "sound/fx/skill/holy/act_godshield_c_down.mp3"));
});
test("Priest target and projectile sounds follow their verified ROS event phases", () => {
const manifest = JSON.parse(fs.readFileSync(path.join(projectRoot, "public/assets/game/combat-effects/manifest.json"), "utf8"));
const archive = JSON.parse(fs.readFileSync(path.join(projectRoot, "public/assets/game/combat-effects/original/runewaker/manifest.json"), "utf8"));
for (const { spellId, phase, motion, model, sourcePath } of [
{
spellId: 491147, phase: "impact", motion: "explode",
model: "model/fx/skill/holy/act_benedictory_heal_t_down.ros",
sourcePath: "sound/fx/skill/holy/act_benedictory_heal_t_down.mp3",
},
{
spellId: 490256, phase: "release", motion: "appear",
model: "model/fx/skill/ice/act_icecone01_f.ros",
sourcePath: "sound/fx/skill/ice/icenew/act_icecone01_f.ros.mp3",
},
{
spellId: 490256, phase: "impact", motion: "explode",
model: "model/fx/skill/ice/act_riptide_t_freeze_hit.ros",
sourcePath: "sound/fx/skill/ice/act_riptide_t_freeze_hit.mp3",
},
]) {
const entry = manifest.entries.find((candidate) => candidate.key === `runewaker:${spellId}`);
assert.ok(entry?.phases?.[phase]?.some((asset) => asset.model === model));
const cues = entry.sounds.filter((sound) => sound.phase === phase && sound.sourcePath === sourcePath);
assert.equal(cues.length, 1);
assert.ok(cues[0].url?.startsWith("/assets/game/combat-effects/audio/"));
assert.ok(fs.existsSync(path.join(projectRoot, "public", cues[0].url.slice(1))));
const result = archive.results.find((candidate) => candidate.model === model);
assert.ok(result?.graphUrl);
const graph = JSON.parse(fs.readFileSync(path.join(projectRoot, "public", result.graphUrl.slice(1)), "utf8"));
assert.ok(graph.motions.some((candidate) => candidate.name === motion
&& candidate.controllers.some((controller) => controller.sourceType === "CRuController_EventTrigger"
&& controller.eventID === 43 && controller.eventParameter0 === 0
&& controller.eventString?.replaceAll("\\", "/").toLowerCase() === sourcePath)));
}
});
test("only browser-verified RuneWaker particle phases use original graphs", () => {
const manifest = JSON.parse(fs.readFileSync(path.join(projectRoot, "public/assets/game/combat-effects/manifest.json"), "utf8"));
const expected = new Set([
"491147:cast-start:model/fx/skill/holy/act_casting_c_hand.ros",
"491147:impact:model/fx/skill/holy/act_benedictory_heal_t_down.ros",
"490261:cast-start:model/fx/skill/holy/act_casting_c_hand.ros",
"490281:cast-start:model/fx/skill/holy/act_casting_c_hand.ros",
"490256:cast-start:model/fx/skill/ice/act_icecone01_c_hand.ros",
"490256:release:model/fx/skill/ice/act_icecone01_f.ros",
"490256:impact:model/fx/skill/ice/act_riptide_t_freeze_hit.ros",
"490150:cast-start:model/fx/skill/physical/act_charge02_c_down.ros",
"490175:impact:model/fx/hit_fx/act_shieldstorm_t_freeze_hit_e.ros",
"491168:release:model/fx/skill/wind/act_electric_ball_f_i.ros",
@@ -372,7 +412,14 @@ test("only browser-verified RuneWaker particle phases use original graphs", () =
assert.equal(asset.effectKind, "runewaker-particles");
if (entry.spellId === 490175) assert.equal(asset.scale, 2.5);
const graph = JSON.parse(fs.readFileSync(path.join(projectRoot, "public", asset.effectGraphUrl.slice(1)), "utf8"));
assert.equal(graph.rendererReady, true);
if (key === "491147:impact:model/fx/skill/holy/act_benedictory_heal_t_down.ros") {
assert.equal(asset.visualCompleteness, "partial");
assert.equal(graph.partialRendererReady, true);
assert.equal(graph.rendererReady, false);
} else {
assert.equal(asset.visualCompleteness, undefined);
assert.equal(graph.rendererReady, true);
}
assert.equal(graph.sourceModel, asset.model);
}
}