feedback4: 引星棘刺 S1 度算浪波 (an AUTO skill thrown at an ally) fires as soon as its SP is full, with no enemy around (GitHub #124)

This commit is contained in:
sganggs committed 2026-10-05 14:37:23 +08:00
1 parent 2519a23a55
commit 723755e3a5
2 files changed
+21

No files matched your search

+4
View File
@@ -1985,6 +1985,10 @@ const KITS = {
skills: lazySkills({
skchr_thorn2_1: () => ({
kind: instantKind(chess, def),
// an AUTO skill (skill_table 自动触发) that throws at an ally: it fires as soon as its SP is full, with or
// without an enemy — the basic DEFAULT rule waited for an attack, so with no enemy around it sat at 7/7
// (GitHub #124 「引星棘刺一技能不会在满技力时自动释放」)
trigger: { rule: 'SP_FULL' },
onStart({ battle, unit }) {
const t = battle.alliesInGrid(unit).filter((a) => a.hp > 0).sort((a, b) => a.hpRatio - b.hpRatio || b.blocking.length - a.blocking.length || dist(a, unit) - dist(b, unit) || a.id - b.id)[0];
if (!t) return;
+17
View File
@@ -1028,6 +1028,23 @@ test('引星棘刺 S1 度算浪波: an alchemy unit on the lowest-HP ally: DEF +
}
});
test('引星棘刺 S1 度算浪波 (AUTO): fires as soon as its SP is full, no enemy needed (GitHub #124)', () => {
for (const id of pair('15')) {
const h = run({
defs: { chess: { t_low: ally('t_low') } },
units: [entry(id, 'skchr_thorn2_1', { row: 10, col: 3 }), { chessId: 't_low', row: 10, col: 5 }],
enemies: [],
});
const u = sel(h, id, 'skchr_thorn2_1');
h.step();
assert.equal(h.b.enemies.length, 0, 'no enemy on the field');
const need = u.skill.spCost - u.skill.sp;
h.run(need + 0.5);
assert.ok((u.mem.zones || []).some((z) => z.type === 'guard'), `cast within ${need.toFixed(1)} s of SP filling, no enemy around`);
done(h);
}
});
test('引星棘刺 S3 “我的海疆”: passive skill range; alchemy units on the 3 lowest-block ops debuff (不叠加) and burn enemies around them, ramping to the max after 15 s', () => {
for (const id of pair('15')) {
const h = run({