games: the rake you pay, and the rake the table lifts

They are different numbers and the felt was quoting the wrong one. Every raked
pot has chips lifted off it, whoever wins — that has to stay true or the table
stops balancing. But the bots' chips are not real, so a pot a bot wins costs
you nothing, and the counter under your stack was climbing anyway while you sat
there folding.

Rake is now every chip off the table (so the chips conserve) and Paid is the
part that came out of a pot you won, which is the only part that is money and
the only part worth telling you about. A chop costs you half of it. The audit
log takes Paid too: the house's income is what it made off the player, not what
it lifted off a bot.

Claude-Session: https://claude.ai/code/session_013M5nD7PgUboJXoDcYHzpuJ
This commit is contained in:
prosolis
2026-07-14 09:11:14 -07:00
parent e6c1bd3b54
commit 903c5accdb
4 changed files with 78 additions and 16 deletions

View File

@@ -92,7 +92,7 @@ func viewHoldem(g holdem.State) holdemView {
Phase: string(g.Phase),
Stack: g.Seats[holdem.You].Stack,
BoughtIn: g.BoughtIn,
Rake: g.Rake,
Rake: g.Paid, // the part you actually paid, not the part the table lifted
Payout: g.Payout,
}
for _, p := range g.Side {
@@ -329,7 +329,9 @@ func (s *Server) persistHoldem(w http.ResponseWriter, user string, g holdem.Stat
v, ok := s.commit(w, user, finished{
Game: gameHoldem, Blob: blob,
Bet: g.BoughtIn, Payout: g.Payout, Rake: g.Rake,
// Paid, not Rake: the audit log is the house's income, and the house only
// makes money off the player. What it lifts off a bot's pot is not income.
Bet: g.BoughtIn, Payout: g.Payout, Rake: g.Paid,
Outcome: outcome, Done: done,
Seed1: seed1, Seed2: seed2, Fresh: fresh,
})