Panel display, MultiMessage.
This commit is contained in:
@ -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()
|
||||
}
|
||||
|
Reference in New Issue
Block a user