From d762f8e1360cf38b8e11e69083c2dad59ec7130e Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Thu, 1 Oct 2026 16:26:11 -0400 Subject: fix: trim extra info from games, A2345 support in pai gow, remove bet timers for single player games --- dev_guide/pai_gow.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'dev_guide/pai_gow.md') diff --git a/dev_guide/pai_gow.md b/dev_guide/pai_gow.md index 9d26871..dd4cd7d 100644 --- a/dev_guide/pai_gow.md +++ b/dev_guide/pai_gow.md @@ -8,11 +8,30 @@ settlement and the Joker art. ## Hand evaluation The Joker is partially wild: an ace, or any missing card completing a -straight, flush or straight flush. Five aces beats a royal flush. A2345 -is the second-highest straight (and straight flush), below TJQKA but above -9TJQK. Low hands recognize only pairs and high cards. Suits do not break -ties. Copies lose to the dealer. The high hand must strictly outrank the -low hand. +straight, flush or straight flush. Five aces beats a royal flush. A2345 is +the second-highest straight (and straight flush), below TJQKA but above +9TJQK, by default. `PaiGowConfig.A2345High()` reads the optional +`a2345_second_highest` field (default true); the evaluator is threaded +through the `...Rules` variants (`pgEvaluateRules`, `pgHouseRules`, +`pgFortuneRules`, `pgBestRules`, `pgDealerPushRules`, +`pgMainResultRules`, `pgPushAceClassRules`) so a table can demote the wheel +to the lowest straight without changing the default wrappers the tests use. +Low hands recognize only pairs and high cards. Suits do not break ties. +Copies lose to the dealer. The high hand must strictly outrank the low hand. + +## Betting flow + +Side bets (`fortune`, and `pushace` on Face Up) are placed first; the main +wager commits the round. The main bet deals immediately when every active +(connected) player has one, and a lone bettor is dealt at once, so a single +seat never waits on a timer. With two or more active players the shared +betting window (`betting_ticks`) opens and `finishBettingLocked` deals when +it expires if any main wager is live, refunding side bets on seats that +never placed one. `unbet main|fortune|pushace|all` returns an undealt stake +through `PayCredits`, and `leave` before the deal refunds the departing +seat and re-checks `allBetLocked` so the remaining bettors can be dealt. +The Push Ace High cap (half the main wager) is enforced when the main wager +lands, because side bets are already down by then. ## House way -- cgit v1.2.3