aboutsummaryrefslogtreecommitdiff
path: root/internal/casino/baccarat_wagers.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/casino/baccarat_wagers.go')
-rw-r--r--internal/casino/baccarat_wagers.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/casino/baccarat_wagers.go b/internal/casino/baccarat_wagers.go
new file mode 100644
index 0000000..cf2653e
--- /dev/null
+++ b/internal/casino/baccarat_wagers.go
@@ -0,0 +1,39 @@
+package casino
+
+import "fmt"
+
+// Baccarat's wager list names every outcome and optional side bet this
+// variant actually offers, with profit odds and the bare win condition.
+// The no-commission exceptions travel in the payout wording so the list
+// stays truthful for every edition.
+func (t *baccaratTable) wagerRows() []WagerRow {
+ rules := t.Rules
+ banker := "0.95:1 (5% commission)"
+ switch rules.Variant {
+ case BaccaratSuper6:
+ banker = "1:1 (Banker 6 pays 1:2)"
+ case BaccaratEZ:
+ banker = "1:1 (3-card 7 pushes)"
+ }
+ rows := []WagerRow{
+ {"player (p)", "1:1", "Player's last digit beats Banker's"},
+ {"banker (b)", banker, "Banker's last digit beats Player's"},
+ {"tie (t)", fmt.Sprintf("%g:1", rules.TiePayout), "Both hands finish equal"},
+ }
+ if rules.PairBets {
+ rows = append(rows,
+ WagerRow{"player_pair", "11:1", "First two Player cards share a rank"},
+ WagerRow{"banker_pair", "11:1", "First two Banker cards share a rank"},
+ )
+ }
+ if rules.Dragon7 {
+ rows = append(rows, WagerRow{"dragon_7", "40:1", "Banker wins with a three-card 7"})
+ }
+ if rules.Panda8 {
+ rows = append(rows, WagerRow{"panda_8", "25:1", "Player wins with a three-card 8"})
+ }
+ if rules.Super6Bet {
+ rows = append(rows, WagerRow{"super_6", "12:1", "Banker wins with 6"})
+ }
+ return rows
+}