Introduce InfoPanel.

InfoPanels are information displays that do not cost actions. One of them (the Prompt) is shown at the main menu; others can be made available as options in the menu, ether on an ongoing basis or for the current/next turn only.
This commit is contained in:
2023-04-01 12:30:39 -07:00
parent fb5735d5b9
commit 7f8dcd63d6
2 changed files with 28 additions and 12 deletions

View File

@ -4,16 +4,19 @@ 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
ActionsPerTurn int
ActionsRemaining int
PermanentActions []Card[C]
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]
InfoPanels []InfoPanel[C]
Prompt InfoPanel[C]
Rules *RuleCollection[C]
Rand rand.Rand
Turn int
TemporaryMessages []Message
TemporaryPanels []InfoPanel[C]
}