1 parent
584cedc1b4
commit
4980ee786f
13 files changed
+153
-30
No files matched your search
@@ -195,6 +195,8 @@ test('薄绿 (3_08) 聚能涡旋 pushes the target towards her centre whatever h
|
||||
fill(u);
|
||||
assert.ok(h.runUntil(() => u.skill.active, 5));
|
||||
h.run(3);
|
||||
assert.ok(h.eventsOf('fx').some((f) => f[1] === 'displace' && f[4]?.keepFacing === true),
|
||||
`${dir}: Mint S2's inward push inherits the common facing metadata`);
|
||||
return h.enemy('enemy_d');
|
||||
};
|
||||
for (const dir of ['UP', 'RIGHT']) {
|
||||
|
||||
@@ -533,6 +533,8 @@ test('歌蕾蒂娅 S1 缺水的大洋裂断: charges; next attack atk_scale (×1
|
||||
assert.equal(sk.length, 1);
|
||||
approx(sk[0].amount, u.s.atk * bb.atk_scale * t1.atk_scale, 1e-6, `${id} hit`);
|
||||
assert.ok(e.x < x0 - 0.5, `${id}: pulled towards her (${x0} → ${e.x})`);
|
||||
assert.ok(h.eventsOf('fx').some((f) => f[1] === 'displace' && f[4]?.keepFacing === true),
|
||||
`${id}: S1 pull carries the common facing metadata`);
|
||||
// 中力 vs weight 1 (受力等级 0): "必定拉至身前" — to the 急停 radius 0.6708 around her centre (PRTS 推与拉), never past it
|
||||
approx(e.x, u.x + 0.6708, 1e-6, `${id}: stops at her front`);
|
||||
}
|
||||
@@ -555,6 +557,8 @@ test('歌蕾蒂娅 S2 缺水的掌握怒海: BAT +0.5 s, wider range, 2 targets
|
||||
assert.equal(hits.length, bb['attack@max_target']);
|
||||
for (const c of hits) approx(c.amount, u.s.atk * bb['attack@atk_scale'] * t1.atk_scale, 1e-6);
|
||||
for (const e of atk.targets) assert.ok(e.x < 6 - 0.4, `pulled (${e.x})`);
|
||||
assert.ok(h.eventsOf('fx').some((f) => f[1] === 'displace' && f[4]?.keepFacing === true),
|
||||
`${id}: S2 pull carries the common facing metadata`);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -609,7 +609,8 @@ test('1_19 野鬃: 夹枪冲锋 wider range, ATK +atk, pushes targets away; elit
|
||||
approx(u.s.atk, u.base.atk * (1 + bb.atk));
|
||||
const e = h.enemies()[0];
|
||||
assert.ok(e.x >= 6.5, `pushed to x=${e.x}`);
|
||||
assert.ok(h.eventsOf('fx').some((f) => f[1] === 'displace'));
|
||||
assert.ok(h.eventsOf('fx').some((f) => f[1] === 'displace' && f[4]?.keepFacing === true),
|
||||
'Wild Mane S2 inherits the common push facing rule');
|
||||
done(h);
|
||||
|
||||
const idb = 'chess_char_1_19_b', t = tal(idb);
|
||||
|
||||
@@ -121,6 +121,8 @@ test('莫斯提马 S3: ripple hits every enemy in range, ATK +90 %, knock-back;
|
||||
assert.ok(es.every((e) => hits.some((c) => c.target === e)), 'all three enemies hit by one ripple');
|
||||
approx(hits[0].amount, u.s.atk, 1e-6, 'full damage (res 0)');
|
||||
assert.ok(es.some((e, i) => e.x > x0[i] + 0.2), 'knocked back');
|
||||
assert.ok(h.eventsOf('fx').some((f) => f[1] === 'displace' && f[4]?.keepFacing === true),
|
||||
'Mostima S3 inherits the common push facing rule');
|
||||
checkInvariants(h.b);
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user