summaryrefslogtreecommitdiff
path: root/engine/card.go
blob: fce1af01d3b41583b4c9a122311e47347190b42b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package engine

import "slices"

type Card struct {
	Name   string
	AllOut bool
	Text   string
	Flavor string
}

func (c *Card) Base() *Card {
	return c
}

func (c *Card) CanPlay(g *Game) bool {
	panic("unimplemented")
}

type IsCard interface {
	Base() *Card
	CanPlay(g *Game) bool
}

type CardInstance struct {
	*Card
	Visible bool
}

var secretCardStruct = &Card{
	Name: "?",
}

var SecretCard = &CardInstance{
	Card:    secretCardStruct,
	Visible: false,
}

func Secrets(size int) Stack {
	return slices.Repeat([]IsCard{SecretCard}, size)
}