aboutsummaryrefslogtreecommitdiff
path: root/internal/casino/craps_variants.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-30 17:49:28 -0400
committerhistoria <[not public]>2026-09-30 17:49:28 -0400
commit2317022c16b520dd5272facfd5092a4c58cac44b (patch)
treecc7501ecfb106e462457b2ba3489e7ce14d64c5a /internal/casino/craps_variants.go
parent39ad552cb5f48c288e1d7a62e80ceb180882eae0 (diff)
downloadthehouseoficarus-2317022c16b520dd5272facfd5092a4c58cac44b.tar.gz
fix: simplified simplified craps, removed unnecessary commands and instructions
Diffstat (limited to 'internal/casino/craps_variants.go')
-rw-r--r--internal/casino/craps_variants.go27
1 files changed, 24 insertions, 3 deletions
diff --git a/internal/casino/craps_variants.go b/internal/casino/craps_variants.go
index e64fd0f..a3c078f 100644
--- a/internal/casino/craps_variants.go
+++ b/internal/casino/craps_variants.go
@@ -1,6 +1,9 @@
package casino
-import "fmt"
+import (
+ "fmt"
+ "strings"
+)
// Variants are explicit house editions; regional games with the same names
// need not use these rules. Random sources never affect wallet/queue handling.
@@ -169,7 +172,7 @@ func (c CrapsConfig) variantRulesText() string {
rules := ""
switch c.variant() {
case "simplified":
- rules = "Pass only, one roll of two dice. Net payouts: 2 pays 3:1; 3/4 pay 1:1; 10/11 pay 2:1; 12 pays 5:1. Totals 5/6/7/8/9 lose. Winning bets also return their stake. No point, odds, come, place, side bets or multi-roll wagers. House edge: 1/36 (approximately 2.78%). A loss passes the dice."
+ rules = "Pass only, one roll of two dice. Payouts: 2 pays 3:1; 3/4 pay 1:1; 10/11 pay 2:1; 12 pays 5:1. Totals 5/6/7/8/9 lose. Winning bets also return their stake. No point, odds, come, place, side bets or multi-roll wagers. The dice roll automatically 3 seconds after the first bet; there is no manual roll. House edge: 1/36 (approximately 2.78%). A loss passes the dice."
case "high_point":
rules = "Pass only, 1:1. Come-out 2/3 roll again, 11/12 win; 4-10 establish a point. The very next roll wins only if HIGHER than the point; equal/lower loses. Loss passes the dice."
case "die_rich":
@@ -188,5 +191,23 @@ func (c CrapsConfig) variantRulesText() string {
if c.variant() == "new_york" {
rules += "\nPass come-out 7/11 wins, 2/3/12 loses; 4/5/6/8/9/10 establish a point. Make it before 7 to win, all 1:1. Don't pass is opposite, except come-out 12 pushes. Line bets only on come-out. Making a point retains the shooter; seven-out rotates."
}
- return fmt.Sprintf("%s — house rules\n%s\nBet: bet <amount> on pass; table rules is authoritative for this edition.\nFree odds: %d (0 = 3-4-5x on ordinary points, don't 6x laid). No odds on Simplified, High Point or Die Rich.\nEach wager obeys table limits and exact payout units. Wins return stake and remove the bet.\nPass/come contracts cannot be removed; optional bets/odds can: unbet <target> / unbet all.\nSolo roll anytime; multiplayer waits 10 seconds, then dealer rolls after 60 seconds.\nBets stay open until the roll. autoroll repeats every 3 seconds, respecting the betting window.\nstop cancels autoroll; manual stop/sitout waits for live bets. Disconnect forfeits; shutdown refunds.", c.title(), rules, c.Odds)
+ cadence := "Solo roll anytime; multiplayer waits 10 seconds, then dealer rolls after 60 seconds."
+ autoroll := "Bets stay open until the roll. autoroll repeats every 3 seconds, respecting the betting window."
+ betLine := "Bet: bet <amount> on pass; table rules is authoritative for this edition."
+ stopLine := "stop cancels autoroll; manual stop/sitout waits for live bets."
+ if c.variant() == "simplified" {
+ betLine = "Bet: bet <amount> — always on pass; bare bet rebets your last wager."
+ cadence = "The dice roll automatically 3 seconds after the first bet."
+ autoroll = ""
+ stopLine = "stop/sitout waits for live bets."
+ }
+ lines := []string{c.title() + " — house rules", rules, betLine,
+ fmt.Sprintf("Free odds: %d (0 = 3-4-5x on ordinary points, don't 6x laid). No odds on Simplified, High Point or Die Rich.", c.Odds),
+ "Each wager obeys table limits and exact payout units. Wins return stake and remove the bet.",
+ "Pass/come contracts cannot be removed; optional bets/odds can: unbet <target> / unbet all.",
+ cadence, stopLine + " Disconnect forfeits; shutdown refunds."}
+ if autoroll != "" {
+ lines = append(lines[:7], append([]string{autoroll}, lines[7:]...)...)
+ }
+ return strings.Join(lines, "\n")
}