feedback1 integrate: WT 蒂比's 起飞 is 对地规避 - ground enemies no longer select or hit her while airborne
Conflicts resolved keeping both sides: - buffs.js FLAG_KEYS: liftoff beside the integration's selfBound. - Battle.js: targeting import union (extendedGrid + evadesGround); _blockerFor keeps the fenced-tile gate (WU) and adds liftoff; applyStatus keeps the 无敌 + 无法选中 refusal and adds the 对地规避 refusal. - enemies.js: header DOT entry from WT with the integration's INVISIBLE entry; import union; enemy_1273_stmgun_2 keeps the integration's rewrite (it filters through canTargetAlly, which now includes liftoff). - tier2.js 蒂比 comment: the integration's 受到伤害前触发 text plus the 起飞 line. - tier5.js 隐德来希 血镰: liftoff flag with the integration's foesInRadius. - SIM.md: blocking keeps the fenced-tile passage and adds air-only blocking while airborne; the 污染秽蚀 / 燃烧区域 sentence goes before the chimera aura; statuses keep both refusals.
This commit is contained in:
commit
987126cc1a
13 files changed
+709
-70
No files matched your search
@@ -362,7 +362,8 @@ test('2_13 蒂比 S1 专业喷绘技巧: DEFAULT trigger, takes off (skill range
|
||||
const range0 = u.baseRangeKeys.length;
|
||||
h.runUntil(() => u.skill.active, 3);
|
||||
assert.equal(started(h, u)[0].reason, 'DEFAULT');
|
||||
assert.equal(u.ground, false, 'airborne');
|
||||
assert.equal(u.s.flags.liftoff, true, 'airborne (起飞)');
|
||||
assert.equal(u.ground, true, 'still a ground unit on her low tile');
|
||||
approx(u.s.atk, u.base.atk * (1 + bb.atk));
|
||||
assert.ok(u.rangeKeys.length > range0, 'skill range');
|
||||
const fl = h.spawn('f', { pos: [9, 5] });
|
||||
@@ -374,7 +375,7 @@ test('2_13 蒂比 S1 专业喷绘技巧: DEFAULT trigger, takes off (skill range
|
||||
assert.equal(hits.length, atk.reduce((n, c) => n + c.targets.length, 0), 'one shot per target (no 3 连射)');
|
||||
h.runUntil(() => !u.skill.active, 40);
|
||||
h.step();
|
||||
assert.equal(u.ground, true, 'landed');
|
||||
assert.ok(!u.s.flags.liftoff, 'landed');
|
||||
done(h);
|
||||
// an enemy attack from outside her range never sets S1 off (S2's 受到攻击后触发 is not hers)
|
||||
const h2 = run({ defs: { enemies: { r: dummy('r', { atk: 300, bat: 1, range: 3.2 }) } }, units: [U(id, 9, 5, { carryState: READY })], enemies: [{ key: 'r', pos: [9, 8] }] });
|
||||
|
||||
@@ -962,7 +962,8 @@ test('2_13 蒂比: an incoming attack triggers 紧急赶场通知 and is dodged;
|
||||
assert.equal(h.hooksOf('skillStart').find((c) => c.unit === u).reason, 'TAKE_DAMAGE');
|
||||
assert.equal(u.stats.taken, 0, 'the triggering hit was dodged');
|
||||
approx(u.s.atk, u.base.atk * (1 + bb.atk));
|
||||
assert.equal(u.ground, false);
|
||||
assert.equal(u.s.flags.liftoff, true, 'airborne (起飞)');
|
||||
assert.equal(u.ground, true, 'still a ground unit on her low tile');
|
||||
h.step();
|
||||
assert.equal(e.blockedBy, null, 'airborne: ground enemies are released');
|
||||
const fl = h.spawn('f', { pos: [9, 5] });
|
||||
|
||||
Reference in new issue
Block a user