hanabi: purpose-built five-seat table, and layout fitted to a real one #6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "hanabi/table-save"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Layout, measured instead of guessed
The first live run put every hand at radius ~10.4 — through the Poker table chip ring and most of the way to the middle, crowding the space the fireworks need.
handPull0.60 → 0.78, slot step 2.6 → 2.45, and the freed middle now holds the fireworks row and discard pile.!hanabi wheredumps the geometry the script is working from, because none of it can be checked outside the client and guessing twice is worse than measuring once. It reported the seat ring at radius 17.4.A generated five-seat table
saves/Hanabi.jsonis five hand zones 72° apart, the two scripts, and nothing else — no deck, no cards, nothing draggable. Global spawns every card at deal time, and in a game where seeing your own hand ruins it, fewer loose objects is strictly better.Generated rather than assembled in the client so the seat geometry agrees with
LAYOUTby construction. A hand-placed zone stops agreeing the first time anyone nudges it.Five seats, not eight, because eight was the crowding: 45° apart leaves 10.7 of arc against a 12.0 five-card hand, so neighbouring hands overlap. At 72° there is 17.1. Hanabi caps at five players, so the extra seats bought nothing.
Seat colours match TTS own fixed colour order, since
getSeatedPlayers()returns that order and turn order comes straight from it. Swap in Orange or Teal and play silently hops across the table instead of going around it.The clearance that matters
Cards land at radius 13.57; the hand zone inner face is at 14.67. They sit 1.09 outside the zone. Inside it, TTS adopts them into the hand and takes over their ordering — and slot order is exactly what a clue refers to, so that would quietly break the one thing the layout exists to protect.
Safety
Save scanned before committing per the root README: no local paths, no credentials, empty nicknames and descriptions, only URL is the Forgejo raw art endpoint.
make check-normalizedfinally has something real to check, and passes.