aboutsummaryrefslogtreecommitdiff
path: root/building_guide/rooms.md
diff options
context:
space:
mode:
Diffstat (limited to 'building_guide/rooms.md')
-rw-r--r--building_guide/rooms.md57
1 files changed, 47 insertions, 10 deletions
diff --git a/building_guide/rooms.md b/building_guide/rooms.md
index 7641c75..731b064 100644
--- a/building_guide/rooms.md
+++ b/building_guide/rooms.md
@@ -220,22 +220,59 @@ Mobs stop wandering while in combat. Dead mobs respawn at their home room.
### Casino Tables
-Rooms may host one or more casino tables. Players join by typing `play <game>`;
-the table ID is an internal room-local identifier and does not need to be typed.
+Rooms may host one or more multiplayer casino tables. Players join by typing
+`play <game>`; the table ID is an internal room-local identifier and does not
+need to be typed. Blackjack is the multiplayer table game; slots run as
+single-player machines (see below), and older rooms that declare slots under
+`casino_tables` are migrated to machines automatically.
+
+`max_players`, `betting_ticks`, `min_bet`, and `max_bet` use defaults when omitted.
+Game-specific rule configuration is nested alongside the table definition.
+
+Blackjack tables support sequential player turns and configurable house rules:
```yaml
casino_tables:
- - id: slots
- game: slots
- max_players: 8
+ - id: blackjack
+ game: blackjack
+ max_players: 6
betting_ticks: 20
min_bet: 1
max_bet: 1000
-```
-
-`max_players`, `betting_ticks`, `min_bet`, and `max_bet` use defaults when omitted.
-Game-specific rule configuration will be added alongside the table definition as
-each game is implemented.
+ blackjack:
+ decks: 8
+ shuffle_at: 0.25
+ blackjack_payout: 1.5
+ dealer_hit_soft_17: false
+ max_split_hands: 4
+ resplit_aces: false
+ double_after_split: true
+ double_split_blackjack: true
+ insurance_payout: 2
+ surrender: false
+ action_ticks: 20
+ split_unlike_ten_values: true
+```
+
+Blackjack supports `hit`, `stand`, `double`, `split`, `insurance`, and
+`surrender`. A player blackjack against a dealer blackjack pushes. When the
+dealer's up card is an ace, an insurance window opens before anyone plays:
+each bettor may type `insurance` to buy cover for half their base bet, and
+any other action declines. Once every bettor has decided (or the window times
+out), a dealer blackjack settles the round immediately with insurance paying
+its configured profit multiplier; otherwise play begins. Split hands can be
+configured independently for re-splitting aces and doubling, and split aces
+receive one card each with no further actions beyond a configured re-split.
+
+At a blackjack table, `bet` uses the configured minimum wager; `bet min`,
+`bet max`, and `bet <amount>` select the wager explicitly.
+
+Blackjack card art is loaded from `data/cards.yaml`. Each of the 52 rank/suit
+keys may define Unicode art for sizes 5, 7, and 9. Missing art uses the
+generated renderer. Players can choose `option card_size 1`, `5`, `7`, or `9`;
+size 1 uses Unicode playing-card symbols. ASCII mode always uses generated
+5x5 cards. `option card_style light` adds a white card background; `dark` is
+the default style.
Single-player machines use `casino_machines` and are separate from multiplayer
tables: