commit 70bfa60e031daed0dbe7f242a718921818e90904
parent 8cac9623e4bcffd0c884f78a720f4e4c8a4048fb
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 18 Dec 2023 06:01:41 -0500
fix rake
Diffstat:
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -1073,7 +1073,7 @@ END:
winners := ongoing.computeWinners()
mainPot := ongoing.getMainPot()
- playersGain, rake := processPot(winners, mainPot, bigBlindBet, collectRake)
+ playersGain, rake := processPot(winners, mainPot, bigBlindBet, collectRake, len(ongoing.Players))
winnersStr, winnerHand := applyGains(g, playersGain, mainPot, rake)
ongoing.setMainPot(0)
@@ -1178,9 +1178,7 @@ type PlayerGain struct {
HandStr string
}
-const rakePct = 0.045
-
-func processPot(winners []GameResult, mainPot, pokerTableMinBet database.PokerChip, collectRake bool) (res []PlayerGain, rake database.PokerChip) {
+func processPot(winners []GameResult, mainPot, pokerTableMinBet database.PokerChip, collectRake bool, nbPlayers int) (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}
}
@@ -1191,7 +1189,31 @@ func processPot(winners []GameResult, mainPot, pokerTableMinBet database.PokerCh
}
if collectRake {
+ // https://www.pokerstars.com/poker/room/rake
maxRake := pokerTableMinBet * 15
+ rakePct := 0.045
+ if pokerTableMinBet == 3 {
+ rakePct = 0.035
+ maxRake = 178
+ } else if pokerTableMinBet == 20 {
+ rakePct = 0.0415
+ if nbPlayers == 2 {
+ maxRake = 297
+ } else if nbPlayers == 3 || nbPlayers == 4 {
+ maxRake = 297
+ } else if nbPlayers > 4 {
+ maxRake = 595
+ }
+ } else if pokerTableMinBet == 200 {
+ rakePct = 0.05
+ if nbPlayers == 2 {
+ maxRake = 446
+ } else if nbPlayers == 3 || nbPlayers == 4 {
+ maxRake = 446
+ } else if nbPlayers > 4 {
+ maxRake = 1190
+ }
+ }
rake = database.PokerChip(math.RoundToEven(rakePct * float64(mainPot)))
rake = utils.MinInt(rake, maxRake) // Max rake
mainPot -= rake