aboutsummaryrefslogtreecommitdiff
path: root/internal/casino/baccarat.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-05 16:31:22 -0400
committerhistoria <[not public]>2026-09-05 16:31:22 -0400
commitf4ea40c4b3589104dfaced3481ba19c5735889ae (patch)
tree66ead13206e52a65e64d6ba5d1576b63954682e9 /internal/casino/baccarat.go
parent9a716a7d2ce514f452b425caedc1a9a15cde09f0 (diff)
downloadthehouseoficarus-main.tar.gz
fix: max bet no longer listed numerically, non-bettors can leave mid-roundHEADmain
Diffstat (limited to 'internal/casino/baccarat.go')
-rw-r--r--internal/casino/baccarat.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/internal/casino/baccarat.go b/internal/casino/baccarat.go
index 6a72caa..800b5e6 100644
--- a/internal/casino/baccarat.go
+++ b/internal/casino/baccarat.go
@@ -86,10 +86,13 @@ func (t *baccaratTable) join(name string) []Event {
func (t *baccaratTable) leave(name string) []Event {
t.mu.Lock()
defer t.mu.Unlock()
- if !t.players.has(name) {
+ p := t.players.get(name)
+ if p == nil {
return nil
}
- if t.phase != baccaratWaiting {
+ // A wager is committed for the round in flight; everyone else may stand
+ // up whenever they like.
+ if p.HasBet {
return []Event{t.private(name, "You're in the middle of a baccarat round!")}
}
t.players.remove(name)
@@ -120,7 +123,7 @@ func (t *baccaratTable) bet(name, spot string, amount int, wallet Wallet) []Even
return []Event{t.private(name, "You have already bet this round.")}
}
if amount < t.Config.MinBet || amount > t.Config.MaxBet {
- return []Event{t.private(name, fmt.Sprintf("Baccarat bets must be between %d and %d.", t.Config.MinBet, t.Config.MaxBet))}
+ return []Event{t.private(name, fmt.Sprintf("Baccarat bets must be %s.", betRangeText(t.Config.MinBet, t.Config.MaxBet)))}
}
wager, ok := wallet.Wager(amount)
if !ok {