Skip to main content

F014 — Multi-stage Betting

Business Rule

Texas HedgeEm supports up to four betting windows, each corresponding to a game stage. The operator configures which stages are active at installation time. Available betting stages: There is no betting window at the River — betting always closes before the final card is dealt. Default configuration: POST-FLOP only (single betting stage). The operator can enable any combination of the four stages.

Source: Game Concept Document

“In its default configuration there is only one betting stage (POST-FLOP) but the operator can choose to enable other betting stages: ANTE-BET, PRE-FLOP, POST-FLOP, and TURN.”
“The configuration changes the gameplay experience to suit the target audience.”

Current Implementation vs Design Doc

The TypeScript standalone client currently implements three betting stages (PRE-FLOP / POST-FLOP / TURN, i.e. hole/flop/turn). This is intentional for the reference implementation — it showcases the full multi-stage betting experience. The POST-FLOP-only default from the design doc is for the simpler/faster operator configuration. The JavaScript reference client at hedgeem.qeetoto.com should be audited to confirm which stages are active.

Design Detail

Per-stage bet display

When a player has placed bets across multiple stages on the same hand, each stage bet is shown as a separate labelled row below the chip:
The odds shown per row are the locked odds at the time the bet was placed (recordedOdds), not the current offered odds. The current offered odds are shown separately above the hand panel as xN.N. Implementation: GDK player.stages[] array — one entry per committed bet, each { bet: pence, multiplier: recordedOdds }. The game renders one labelled row per entry. A single stages entry with the accumulated total is incorrect — it collapses all stage rows into one and shows only the latest odds. Cancel behaviour: Only uncommitted pending chips (placed in the UI but not yet POSTed to /bet) should be cancelled. Prior stage bets are locked and must not be affected by a cancel action at a later stage.

Per-stage bet accumulation

Each bet is recorded with its stage at placement:
Bets from all active stages accumulate. At river, only the winning hand’s bets across all stages are paid (F015).

Ante-Bet stage

ANTE-BET (before hole cards) is not implemented in the current TS or JS clients. When implemented:
  • No cards visible
  • Odds would be equal for all hands (pure speculation, no information)
  • dealStatus = -1 — betting window added before advance() to hole

Operator configuration scope

Configuring betting stages is an installation-time setting (F032), not a per-game or per-player option.

JavaScript Reference

JS Source: Audit required to confirm which stages are active in the live JS client at hedgeem.qeetoto.com.

TypeScript Implementation

Current status: Three betting stages active (hole/flop/turn = PRE-FLOP/POST-FLOP/TURN). Stage is enforced in GameEngine.placeBet():
ANTE-BET (dealStatus = -1) is not currently enabled.

Acceptance Criteria

Version Parity

  • F004 — Game Stages (stage definitions and transitions)
  • F011 — Bet Placement (per-stage mechanics)
  • F015 — Payout Calculation (bets from all stages resolved)
  • F032 — RTP Config (operator stage configuration)