commit 524d07dfa0c251fdada838a2e574e30bbabf5dad
parent ef741127468cb7d866c31f0d938cf7e1c8ebfa45
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 15 Dec 2023 22:52:11 -0500
cap max rake in relation to big blind
Diffstat:
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -906,7 +906,7 @@ END:
winners := g.Ongoing.computeWinners()
mainPot := g.Ongoing.getMainPot()
- playersGain, rake := processPot(winners, mainPot, collectRake)
+ playersGain, rake := processPot(winners, mainPot, g.PokerTableMinBet, collectRake)
nbPlayersGain := len(playersGain)
tx := db.Begin()
@@ -974,9 +974,8 @@ type PlayerGain struct {
}
const rakePct = 0.07
-const maxRake = 3000
-func processPot(winners []GameResult, mainPot database.PokerChip, collectRake bool) (res []PlayerGain, rake database.PokerChip) {
+func processPot(winners []GameResult, mainPot, pokerTableMinBet database.PokerChip, collectRake bool) (res []PlayerGain, rake database.PokerChip) {
newPlayerGain := func(player *PokerPlayer, gain database.PokerChip, groupIdx int, handStr string) PlayerGain {
return PlayerGain{Player: player, Gain: gain, Group: groupIdx, HandStr: handStr}
}
@@ -987,6 +986,7 @@ func processPot(winners []GameResult, mainPot database.PokerChip, collectRake bo
}
if collectRake {
+ maxRake := pokerTableMinBet * 15
rake = database.PokerChip(rakePct * float64(mainPot))
rake = utils.MinInt(rake, maxRake) // Max rake
mainPot -= rake
diff --git a/pkg/web/handlers/poker/poker_test.go b/pkg/web/handlers/poker/poker_test.go
@@ -33,7 +33,7 @@ func Test_processPot(t *testing.T) {
{1, []*PokerPlayer{p2, p4, p1, p3}},
}
sortGameResults(arr)
- res = processPot(arr, 1000)
+ res, _ = processPot(arr, 1000, 20, true)
assert.Equal(t, 250, res[0].Gain)
assert.Equal(t, 250, res[1].Gain)
assert.Equal(t, 250, res[2].Gain)
@@ -47,7 +47,7 @@ func Test_processPot(t *testing.T) {
{1, []*PokerPlayer{p2, p4, p1, p3}},
}
sortGameResults(arr)
- res = processPot(arr, 1000)
+ res, _ = processPot(arr, 1000, 20, true)
assert.Equal(t, 40, res[0].Gain)
assert.Equal(t, 70, res[1].Gain)
assert.Equal(t, 445, res[2].Gain)
@@ -60,7 +60,7 @@ func Test_processPot(t *testing.T) {
{2, []*PokerPlayer{p1}},
}
sortGameResults(arr)
- res = processPot(arr, 1000)
+ res, _ = processPot(arr, 1000, 20, true)
assert.Equal(t, 1, len(res))
assert.Equal(t, "p2", res[0].Player.Username)
assert.Equal(t, 1000, res[0].Gain)
@@ -75,7 +75,7 @@ func Test_processPot(t *testing.T) {
{2, []*PokerPlayer{p4}},
}
sortGameResults(arr)
- res = processPot(arr, 23)
+ res, _ = processPot(arr, 23, 20, true)
assert.Equal(t, 3, len(res))
assert.Equal(t, 8, res[0].Gain)
assert.Equal(t, 8, res[1].Gain)
@@ -88,7 +88,7 @@ func Test_processPot(t *testing.T) {
{2, []*PokerPlayer{p1}},
}
sortGameResults(arr)
- res = processPot(arr, 1560)
+ res, _ = processPot(arr, 1560, 20, true)
assert.Equal(t, 2, len(res))
assert.Equal(t, 1300, res[0].Gain)
assert.Equal(t, 260, res[1].Gain)