feedback1 WB: bounty-half evidence stated as a trend with its counter-evidence; queued free offers counted on the pill and header
- tools/build-data.mjs bountyDraftHalf: exact faction-series counts (12 of 18 two-battle cards bring first-half enemies, 5 outside the wave tables, enemyeffect_12_4 a second-half attachment), base-HP gradient, the user's two-battle recall; counter-evidence (假想敌 named enemyInitial_*, the unread NGA R3 guide); the split marked [ASSUMED] with its flip; data unchanged - server/match/choices.js, docs/META.md, docs/DATA.md: the split marked [ASSUMED] - m.private shop.rewardOffer.queued: offers waiting behind the shown one; the header says 之后还有 N 项 and the reminder pill +N (a 定向投放 behind a promotion reward put off) - tests: corrected headers, the stale bountyTiers fixture dropped, queued checks (unit + opt-in e2e on desktop and 756x366)
This commit is contained in:
1 parent
49c0ebcf4d
commit
6e0c26af9e
14 files changed
+158
-37
No files matched your search
@@ -1485,8 +1485,8 @@ export class PlayerState {
|
||||
frozen: this.shop.frozen,
|
||||
slots,
|
||||
// `source` 'merge' = the promotion reward (晋升奖励); any other offer (a strategy, an item, a 特质) carries the
|
||||
// `label` the bar shows instead (player report #6 after 0.1.0)
|
||||
rewardOffer: offer ? { tier: offer.tier, source: offer.source === 'merge' ? 'merge' : 'special', label: offer.label || null, slots: offer.slots.map((s) => ({ kind: s.kind === 'item' ? 'item' : 'chess', id: s.id, price: s.price, sold: !!s.sold })) } : null,
|
||||
// `label` the bar shows instead; `queued` = offers waiting behind it (player report #6 after 0.1.0)
|
||||
rewardOffer: offer ? { tier: offer.tier, source: offer.source === 'merge' ? 'merge' : 'special', label: offer.label || null, queued: this.offers.length - 1, slots: offer.slots.map((s) => ({ kind: s.kind === 'item' ? 'item' : 'chess', id: s.id, price: s.price, sold: !!s.sold })) } : null,
|
||||
},
|
||||
hand: this.hand.map((p) => (p ? this.pieceView(p) : null)),
|
||||
temp: this.temp.map((p) => (p ? this.pieceView(p) : null)),
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
// them) of the draft's half (`bountyDraftHalf`, choices.json `draftHalf`; player feedback after
|
||||
// 0.1.0, report #2 — late bounty enemies in the early drafts): rounds ≤ 7 (the official wave
|
||||
// generator's first half: R3, 险境 R6) offer the "接下来两场作战" cards, R8 on (R9) the "下场作战" cards
|
||||
// (boss bounties, 特异 giants, the faction _7 / _8 cards …) and the multi-round ones (tools/build-data.mjs
|
||||
// bountyDraftHalf has the evidence); drawn uniformly (no tier window: the official late draft shows
|
||||
// boss bounties worth 1 to 6 together); the mode's inactive enemy list does not apply (PRTS
|
||||
// (boss bounties, 特异 giants, the faction _7 / _8 cards …) and the multi-round ones ([ASSUMED] beyond
|
||||
// the evidence in tools/build-data.mjs bountyDraftHalf, which also lists the counter-evidence);
|
||||
// drawn uniformly (no tier window: the official late draft shows boss bounties worth 1 to 6
|
||||
// together); the mode's inactive enemy list does not apply (PRTS
|
||||
// 卫戍协议:盟约 11/18 note "以上调整仅针对战术特训敌人,不影响悬赏决策出场"); each card carries its official
|
||||
// rich text `descRaw` (the battles in blue "下场作战" / "两场作战"); a multi-round card lasts
|
||||
// MULTI_ROUND_BOUNTY_BATTLES battles and says so (`bountyBattles` / `bountyText`: the user's call
|
||||
|
||||
Reference in new issue
Block a user