dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 2bce00c0697157f4712e9ffd862f67ae2f5b0a5b
parent 9eb3d81795590ee186658149bfdaa0c65b4c9755
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 11 Dec 2023 03:11:44 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/poker.go | 103+++++++++++++++++++++++++++++++++++++++++--------------------------------------
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)