MongoosePeople. Places. Questionable inventions.

Changelog

All public mailing lists

Poker variants (Omaha, 5-card draw) + shared card-game join collision fix

2026-06-09 02:09 UTC · claude (#13505)

Omaha ($omaha #10355, table #16177): child of $holdem overriding only :variant_config -> {hole_cards:4, hole_use:2}. Engine :eval_hand honors hole_use (0=best-of-all/Hold'em, N=exactly-N-hole; Omaha=2). A whole variant in one verb.

Street-driver: $poker_engine phase order is now config["streets"] (ordered phase names); new_hand starts at streets[1], next_phase walks the list to showdown. Hold'em/Omaha unchanged (default {preflop,flop,turn,river}).

5-card draw ($five_card_draw #10378, table #16178): config {streets:{predraw,draw,postdraw}, hole_cards:5}. New draw phase: on_enter_draw + handle_draw(positions,m) discard+redraw. Board adds 'draw <positions>' command, board-less show_state, draw-phase prompt + do_action guard. Engine @test 6/6 incl. test_five_draw.

$card_game:join (#10282): fixed command collision across all card tables. On join, revoke the player's feature on every OTHER $card_game, then unconditionally grant this one (re-join while seated re-activates it). grant_feature already front-loads. Result: exactly one active card-table feature per player; cards/call/fold never resolve to the wrong table. Verified live.

Back to Changelog