tome_game/deck.go

58 lines
1.0 KiB
Go

package tome_game
import (
"log"
. "git.saintnet.tech/tomecraft/tome_lib"
"github.com/google/uuid"
)
func NewDeck(owner int) *Deck {
if owner != SentinalID && owner != ScourgeID {
log.Printf("need valid owner for new deck: %v", owner)
return nil
}
cards := []*Card{}
for i := 0; i < 3; i++ {
for j := 1; j < 9; j++ {
cards = append(cards, NewCard(j, owner, -1, uuid.Nil))
}
}
cards = append(cards, NewCard(0, owner, -1, uuid.Nil))
return &Deck{
Cards: cards,
}
}
func LoadDeck(owner int, cards []int) *Deck {
if owner != SentinalID && owner != ScourgeID {
log.Printf("need valid owner for loaded deck:%v", owner)
return nil
}
if len(cards) == 0 {
return NewDeck(owner)
}
d := []*Card{}
for _, v := range cards {
d = append(d, NewCard(v, owner, -1, uuid.Nil))
}
return &Deck{
Cards: d,
}
}
func ValidateDeck(cards []int) bool {
if len(cards) < 15 {
return false
}
for _, v := range cards {
if !CardType(v).IsACardType() {
return false
}
if OracleToken(CardType(v), nil) {
return false
}
}
return true
}