commit 2bce00c0697157f4712e9ffd862f67ae2f5b0a5b
parent 9eb3d81795590ee186658149bfdaa0c65b4c9755
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 11 Dec 2023 03:11:44 -0500
cleanup
Diffstat:
1 file changed, 53 insertions(+), 50 deletions(-)
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -654,6 +654,56 @@ var dealerTokenPos = [][]int{
{363, 123},
}
+func dealPlayersCards(g *PokerGame, roomTopic string, seats []Seat, idx *int) {
+ var card string
+ for cardIdx := 1; cardIdx <= NbCardsPerPlayer; cardIdx++ {
+ for _, p := range g.Ongoing.Players {
+ if p.isAllIn() {
+ continue
+ }
+ roomUserTopic := roomTopic + "_" + p.Username
+ seatData := seats[p.SeatIdx]
+ time.Sleep(time.Second)
+ if p.Folded.Load() {
+ continue
+ }
+ card = g.Ongoing.Deck[*idx]
+ *idx++
+ left := seatData.Left
+ top := seatData.Top
+ if cardIdx == 2 {
+ left = seatData.Left2
+ top = seatData.Top2
+ }
+
+ seatData1 := seats[p.SeatIdx]
+ if p.SeatIdx == 0 {
+ seatData1.Left -= 30
+ } else if p.SeatIdx == 1 {
+ seatData1.Left -= 31
+ } else if p.SeatIdx == 2 {
+ seatData1.Top -= 8
+ }
+ if cardIdx == 2 {
+ seatData1.Left += 53
+ }
+
+ evt := PokerEvent{ID: "card" + itoa(*idx), Name: "", Idx: *idx, Top: top, Left: left, Angle: seatData.Angle}
+ evt1 := PokerEvent{ID: "card" + itoa(*idx), Name: card, Idx: *idx, Top: seatData1.Top, Left: seatData1.Left, Reveal: true, Player: p.Username}
+
+ PokerPubSub.Pub(roomTopic, evt)
+ PokerPubSub.Pub(roomUserTopic, YourCardEvent{Idx: cardIdx, Name: card})
+ PokerPubSub.Pub(roomUserTopic, evt1)
+
+ p.CardsMtx.Lock()
+ p.Cards = append(p.Cards, PlayerCard{Idx: *idx, Name: card})
+ p.CardsMtx.Unlock()
+
+ g.Ongoing.AddEvent(evt, evt1)
+ }
+ }
+}
+
func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) {
roomTopic := "room_" + roomID
roomLogsTopic := "room_" + roomID + "_logs"
@@ -669,12 +719,10 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) {
{Top: 270, Left: 70, Top2: 270 + 5, Left2: 70 + 1, Angle: "10deg"},
}
- var card string
idx := 0
burnIdx := 0
burnCard := func() {
- card = g.Ongoing.Deck[idx]
idx++
evt := PokerEvent{
ID: "card" + itoa(idx),
@@ -690,7 +738,7 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) {
dealCardIdx := 0
dealCard := func() {
- card = g.Ongoing.Deck[idx]
+ card := g.Ongoing.Deck[idx]
idx++
evt := PokerEvent{
ID: "card" + itoa(idx),
@@ -725,53 +773,8 @@ func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) {
time.Sleep(time.Second)
- // Deal cards
- for cardIdx := 1; cardIdx <= NbCardsPerPlayer; cardIdx++ {
- for _, p := range g.Ongoing.Players {
- if p.isAllIn() {
- continue
- }
- roomUserTopic := roomTopic + "_" + p.Username
- seatData := seats[p.SeatIdx]
- time.Sleep(time.Second)
- if p.Folded.Load() {
- continue
- }
- card = g.Ongoing.Deck[idx]
- idx++
- left := seatData.Left
- top := seatData.Top
- if cardIdx == 2 {
- left = seatData.Left2
- top = seatData.Top2
- }
-
- seatData1 := seats[p.SeatIdx]
- if p.SeatIdx == 0 {
- seatData1.Left -= 30
- } else if p.SeatIdx == 1 {
- seatData1.Left -= 31
- } else if p.SeatIdx == 2 {
- seatData1.Top -= 8
- }
- if cardIdx == 2 {
- seatData1.Left += 53
- }
-
- evt := PokerEvent{ID: "card" + itoa(idx), Name: "", Idx: idx, Top: top, Left: left, Angle: seatData.Angle}
- evt1 := PokerEvent{ID: "card" + itoa(idx), Name: card, Idx: idx, Top: seatData1.Top, Left: seatData1.Left, Reveal: true, Player: p.Username}
-
- PokerPubSub.Pub(roomTopic, evt)
- PokerPubSub.Pub(roomUserTopic, YourCardEvent{Idx: cardIdx, Name: card})
- PokerPubSub.Pub(roomUserTopic, evt1)
-
- p.CardsMtx.Lock()
- p.Cards = append(p.Cards, PlayerCard{Idx: idx, Name: card})
- p.CardsMtx.Unlock()
-
- g.Ongoing.AddEvent(evt, evt1)
- }
- }
+ // Deal players cards
+ dealPlayersCards(g, roomTopic, seats, &idx)
// Wait for players to bet/call/check/fold...
time.Sleep(time.Second)