From 9666676766bf21364f4fc4d0d1d336e72f2a91b4 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 6 Oct 2026 12:57:23 -0400 Subject: refactor: split casino.go, dedup helpers, remove audit docs --- internal/casino/blackjack.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'internal/casino/blackjack.go') diff --git a/internal/casino/blackjack.go b/internal/casino/blackjack.go index b5beb1e..83c183f 100644 --- a/internal/casino/blackjack.go +++ b/internal/casino/blackjack.go @@ -187,6 +187,9 @@ func (t *blackjackTable) bet(name, spot string, amount int, wallet Wallet) []Eve if amount < t.Config.MinBet || amount > t.Config.MaxBet { return []Event{t.private(name, fmt.Sprintf("Blackjack bets must be %s.", betRangeText(t.Config.MinBet, t.Config.MaxBet)))} } + if wallet == nil { + return []Event{t.private(name, "Wallet unavailable.")} + } wager, err := wallet.Wager(amount) if err != nil { return []Event{t.private(name, walletErrorMessage(err))} @@ -244,6 +247,7 @@ func (t *blackjackTable) tick() []Event { if active == nil { // Unreachable while mid-round leaves are blocked; keep the game moving. t.activePlayer++ + t.activeHand = 0 return t.finishHand() } // A lone bettor has no time limit at all. With two or more bettors @@ -581,10 +585,12 @@ func (t *blackjackTable) turnMenuLocked(name string) Event { e := t.private(name, "Your turn.") e.Color = "casino_menu" deadline := t.timer.remaining() + heading := fmt.Sprintf("Your turn | %d ticks remaining", deadline) if p.Connected && t.bettorCount() <= 1 { - deadline = t.ceiling.remaining() + // A lone bettor's clock never ticks, so a countdown would be frozen. + heading = "Your turn | no time limit" } - e.Menu = &MenuView{Heading: fmt.Sprintf("Your turn | %d ticks remaining", deadline), Commands: withTableHints(blackjackActionCommands(actions), nil)} + e.Menu = &MenuView{Heading: heading, Commands: withTableHints(blackjackActionCommands(actions), nil)} for i := range e.Menu.Commands { c := &e.Menu.Commands[i] if c.Command == "double" || c.Command == "split" { @@ -693,7 +699,7 @@ func (t *blackjackTable) settle() []Event { if !p.HasBet { continue } - needsBalance := p.LeaveAfter || p.SitOutAfter || !p.Connected + needsBalance := p.SettlementBalanceNeeded(false) lines := make([]settlementLine, 0, len(p.hands)+1) for i, hand := range p.hands { result, payout, settleErr := settleHand(hand, dealerTotal, dealerBlackjack, t.Rules) -- cgit v1.2.3