Skip to content

bcook/blackjack: make surrender and insurance read on the felt#100

Merged
BCook98 merged 2 commits into
mainfrom
bcook/blackjack-surrender-insurance-visibility
Jul 10, 2026
Merged

bcook/blackjack: make surrender and insurance read on the felt#100
BCook98 merged 2 commits into
mainfrom
bcook/blackjack-surrender-insurance-visibility

Conversation

@BCook98

@BCook98 BCook98 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

What

Surrendering and buying insurance were nearly invisible on the felt: a surrendered hand kept showing a live-looking total, and nothing marked who had bought insurance. Now:

Surrender

  • The value row reads SURR (dim) where the total would sit, from the fold through results.
  • The settlement summary says SURR -25 instead of LOSE -25 — the odd half-stake number is explained (an odd bet's half still rounds up to the player), not mistaken for a played-out defeat.

Insurance

  • While the offer is open, every placed seat still deciding shows ins? on its value row — who's holding up the table reads at a glance, alongside the existing action-bar countdown.
  • A bought stake reads INS beside the hand total (19 INS) and stays visible through turns and results; declining shows nothing.
  • A seat that insures and then splits keeps the marker: the compact split layout re-homes INS onto the freed value row (the existing aces: 1 card note takes precedence when both apply).

Challenge is untouched — that table has neither surrender nor insurance.

Tests

Three new render tests: the SURR value row + settlement summary, the ins?INS window flow across two seats (exactly one seat tagged after one buys and one declines), and the INS tag surviving a split. go test, go vet, and lint-width clean.

🤖 Generated with Claude Code

A surrendered hand now shows SURR (dim) where its total would sit, from the
fold through results, and its settlement summary says "SURR -25" instead of
"LOSE -25" - the half-stake number explained rather than a played-out defeat.

Insurance is visible per seat on the value row: an open offer reads "ins?" on
every placed seat still deciding, a bought stake reads "INS" beside the hand
total and stays through turns and results, and a decline shows nothing. A
seat that insures and then splits keeps the marker - the compact split layout
re-homes INS onto the freed value row (the "aces: 1 card" note wins when both
apply).

Challenge is untouched: that table has neither surrender nor insurance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown

Smoke screens

Deterministic scripted screens for 00a296ba440fd85f49ba277598cf45003255aeba (what is this?)

games/bcook/blackjack-challenge — 20 screens

01-bet.seat0
01-bet.seat0

01-bet.seat1
01-bet.seat1

02-backing.seat0
02-backing.seat0

02-backing.seat1
02-backing.seat1

03-sidebet.seat0
03-sidebet.seat0

03-sidebet.seat1
03-sidebet.seat1

04-dealt.seat0
04-dealt.seat0

04-dealt.seat1
04-dealt.seat1

05-hint.seat0
05-hint.seat0

05-hint.seat1
05-hint.seat1

06-split.seat0
06-split.seat0

06-split.seat1
06-split.seat1

07-draw.seat0
07-draw.seat0

07-draw.seat1
07-draw.seat1

08-payout.seat0
08-payout.seat0

08-payout.seat1
08-payout.seat1

09-ready.seat0
09-ready.seat0

09-ready.seat1
09-ready.seat1

10-next.seat0
10-next.seat0

10-next.seat1
10-next.seat1

games/bcook/blackjack — 18 screens

01-bet.seat0
01-bet.seat0

01-bet.seat1
01-bet.seat1

02-backing.seat0
02-backing.seat0

02-backing.seat1
02-backing.seat1

03-sidebet.seat0
03-sidebet.seat0

03-sidebet.seat1
03-sidebet.seat1

04-dealt.seat0
04-dealt.seat0

04-dealt.seat1
04-dealt.seat1

05-hint.seat0
05-hint.seat0

05-hint.seat1
05-hint.seat1

06-split.seat0
06-split.seat0

06-split.seat1
06-split.seat1

07-payout.seat0
07-payout.seat0

07-payout.seat1
07-payout.seat1

08-ready.seat0
08-ready.seat0

08-ready.seat1
08-ready.seat1

09-next.seat0
09-next.seat0

09-next.seat1
09-next.seat1

…lf-only

The pairs side-bet line sits directly under its seat's own name row, which
already carries the player's character tile — so the line renders as bare
text now (betting stake and result both), and the unused centerSlotChar
helper retires. Tiles stay on the backers line, where the face identifies
OTHER players. A lost side bet is the owner's quiet news: "pairs lost"
renders only on the viewer's own seat, while wins broadcast to every viewer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@BCook98

BCook98 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

Also folded in here per feedback: the pairs side-bet line no longer carries the seat's own character tile (it sits directly under the name row, which already has one — tiles stay on the backers line where they identify other players), and a lost side bet now reads "pairs lost" only on the viewer's own seat while wins still broadcast to the table. Applies to both games; covered by TestPairsLineCarriesNoCharacterTile and TestPairsLossIsSelfOnly.

@BCook98
BCook98 merged commit 345cadf into main Jul 10, 2026
6 checks passed
@BCook98
BCook98 deleted the bcook/blackjack-surrender-insurance-visibility branch July 10, 2026 04:35
@github-actions

Copy link
Copy Markdown

shellcade could not publish this release to the arcade

The GitHub release was cut, but the arcade's re-verification refused it,
so the game will NOT go live / update until this is resolved:

bcook/blackjack — tag bcook-blackjack-v26

catalog: release "bcook-blackjack-v26": status 403: {"message":"API rate limit exceeded for 79.127.166.163. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}

bcook/blackjack-challenge — tag bcook-blackjack-challenge-v4

catalog: release "bcook-blackjack-challenge-v4": status 403: {"message":"API rate limit exceeded for 79.127.166.163. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}

See the publish run for full logs. Re-running it retries the arcade publish.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant