The weapon licence, the peer line, and the steward gets his vest back

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-30 15:52:51 +02:00
1 parent 7e2649c888
commit 7d39032907
40 files changed
+62 -24

No files matched your search

+4 -4
View File
@@ -913,11 +913,11 @@ function spendSlot(i) {
// (capped per type at TUNE.wCap) — old stock is kept, so you can bank a bomb for the horde
// instead of spending it now. G.weapon picks which tin the next serve throws.
const TINS = ['bomb', 'triple', 'fire', 'gun']; // the duel ladder, in the order it hands them out
// THE TIN TIERS (the leagues): the league deepens the pot the duel pays from — a barrel weapon
// joins the ladder when the RUN unlocks it (as ever) OR when the LEAGUE says it is yours
// (config.TIN_LEAGUE). Pure and exported so the suite can pin the pot.
// THE WEAPON LICENCE (the leagues): the league licenses a weapon, the run's `from` gate paces
// it — BOTH must hold (config.TIN_LEAGUE; barrels apply the same licence in pickBarrelWeapon).
// Pure and exported so the suite can pin the pot.
export const tinLadder = () => [...TINS, ...Object.keys(BARREL_WEAPONS).filter(w =>
G.runGames >= BARREL_WEAPONS[w].from || prof.lg >= (TIN_LEAGUE[w] || 99))];
G.runGames >= BARREL_WEAPONS[w].from && prof.lg >= (TIN_LEAGUE[w] || 0))];
export function deliverTin() {
// WALK the ladder to the next rung you have room for, rather than cycling blindly onto one that
// is already at wCap. Blind cycling meant `grantWeapon` clamped the top-up to a no-op and a won