diff --git a/backend/decks/classic.go b/backend/decks/classic.go index 353d1b7..bddc9ed 100644 --- a/backend/decks/classic.go +++ b/backend/decks/classic.go @@ -44,6 +44,14 @@ func (deck *Classic) Init(room *types.Room) { } utils.ShuffleSlice(&cards) deck.CardsRemaining = cards + + deck.room.PlayersMutex.Lock() + defer deck.room.PlayersMutex.Unlock() + for _, player := range deck.room.Players { + player.Mutex.Lock() + defer player.Mutex.Unlock() + deck.drawMany(player, 7) + } } func (deck *Classic) SetRoom(room *types.Room) { @@ -76,6 +84,12 @@ func (deck *Classic) drawCard(player *types.Player) types.Card { return card } +func (deck *Classic) drawMany(player *types.Player, cards int) { + for i := 0; i < cards; i++ { + deck.drawCard(player) + } +} + func (deck *Classic) getActivePlayer() int { return utils.Mod(deck.ActivePlayer, len(deck.room.Players)) }