From 1303321407f9a9b80c68e0a4d47b40871a5d06c3 Mon Sep 17 00:00:00 2001 From: sganggs Date: Wed, 7 Oct 2026 14:43:29 +0800 Subject: [PATCH] =?UTF-8?q?feedback5:=20two=20render=20tests=20took=20?= =?UTF-8?q?=E5=AE=B4's=20S2=20(index=201)=20from=20the=20real=20manifest?= =?UTF-8?q?=20as=20their=20"skill=20without=20an=20idle=20clip"=20?= =?UTF-8?q?=E2=80=94=20that=20was=20the=20kneeling=20clip=20of=20=C2=A725.?= =?UTF-8?q?22.9;=20they=20now=20use=20her=20S1=20=E5=88=86=E7=A5=9E=20(ind?= =?UTF-8?q?ex=200,=20the=20same=20clips)=20and=20check=20that=20her=20S2?= =?UTF-8?q?=20plays=20no=20skill=20clip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/render/feedback3-skill-idle.test.js | 11 ++++++++--- test/render/feedback4-texas-skill-clip.test.js | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/test/render/feedback3-skill-idle.test.js b/test/render/feedback3-skill-idle.test.js index dcc651ab..57be0683 100644 --- a/test/render/feedback3-skill-idle.test.js +++ b/test/render/feedback3-skill-idle.test.js @@ -3,7 +3,7 @@ // and Skill_2_Idle; the actor queued the loop after the begin clip, so it jumped with nobody to hit (the sim made no // attack). Now a skill with an idle clip of its own (anims skill.idle ≠ skill.loop) stands in that idle between attacks, // plays the loop only on attacks, and goes back to the idle after a spell of attacks (its End clip only when the skill -// ends). Skills whose loop IS their idle (蕾缪安 S3) and skills without an idle (宴) are unchanged. Real manifest entries, +// ends). Skills whose loop IS their idle (蕾缪安 S3) and skills without an idle (宴 S1) are unchanged. Real manifest entries, // headless fake PIXI (test/render/fakepixi.js). import { test, before, after } from 'node:test'; @@ -76,11 +76,16 @@ test('the other skills with an own idle clip follow the same rule (史尔特尔 assert.equal(n.current, 'Skill_3_Idle'); }); -test('unchanged: a loop that is the skill idle (蕾缪安 S3) and a skill without an idle clip (宴: its loop stays the stance)', () => { +test('unchanged: a loop that is the skill idle (蕾缪安 S3) and a skill without an idle clip (宴 S1: its loop stays the stance)', () => { const l = actor('char_4193_lemuen', 2); l.setSkill(true); assert.deepEqual(l.log, [['set', 'Skill_3_Begin', false], ['queue', 'Skill_3_Idle', true]]); - const u = actor('char_337_utage', 1); + // 宴's S1 分神 (index 0: Skill_Start / Loop / End, no idle — her sit-down rest); her S2 plays no skill clip since + // 0.2.0 (tools/assets/spine.mjs PREFAB_SPINE_ROLES, DESIGN §25.22.9) + const u2 = actor('char_337_utage', 1); + u2.setSkill(true); + assert.deepEqual(u2.log.filter((x) => /^Skill/.test(x[1])), [], '宴 S2: no skill clip'); + const u = actor('char_337_utage', 0); assert.equal(u.roles.skill.idle, null); u.setSkill(true); assert.deepEqual(u.log, [['set', 'Skill_Start', false], ['queue', 'Skill_Loop', true]], 'begin → loop, as before'); diff --git a/test/render/feedback4-texas-skill-clip.test.js b/test/render/feedback4-texas-skill-clip.test.js index e0d8a6ee..81d3ae7a 100644 --- a/test/render/feedback4-texas-skill-clip.test.js +++ b/test/render/feedback4-texas-skill-clip.test.js @@ -88,7 +88,7 @@ test('unchanged: a Begin clip still runs into its queued next clip, a skill with const n = actor('char_1014_nearl2', 2); // 耀骑士临光 S3: no Begin, own Idle — plays that idle at once n.setSkill(true); assert.deepEqual(n.log, [['set', 'Skill_3_Idle', true]]); - const u = actor('char_337_utage', 1); // 宴: Begin → loop, unchanged + const u = actor('char_337_utage', 0); // 宴 S1 分神: Begin → loop, unchanged (her S2 has no skill clip, DESIGN §25.22.9) u.setSkill(true); assert.deepEqual(u.log, [['set', 'Skill_Start', false], ['queue', 'Skill_Loop', true]]); });