Update Healer Man server
This commit is contained in:
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user