// Binary smoketest runs a very simple cardsim thing. package main import ( "cardSimEngine/cardsim" "fmt" ) func main() { p := cardsim.InitPlayer( &SmokeTestCollection{ Number: cardsim.Stored[int]{ Name: "Number", Value: 0, }, Total: cardsim.Stored[int64]{ Name: "Total", Value: 0, }, Turns: cardsim.Invisible[int]{ Name: "Turns", Value: 0, }, Flavor: cardsim.Stored[string]{ Name: "Flavor", Value: "Lemon", }, }, ) p.Name = "Dave" p.HandLimit = 3 p.ActionsPerTurn = 2 installRules(p.Rules) initDeck(p.Deck) installPermanentActions(&p.PermanentActions) p.InfoPanels = []cardsim.InfoPanel[*SmokeTestCollection]{ &cardsim.BasicStatsPanel[*SmokeTestCollection]{ Name: cardsim.MsgStr("Stats"), Intro: cardsim.MsgStr("Hi! These are the smoke test stats."), }, } p.Prompt = prompt{} p.DebugLevel = 5 err := cardsim.RunSimpleTerminalUI(p) if err != nil { fmt.Println("Terminated with error:") fmt.Println(err) } else { fmt.Println("Terminated without error.") } } type prompt struct{} func (prompt) Title(p *cardsim.Player[*SmokeTestCollection]) cardsim.Message { return cardsim.MsgStr("Prompt title -- should not be visible?") } func (prompt) Info(p *cardsim.Player[*SmokeTestCollection]) ([]cardsim.Message, error) { return []cardsim.Message{cardsim.MsgStr("Here, have some stuff.")}, nil }