commit 884810037e028676294052f31f677bbb3f5e9661
parent aaf90291358aef5079ecc26801a9203dcdcda74e
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 11 Dec 2023 21:54:16 -0500
cleanup
Diffstat:
2 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/pkg/web/handlers/poker/events.go b/pkg/web/handlers/poker/events.go
@@ -12,7 +12,7 @@ type PokerEvent struct {
}
type GameStartedEvent struct {
- DealerIdx int
+ DealerSeatIdx int
}
type GameIsDoneEvent struct {
@@ -24,11 +24,11 @@ type ResetCardsEvent struct {
}
type PlayerBetEvent struct {
- PlayerIdx int
- Player string
- Bet int
- TotalBet int
- Cash int
+ PlayerSeatIdx int
+ Player string
+ Bet int
+ TotalBet int
+ Cash int
}
type LogEvent struct {
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -53,9 +53,9 @@ func (p *Poker) GetOrCreateGame(roomID string) *PokerGame {
g = &PokerGame{
PlayersEventCh: make(chan PlayerEvent),
Players: make([]*PokerStandingPlayer, NbPlayers),
- DealerIdx: atomic.Int32{},
+ DealerSeatIdx: atomic.Int32{},
}
- g.DealerIdx.Store(-1)
+ g.DealerSeatIdx.Store(-1)
p.games[roomID] = g
}
return g
@@ -143,7 +143,7 @@ type PokerGame struct {
Players []*PokerStandingPlayer
PlayersMtx sync.RWMutex
Ongoing *Ongoing
- DealerIdx atomic.Int32 // Dealer seat idx
+ DealerSeatIdx atomic.Int32
smallBlindIdx int
bigBlindIdx int
IsGameStarted atomic.Bool
@@ -288,7 +288,7 @@ func isRoundSettled(players []*PokerPlayer) bool {
func (g *PokerGame) incrDealerIdx() {
nbPlayers := len(g.Ongoing.Players)
- dealerSeatIdx := g.DealerIdx.Load()
+ dealerSeatIdx := g.DealerSeatIdx.Load()
var dealerPlayer *PokerPlayer
for {
dealerSeatIdx = (dealerSeatIdx + 1) % NbPlayers
@@ -297,7 +297,7 @@ func (g *PokerGame) incrDealerIdx() {
break
}
}
- g.DealerIdx.Store(dealerSeatIdx)
+ g.DealerSeatIdx.Store(dealerSeatIdx)
dealerIdx := g.Ongoing.getPlayerIdxBySeatIdx(int(dealerSeatIdx))
g.smallBlindIdx = (int(dealerIdx) + 1) % nbPlayers
g.bigBlindIdx = (int(dealerIdx) + 2) % nbPlayers
@@ -433,7 +433,7 @@ func waitPlayersActionFn(g *PokerGame, roomID string, skip, minBet int) bool {
roomTopic := "room_" + roomID
roomLogsTopic := "room_" + roomID + "_logs"
playerAlive := 0
- dealerSeatIdx := int(g.DealerIdx.Load())
+ dealerSeatIdx := int(g.DealerSeatIdx.Load())
dealerIdx := g.Ongoing.getPlayerIdxBySeatIdx(dealerSeatIdx)
playerToPlayIdx := (dealerIdx + skip) % len(g.Ongoing.Players)
lastRaisePlayerIdx := -1
@@ -556,7 +556,7 @@ OUTER:
newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s check", p.Username))
} else {
p.doBet(bet)
- PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
+ PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
logMsg := fmt.Sprintf("%s call (%d)", p.Username, bet)
if p.isAllIn() {
logMsg += " (all-in)"
@@ -572,7 +572,7 @@ OUTER:
}
minBet = p.Bet + bet
p.doBet(bet)
- PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
+ PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
logMsg := fmt.Sprintf("%s all-in (%d)", p.Username, bet)
if p.isAllIn() {
newlyAllInPlayers = append(newlyAllInPlayers, p)
@@ -596,7 +596,7 @@ OUTER:
}
minBet = p.Bet + bet
p.doBet(bet)
- PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
+ PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
logMsg := fmt.Sprintf("%s bet %d", p.Username, bet)
if p.isAllIn() {
logMsg += " (all-in)"
@@ -655,6 +655,7 @@ type Seat struct {
Left2 int
}
+// Positions of the dealer token for each seats
var dealerTokenPos = [][]int{
{125, 714},
{246, 732},
@@ -761,13 +762,13 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) {
g.Ongoing.CommunityCards = append(g.Ongoing.CommunityCards, card)
}
- PokerPubSub.Pub(roomTopic, GameStartedEvent{DealerIdx: int(g.DealerIdx.Load())})
+ PokerPubSub.Pub(roomTopic, GameStartedEvent{DealerSeatIdx: int(g.DealerSeatIdx.Load())})
newLogEvent(g, roomLogsTopic, fmt.Sprintf("-- New game --"))
p := g.Ongoing.Players[g.smallBlindIdx]
bet := SmallBlindBet
p.doBet(bet)
- PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
+ PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s small blind %d", p.Username, bet))
time.Sleep(time.Second)
@@ -775,7 +776,7 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) {
p = g.Ongoing.Players[g.bigBlindIdx]
bet = BigBlindBet
p.doBet(bet)
- PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
+ PokerPubSub.Pub(roomTopic, PlayerBetEvent{PlayerSeatIdx: p.SeatIdx, Player: p.Username, Bet: bet, TotalBet: p.Bet, Cash: p.Cash})
newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s big blind %d", p.Username, bet))
time.Sleep(time.Second)
@@ -1191,7 +1192,7 @@ func colorForCard1(name string) string {
func buildDealerTokenHtml(g *PokerGame) (html string) {
html += `<div id="dealerToken"><div class="inner"></div></div>`
if g.Ongoing != nil {
- pos := dealerTokenPos[g.DealerIdx.Load()]
+ pos := dealerTokenPos[g.DealerSeatIdx.Load()]
html += `<style>#dealerToken { top: ` + itoa(pos[0]) + `px; left: ` + itoa(pos[1]) + `px; }</style>`
}
return
@@ -1453,14 +1454,14 @@ func drawErrorMsgEvent(evt ErrorMsgEvent) string {
func drawPlayerBetEvent(evt PlayerBetEvent) (html string) {
html += `<style>`
- html += `#seat` + itoa(evt.PlayerIdx+1) + `Pot:before { content: "` + itoa(evt.TotalBet) + `"; }`
- html += `#seat` + itoa(evt.PlayerIdx+1) + `_cash:before { content: "` + itoa(evt.Cash) + `"; }`
+ html += `#seat` + itoa(evt.PlayerSeatIdx+1) + `Pot:before { content: "` + itoa(evt.TotalBet) + `"; }`
+ html += `#seat` + itoa(evt.PlayerSeatIdx+1) + `_cash:before { content: "` + itoa(evt.Cash) + `"; }`
html += `</style>`
return
}
func drawGameStartedEvent(evt GameStartedEvent) string {
- pos := dealerTokenPos[evt.DealerIdx]
+ pos := dealerTokenPos[evt.DealerSeatIdx]
return `<style>#dealerToken { top: ` + itoa(pos[0]) + `px; left: ` + itoa(pos[1]) + `px; }</style>`
}