Compare commits
2 Commits
f8b6b6b376
...
fb5735d5b9
Author | SHA1 | Date | |
---|---|---|---|
fb5735d5b9 | |||
cef0718cba |
@ -9,6 +9,10 @@ type Card[C StatsCollection] interface {
|
||||
// a warning, the game crashes.
|
||||
Title(p *Player[C]) (Message, error)
|
||||
|
||||
// Urgent reports whether the card is considered urgent. If
|
||||
// the player hasa any
|
||||
Urgent(p *Player[C]) bool
|
||||
|
||||
// EventText returns the text to display on the card. If it returns an
|
||||
// error that is not a warning, the game crashes.
|
||||
EventText(p *Player[C]) (Message, error)
|
||||
@ -43,6 +47,7 @@ type CardOption[C StatsCollection] interface {
|
||||
// A BasicCard is a Card with fixed title, text, options, and optional post-option callback.
|
||||
type BasicCard[C StatsCollection] struct {
|
||||
CardTitle Message
|
||||
IsUrgent bool
|
||||
CardText Message
|
||||
CardOptions []CardOption[C]
|
||||
AfterOption func(p *Player[C], option CardOption[C]) error
|
||||
@ -52,6 +57,10 @@ func (b *BasicCard[C]) Title(p *Player[C]) (Message, error) {
|
||||
return b.CardTitle, nil
|
||||
}
|
||||
|
||||
func (b *BasicCard[C]) Urgent(_ *Player[C]) bool {
|
||||
return b.IsUrgent
|
||||
}
|
||||
|
||||
func (b *BasicCard[C]) EventText(p *Player[C]) (Message, error) {
|
||||
return b.CardText, nil
|
||||
}
|
||||
|
@ -4,13 +4,16 @@ import "math/rand"
|
||||
|
||||
// Player stores all gameplay state for one player.
|
||||
type Player[C StatsCollection] struct {
|
||||
Stats C
|
||||
Name string
|
||||
Deck *Deck[C]
|
||||
Hand []Card[C]
|
||||
HandLimit int
|
||||
Rules *RuleCollection[C]
|
||||
Rand rand.Rand
|
||||
Turn int
|
||||
PendingMessages []Message
|
||||
Stats C
|
||||
Name string
|
||||
Deck *Deck[C]
|
||||
Hand []Card[C]
|
||||
HandLimit int
|
||||
ActionsPerTurn int
|
||||
ActionsRemaining int
|
||||
PermanentActions []Card[C]
|
||||
Rules *RuleCollection[C]
|
||||
Rand rand.Rand
|
||||
Turn int
|
||||
PendingMessages []Message
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user