feedback1 integrate: WR 阵法术师 / 轰击术师 attacks hit every enemy in range

# Conflicts:
#	docs/SIM.md
This commit is contained in:
sganggs committed 2026-10-03 07:04:07 +08:00
commit fcbccd4a32
13 files changed
+535 -59

No files matched your search

+3 -3
View File
@@ -1053,13 +1053,13 @@ test('卡涅利安 S3 食噬之印: wider range, ATK ramps to +atk over the skil
assert.ok(u.rangeKeys.length > n0);
h.run(sk.duration / 2);
approx(u.findBuff('billro:s3atk').mods.atkPct, bb.atk * 0.5, 0.02, `${id}: half-way ramp`);
const m = e.findBuff(`billro:mark:${u.id}`);
assert.ok(m && m.stacks === 5, `${id}: marks capped at 5 (${m?.stacks})`);
const m = e.findBuff('billro:mark');
assert.ok(m && m.stacks === 5 && m.source === u, `${id}: marks capped at 5 (${m?.stacks})`);
const hits = dmgBy(h, u, (c) => c.dmg.isAttack && c.target === e);
const last = hits[hits.length - 1];
approx(last.amount / (u.s.atk), 1 + bb['attack@damage_scale'] * 5, 0.05, '+100 % with 5 marks');
h.runUntil(() => !u.skill.active, sk.duration);
assert.ok(!e.findBuff(`billro:mark:${u.id}`), 'marks end with the skill');
assert.ok(!e.findBuff('billro:mark'), 'marks end with the skill');
assert.ok(!u.findBuff('billro:s3atk'));
}
});
+2 -2
View File
@@ -371,7 +371,7 @@ test('阿罗玛: first attack ×1.1 + 2.5 s levitation; S2: +ATK and landing dam
assert.ok(noisy(h, 'statusApplied').some((c) => c.target === e && c.status === 'levitate' && c.duration === t0.levitate_duration));
// a second enemy: skill on before it is bubbled → landing damage
assert.ok(u.skill.activate('test', { free: true }));
const e2 = h.spawn('enemy_dummy', { pos: [10, 7] }); // splashed by the next attack on the first dummy
const e2 = h.spawn('enemy_dummy', { pos: [10, 7] }); // on her line: struck by the next attack too (轰击术师)
approx(u.s.atk, u.base.atk * (1 + bb.atk), 1e-9);
h.runUntil(() => dmgBy(h, u, (c) => c.dmg?.tags?.includes('landing')).length >= 1, 15);
const land = dmgBy(h, u, (c) => c.dmg?.tags?.includes('landing'));
@@ -1067,7 +1067,7 @@ test('瑰盐 S2 only defers damage taken by operators (summons take it in full)'
assert.equal(noisy(h, 'damaged').filter((c) => c.target === tok && c.dmg?.tags?.includes('hpLoss')).length, 0);
});
test('卡涅利安 S2: every enemy hit by the AoE attack is slowed (splash victims too)', () => {
test('卡涅利安 S2: every enemy hit by the group attack is slowed', () => {
const id = 'chess_char_4_24_a', bb = D(id).skill.bb;
const h = makeBattle({ defs: { enemies: { enemy_dummy: dummy() } }, units: [{ chessId: id, row: 10, col: 5 }], timeLimit: 60, hooks: ['statusApplied'] });
h.step();