feedback5 CB1: 佩佩's special refresh is the next manual refresh at its usual price, no free refresh comes with it (community report 「佩佩策略的特殊刷新也是要花钱的,不是免费」, item 20)
博学多通 "升级调度中心至2、4和6级后,获得1次特殊刷新:此次刷新出现的干员优先为<萨尔贡>干员" names no 免费 (德克萨斯's trait says 「获得1次免费刷新」 for a free one); bands/meta.js read the blackboard's `price` 0 as a free refresh and granted one at each of those level-ups (measured: level 2 → 1 free refresh, the special refresh cost 0, the next 1). Now the level-up only marks the next manual refresh special: it costs the refresh price (unless another free refresh pays it) and fills the chess slots with <萨尔贡> first as before. [ASSUMED] `cnt` / `price` 0 change nothing. Test: test/content/bands.test.js (佩佩, fails on the parent). Golden unchanged (no corpus match levels a 佩佩 shop).
This commit is contained in:
1 parent
ebbbfe70ef
commit
96794c5cc7
2 files changed
+9
-5
No files matched your search
@@ -12,7 +12,8 @@
|
||||
// give_coin_in_round {round,coin} 老鲤 income of round `round` = coin (R1/R2 0, R3 15)
|
||||
// prep_start_gain_chess_from_pool_in_round {round} 老鲤 round start of `round`: 1 chess of pool
|
||||
// band_coin_cost_gain_random_char_by_shop_level 绮良 every coin_cnt funds spent → count random chess ≤ shop level
|
||||
// up_shop_next_refresh_must_present_bond_char 佩佩 level-up to a level of lvlist → +1 free refresh (price 0) that prefers <bond>
|
||||
// up_shop_next_refresh_must_present_bond_char 佩佩 level-up to a level of lvlist → the next manual refresh (its usual
|
||||
// price) prefers <bond>
|
||||
// gain_bond_char_per_round {round,preround,bond} 哈洛德 rounds round, round+preround, …: a <bond> chess (≤ shop level, else any tier)
|
||||
// first_buy_in_round_char_price_change {price,bond} 休露丝 first <bond> chess of the round costs `price` (bought in the
|
||||
// shop: onBuy — a free pick / grant never uses it up)
|
||||
@@ -184,12 +185,15 @@ K.band_coin_cost_gain_random_char_by_shop_level = (ps) => ({
|
||||
},
|
||||
});
|
||||
|
||||
// 佩佩 博学多通 "升级调度中心至2、4和6级后,获得1次特殊刷新:此次刷新出现的干员优先为<萨尔贡>干员": the special refresh is the
|
||||
// player's next manual refresh, paid as usual — the text gives no 免费 (德克萨斯's trait says 「获得1次免费刷新」 for a free
|
||||
// one), and the community report of 2026-10-06 「佩佩策略的特殊刷新也是要花钱的,不是免费」. Until 0.2.0 a free refresh came
|
||||
// with it (blackboard `price` 0 read as its price) [ASSUMED: `cnt` / `price` 0 change nothing].
|
||||
K.up_shop_next_refresh_must_present_bond_char = (ps) => ({
|
||||
onLevelUp(ctx, ev) {
|
||||
const p = ps[0];
|
||||
if (!list(p.lvlist).map(Number).includes(ev.level)) return;
|
||||
ctx.incCounter('band:pepe:special', 1);
|
||||
if (int(p.price, 0) === 0) ctx.grantFreeRefresh(1);
|
||||
},
|
||||
onRefresh(ctx) {
|
||||
if (ctx.counter('band:pepe:special') <= 0) return;
|
||||
|
||||
@@ -223,16 +223,16 @@ test('绮良 通关奖励: every 20 funds spent ⇒ 1 random operator of tier
|
||||
cover('band_kirara');
|
||||
});
|
||||
|
||||
test('佩佩 博学多通: upgrading to 2 / 4 / 6 gives 1 special (free) refresh whose operators are <萨尔贡> first', () => {
|
||||
test('佩佩 博学多通: upgrading to 2 / 4 / 6 makes the next refresh special (paid as usual) — its operators are <萨尔贡> first', () => {
|
||||
const seed = seedWithBond('sargonShip', 2, 2);
|
||||
const { m, ps } = setup({ band: 'band_pepe', seed });
|
||||
ps.shop.upgradePrice = 0;
|
||||
assert.deepEqual(m.handle('p_0', { t: 'g.levelUp' }), OK);
|
||||
assert.equal(ps.shop.level, 2);
|
||||
assert.equal(ps.shop.freeRefreshes, 1);
|
||||
assert.equal(ps.shop.freeRefreshes, 0, 'no free refresh comes with it (community report of 2026-10-06)');
|
||||
const f0 = ps.funds;
|
||||
assert.deepEqual(m.handle('p_0', { t: 'g.refresh' }), OK);
|
||||
assert.equal(ps.funds, f0, 'free');
|
||||
assert.equal(ps.funds, f0 - m.gd.refreshPrice, 'the usual refresh price');
|
||||
const chess = ps.shop.slots.filter((sl) => sl && sl.kind === 'chess');
|
||||
assert.ok(chess.length >= 3 && chess.every((sl) => DATA.chess[sl.id].bonds.includes('sargonShip')), 'all 萨尔贡');
|
||||
assert.equal(ps.counters['band:pepe:special'], 0, 'consumed');
|
||||
|
||||
Reference in new issue
Block a user