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:
1 parent
7f134737ce
commit
f8e35d5055
17 files changed
+514
-54
No files matched your search
@@ -346,8 +346,11 @@ test('a merge completed during SETTLE (突变细胞) keeps its reward offer for
|
||||
} else {
|
||||
assert.equal(loc.area, 'hand', `${label}: the consumed hand pieces freed the slots`);
|
||||
}
|
||||
assert.equal(ps.hand.filter((p) => p && p.kind === 'item').length, fillers0, `${label}: the hand's equipment stays`);
|
||||
assert.ok(ps.tempEmpty && ps.privateView().canReady, `${label}: nothing waits in temp`);
|
||||
const CELL = 'chess_item_5_08_e_a';
|
||||
assert.equal(ps.hand.filter((p) => p && p.kind === 'item' && p.id !== CELL).length, fillers0, `${label}: the hand's equipment stays`);
|
||||
// the cell is not consumed (player feedback after 0.1.0): it came back to the hand — or temp, the hand being full
|
||||
assert.equal([...ps.hand, ...ps.temp].filter((p) => p && p.id === CELL).length, 1, `${label}: the cell came back`);
|
||||
assert.ok(ps.temp.every((p) => !p || p.id === CELL), `${label}: nothing else waits in temp`);
|
||||
checkInvariants(m);
|
||||
// it expires at the end of that prep like any other offer
|
||||
h.drive(() => m.phase === PHASE.COMBAT && m.round === 2);
|
||||
|
||||
Reference in new issue
Block a user