feedback1 WA: Lappland counts her own first refresh; Mutation Cell is not consumed

Player reports after 0.1.0, #1 and #4.

#1 拉普兰德 (garrison_123, SERVER_GAIN_BOND_LAYER_BY_REFRESH_CNT) checked the
player's refresh count of the round, so a copy bought after the round's first
manual refresh never stacked that round. Players report the official
behaviour: the first refresh after acquiring her also stacks. Each copy now
counts the manual refreshes it witnessed this round (board or hand) through a
per-piece round counter (PlayerState.pieceRoundCount, ctx.incPieceCounter); an
elite merged this round keeps the highest count of its copies [ASSUMED]. The
"本回合每刷新过1次" multiplier traits keep the player's count.

#4 突变细胞 destroyed itself after one transformation. Official text never
says 销毁 (every consumable's does), PRTS notes "原干员销毁,获得一名高一阶的随机
初始干员", and players re-inject the cell every round. The built-in now replaces
the carrier with a random normal operator one tier higher (max 6) and returns
the carrier's equipment, the cell included, to the hand
(transformChess returnItems); the content override is gone. The item card
shows the rule (items.json note, build-data ITEM_RULES); bots inject their
least valuable single normal operator below tier 6 (bot.js cellTarget).
This commit is contained in:
sganggs committed 2026-10-03 01:47:52 +08:00
1 parent 7f134737ce
commit f8e35d5055
17 files changed
+514 -54

No files matched your search

+12 -2
View File
@@ -964,7 +964,9 @@ test('商业包装方案: every 8 / 7 operators sold ⇒ 1 normal operator shari
}
});
test('突变细胞: after a battle the carrier becomes a random NORMAL tier+1 operator, the cell is consumed, other equipment returns', () => {
test('突变细胞: after a battle the carrier becomes a random NORMAL tier+1 operator; its equipment, the cell included, returns to the hand', () => {
// PRTS 下半 记录 备注 "生效时,原干员销毁,获得一名高一阶的随机初始干员(最高六阶)"; the cell is not consumed (player
// feedback after 0.1.0 — players re-inject it every round; test/match/feedback1-meta.test.js)
const { m, ps, equip } = setup({ seed: 3 });
const cid = plain((c) => c.tier === 2)[0];
const holder = give(m, ps, cid, 'hand');
@@ -978,8 +980,16 @@ test('突变细胞: after a battle the carrier becomes a random NORMAL tier+1 op
assert.ok(!DATA.chess[p.id].isGolden);
assert.deepEqual(p.items, [], 'no equipment left on it');
assert.ok(handIds(ps, 'item').includes(A('1_01')), 'other item back in the hand');
assert.ok(!handIds(ps, 'item').includes(A('5_08')), 'cell consumed');
assert.ok(handIds(ps, 'item').includes(A('5_08')), 'the cell back in the hand (not consumed)');
assert.equal(DATA.items[A('5_08')].upgradeNum, 100);
// the golden record (same buff) behaves the same
const g = ps.hand.find((x) => x && x.id === A('5_08'));
g.id = B('5_08');
assert.deepEqual(equip(g, p), OK);
m.dispatch(ps, 'onBattleResult', { result: {}, lpLoss: 0, perfect: true });
const q = ps.hand.find((x) => x && x.kind === 'chess');
assert.equal(DATA.chess[q.id].tier, 4);
assert.ok(handIds(ps, 'item').includes(B('5_08')));
cover(A('5_08'), B('5_08'));
});