feedback5 WE2: effects, reward pools and 机变 cards that grant a random operator also draw the player's 自选 pieces (#9)

「自选干员放入后模拟中的补给池随机范围也将被相应扩大」: player/diy.js diyStockEntries (every
slotted piece with copies left; the roll's own tier rules, no 调度中心 gate) joins
effectsMeta ctx.rollChess / ctx.rollPool (spDraft rollPool extra + chessOf: bonds through
the player's view) and the 驰援 fallback in choices.js. Granted from the player's own
stock (poolOf). Docs: META, PLAYING. Golden: no scenario moved.
This commit is contained in:
sganggs committed 2026-10-06 15:42:59 +08:00
1 parent 7a3d53faf6
commit 7b83028139
7 files changed
+124 -11

No files matched your search

+6 -2
View File
@@ -482,9 +482,13 @@ function applyDefault(m, ps, card) {
handled = true;
break;
case 'single_special_choice_gain_bond_chess': {
// the player's 自选 stock joins the draw, its bonds read through the player's view (player/diy.js diyStockEntries)
const pgd = ps.gd || gd;
const hasBond = (cid) => { const c = pgd.chess(cid); return !!(c && Array.isArray(c.bonds) && c.bonds.includes(bs.bond)); };
for (let i = 0; i < count; i++) {
const id = m.pool.roll(m.rngMeta, { maxTier: Math.max(1, ps.shop.level), filter: (cid) => { const c = gd.chess(cid); return !!(c && Array.isArray(c.bonds) && c.bonds.includes(bs.bond)); } })
|| m.pool.roll(m.rngMeta, { maxTier: 6, filter: (cid) => { const c = gd.chess(cid); return !!(c && Array.isArray(c.bonds) && c.bonds.includes(bs.bond)); } });
const extra = typeof ps.diyStockEntries === 'function' ? ps.diyStockEntries() : null;
const id = m.pool.roll(m.rngMeta, { maxTier: Math.max(1, ps.shop.level), filter: hasBond, extra })
|| m.pool.roll(m.rngMeta, { maxTier: 6, filter: hasBond, extra });
if (id) ps.acquireChess(id, { source: 'choice' });
}
handled = true;