Panel display, MultiMessage.

This commit is contained in:
2023-04-02 00:20:37 -07:00
parent 3eb087201f
commit a62de999ea
2 changed files with 43 additions and 2 deletions

View File

@ -63,7 +63,7 @@ func pickNextAction[C StatsCollection](p *Player[C]) (isCard bool, cardIdx int,
if needsDivider {
divider()
}
displayPrompt(p)
displayOnePanel(p, p.Prompt)
actionsOffset := displayStatsMenu(p)
handOffset := displayPermanentActionsMenu(p, actionsOffset)
max := displayHandMenu(p, handOffset)
@ -143,3 +143,25 @@ func confirmQuit() {
os.Exit(0)
}
}
func displayOnePanel[C StatsCollection](p *Player[C], panel InfoPanel[C]) error {
var errs ErrorCollector
t, err := panel.Title(p)
if IsSeriousError(err) {
return err
}
errs.Add(err)
ts := t.String()
if len(ts) > 0 {
fmt.Println(ts)
fmt.Println(strings.Repeat("-", len(ts)))
fmt.Println()
}
m, err := panel.Info(p)
errs.Add(err)
if IsSeriousError(err) {
return errs.Emit()
}
displayAndWait(MultiMessage(m))
return errs.Emit()
}