From 624626b9a10ae47cf7d5f6e91765570ed759bd74 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 29 Sep 2026 18:58:28 -0400 Subject: feat: better roulette racetrack graphics and payout table --- internal/casino/roulette_racetrack.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'internal/casino/roulette_racetrack.go') diff --git a/internal/casino/roulette_racetrack.go b/internal/casino/roulette_racetrack.go index 624940b..9784d9a 100644 --- a/internal/casino/roulette_racetrack.go +++ b/internal/casino/roulette_racetrack.go @@ -23,7 +23,7 @@ func (s rouletteShare) payout(stake int) (int, error) { if stake <= 0 || s.num <= 0 || s.den <= 0 { return 0, nil } - if limit := MaxCredits * s.den / s.num; stake > limit { + if limit := ((MaxCredits+1)*s.den - 1) / s.num; stake > limit { return MaxCredits, fmt.Errorf("payout overflow: %d * %d/%d exceeds %d", stake, s.num, s.den, MaxCredits) } return stake * s.num / s.den, nil @@ -96,8 +96,8 @@ func RacetrackBets() []RacetrackBetView { // The four standard single-zero call bets. Chip placements and payouts follow // the traditional layout: Voisins (9 chips), Tiers (6), Orphelins (5) and -// Zero Spiel (4). Every inside component returns 36/covered, so the combined -// wager keeps the wheel's normal house edge. +// Jeu Zero (4). Every inside component returns 36/covered, so the combined +// wager keeps the wheel's normal house edge before whole-credit rounding. var rouletteCallBets = []rouletteCallBet{ { canonical: "voisins", @@ -142,8 +142,8 @@ var rouletteCallBets = []rouletteCallBet{ }, }, { - canonical: "zerospiel", - name: "Zero Spiel", + canonical: "jeuzero", + name: "Jeu Zero", chips: 4, series: []string{"12", "35", "3", "26", "0", "32", "15"}, parts: []rouletteComponent{ @@ -171,11 +171,9 @@ var rouletteCallAliases = map[string]string{ "orphelins": "orphelins", "orphans": "orphelins", "les orphelins": "orphelins", - "zero spiel": "zerospiel", - "zerospiel": "zerospiel", - "spiel": "zerospiel", - "jeu zero": "zerospiel", - "zero game": "zerospiel", + "zero": "jeuzero", + "jeu zero": "jeuzero", + "jeuzero": "jeuzero", } // neighborsRadius is how many pockets on each side of the chosen number the -- cgit v1.2.3