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

@@ -18,7 +18,7 @@ function assetFile(url) {
}
test("primary-five RuneWaker particle archive resolves its decoded graphs and textures", () => {
assert.equal(index.requestedModels, 123);
assert.equal(index.requestedModels, 124);
assert.equal(index.processedModels, index.requestedModels);
assert.equal(index.failedModels, 0);
assert.equal(index.results.length, index.requestedModels);
@@ -30,7 +30,9 @@ test("primary-five RuneWaker particle archive resolves its decoded graphs and te
assert.equal(graph.kind, "runewaker-ros-particle-archive");
assert.equal(graph.sourceModel, result.model);
assert.equal(graph.rendererReady, result.rendererReady);
assert.equal(Boolean(graph.partialRendererReady), result.partialRendererReady);
assert.equal(result.rendererReady, verifiedRuneWakerParticleModels.has(result.model)
&& !result.partialRendererReady
&& result.errors.length === 0
&& result.unsupported.every((type) => type === "CRuController_EventTrigger"));
assert.equal(graph.shader.name, "ruSHADER_PARTICLE_SPRITEEX");
@@ -56,6 +58,37 @@ test("primary-five RuneWaker particle archive resolves its decoded graphs and te
if (controller.type === "emitter") assert.equal(controller.tracks.length, 27);
}
}
assert.equal(spriteControllers, 510);
assert.ok(textureReferences >= 103);
assert.equal(spriteControllers, 515);
assert.ok(textureReferences >= 104);
});
test("Rising Tide ships three original renderable phases and Urgent Heal declares its partial target layers", () => {
for (const model of [
"model/fx/skill/ice/act_icecone01_c_hand.ros",
"model/fx/skill/ice/act_icecone01_f.ros",
"model/fx/skill/ice/act_riptide_t_freeze_hit.ros",
]) {
const result = index.results.find((entry) => entry.model === model);
assert.equal(result?.rendererReady, true, model);
assert.equal(result?.partialRendererReady, false, model);
}
const urgent = index.results.find((entry) =>
entry.model === "model/fx/skill/holy/act_benedictory_heal_t_down.ros");
assert.equal(urgent?.rendererReady, false);
assert.equal(urgent?.partialRendererReady, true);
assert.equal(urgent?.spriteControllers, 2);
const graph = JSON.parse(fs.readFileSync(assetFile(urgent.graphUrl), "utf8"));
assert.equal(graph.visualFidelity, "partial-original");
assert.deepEqual(graph.omittedVisuals, ["CRuEntity_Decal:terrain-projection"]);
assert.equal(graph.runeMesh.sourceModel, "model/fx/skill/holy/_polygon/rune_cylinder.ros");
assert.equal(graph.runeMesh.positions.length, 72 * 9);
assert.equal(graph.runeMesh.uvs.length, 72 * 6);
assert.ok(graph.textures.some((texture) => texture.url === graph.runeMesh.textureAssetUrl));
const impactControllers = graph.motions.find((motion) => motion.name === "explode").controllers;
assert.ok(impactControllers.some((controller) => controller.type === "entity-visualizer"));
const decal = impactControllers.find((controller) => controller.type === "decal");
assert.ok(decal);
assert.ok(graph.textures.some((texture) => texture.url === decal.textureAssetUrl));
assert.ok(impactControllers.some((controller) => controller.type === "global-color"));
assert.ok(impactControllers.some((controller) => controller.type === "global-alpha"));
});