mirror of
https://github.com/HexCardGames/HexDeck.git
synced 2025-09-05 03:08:39 +02:00
fix(deck-classic): automatically refill card deck
This commit is contained in:
@ -17,10 +17,7 @@ type Classic struct {
|
|||||||
|
|
||||||
var ClassicColors = []string{"red", "yellow", "blue", "green"}
|
var ClassicColors = []string{"red", "yellow", "blue", "green"}
|
||||||
|
|
||||||
func (deck *Classic) Init(room *types.Room) {
|
func (deck *Classic) fillDeck() {
|
||||||
deck.room = room
|
|
||||||
deck.DirectionReversed = false
|
|
||||||
deck.ActivePlayer = 0
|
|
||||||
cards := make([]*ClassicCard, 108)
|
cards := make([]*ClassicCard, 108)
|
||||||
offset := 0
|
offset := 0
|
||||||
for i := 0; i < 4; i++ {
|
for i := 0; i < 4; i++ {
|
||||||
@ -44,6 +41,13 @@ func (deck *Classic) Init(room *types.Room) {
|
|||||||
}
|
}
|
||||||
utils.ShuffleSlice(&cards)
|
utils.ShuffleSlice(&cards)
|
||||||
deck.CardsRemaining = cards
|
deck.CardsRemaining = cards
|
||||||
|
}
|
||||||
|
|
||||||
|
func (deck *Classic) Init(room *types.Room) {
|
||||||
|
deck.room = room
|
||||||
|
deck.DirectionReversed = false
|
||||||
|
deck.ActivePlayer = 0
|
||||||
|
deck.fillDeck()
|
||||||
|
|
||||||
deck.room.PlayersMutex.Lock()
|
deck.room.PlayersMutex.Lock()
|
||||||
defer deck.room.PlayersMutex.Unlock()
|
defer deck.room.PlayersMutex.Unlock()
|
||||||
@ -59,7 +63,10 @@ func (deck *Classic) SetRoom(room *types.Room) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (deck *Classic) IsEmpty() bool {
|
func (deck *Classic) IsEmpty() bool {
|
||||||
return len(deck.CardsRemaining) == 0
|
if len(deck.CardsRemaining) == 0 {
|
||||||
|
deck.fillDeck()
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (deck *Classic) getTopCard() *ClassicCard {
|
func (deck *Classic) getTopCard() *ClassicCard {
|
||||||
@ -143,11 +150,7 @@ func (deck *Classic) PlayCard(card types.Card) bool {
|
|||||||
amount = 4
|
amount = 4
|
||||||
}
|
}
|
||||||
for range amount {
|
for range amount {
|
||||||
card := deck.drawCard(targetPlayer)
|
deck.drawCard(targetPlayer)
|
||||||
if card == nil {
|
|
||||||
// TODO: Handle empty card deck
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if deckCard.Symbol == "action:reverse" {
|
} else if deckCard.Symbol == "action:reverse" {
|
||||||
deck.DirectionReversed = !deck.DirectionReversed
|
deck.DirectionReversed = !deck.DirectionReversed
|
||||||
|
Reference in New Issue
Block a user