From 3bfe17bd07653f392868c01dadbe7857b8005425 Mon Sep 17 00:00:00 2001 From: sganggs Date: Wed, 7 Oct 2026 02:46:59 +0800 Subject: [PATCH] =?UTF-8?q?feedback5=20CB1:=20item=2020=20follow-up=20?= =?UTF-8?q?=E2=80=94=20bot-smarter's=20=E5=9D=8E=E8=AF=BA=E7=89=B9=20case?= =?UTF-8?q?=20no=20longer=20assumes=20the=20round-7=20level-up=20costs=209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seed 7's solo bot plays 佩佩 for rounds 1–6; with paid special refreshes (96794c5) it reaches level 3 a round later, so the 3 → 4 upgrade at round 7 costs 10 instead of 9 and 14 − 10 leaves 4. The test now checks what it means — after the level-up on the curve the bot spends nothing that takes it under the 5 capital — whatever that price is. No product change; golden unchanged. --- test/match/bot-smarter.test.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/match/bot-smarter.test.js b/test/match/bot-smarter.test.js index 7d243eec..533cd58e 100644 --- a/test/match/bot-smarter.test.js +++ b/test/match/bot-smarter.test.js @@ -237,11 +237,15 @@ test('坎诺特 (利滚利: leftover funds are kept, +1 at ≥ 5): with a full b assert.ok(m.gd.leftoverKeptBands.includes(ps.bandId)); ps.funds = 14; const merges = ps.stats.merges; + // the level-up on the curve is paid for first (its price depends on the rounds the run levelled at: 9 or 10 here); + // after it the bot buys / refreshes nothing that takes it under the 5 capital + const level0 = ps.shop.level, price0 = ps.shop.upgradePrice; h.run(() => m.phase === PHASE.COMBAT && m.round === 7); - // (a merge may spend the reserve; the level-up on the curve is paid for first and leaves enough here) + // (a merge may spend the reserve) if (ps.stats.merges === merges) { checked++; - assert.ok(ps.funds >= 5, `seed ${seed}: ${ps.funds} funds banked`); + const afterLevelUp = 14 - (ps.shop.level > level0 ? price0 : 0); + assert.ok(ps.funds >= Math.min(5, afterLevelUp), `seed ${seed}: ${ps.funds} funds banked (${afterLevelUp} after the level-up)`); } m.dispose(); }