aboutsummaryrefslogtreecommitdiff
path: root/building_guide/roulette.md
diff options
context:
space:
mode:
Diffstat (limited to 'building_guide/roulette.md')
-rw-r--r--building_guide/roulette.md23
1 files changed, 22 insertions, 1 deletions
diff --git a/building_guide/roulette.md b/building_guide/roulette.md
index 205e044..ac977a6 100644
--- a/building_guide/roulette.md
+++ b/building_guide/roulette.md
@@ -23,7 +23,28 @@ casino_tables:
European 37-pocket wheel is used. Spin ticks default to 3; betting ticks use
the shared default. Ticks follow the server's configured tick length.
The wheel order is authentic and the outcome is selected uniformly only when
-spinning finishes. The spinning illustration is intentionally schematic.
+spinning finishes.
+
+## Presentation
+
+Art is rendered per recipient in `internal/game/render_roulette.go`, so color
+mode and Unicode preference stay per player (the engine snapshot never embeds
+ANSI). Three views share one renderer:
+
+- **Betting board**: numbered grid with zeros in the left lane, red/black
+ pockets, and outside bets. Green background is reserved for the 0/00 cells.
+- **Spinning**: a large circular wheel with every pocket placed and colored;
+ the pocket count carries the real zero count (one green for European, two
+ for American), and a hub marks the ball.
+- **Result**: the winning pocket plus its two physical wheel neighbours at
+ playing-card size, with the ball inside the winning pocket and no
+ surrounding prose.
+
+The odds reminder (`Numbers 35:1 ...`) is not part of the ambient board. It is
+shown only by the `table` command (and `table rules`). Each table's one-line
+overview is kept short (`Label | Limits 1-10000 | n/m seated | state`) so it
+fits beside a look minimap; `writeLookSideBySide` also wraps any content line
+that would otherwise run into the map column.
Initial scope is **one wager per player per spin**, covering straight-up and
outside bets (colors, parity, high/low, dozens, columns). Multiple simultaneous