Skeleton of prototypical UI.
This commit is contained in:
@ -423,3 +423,31 @@ func (p *Player[C]) EnactPermanentAction(actionIdx, choiceIdx int) (Message, err
|
||||
}
|
||||
return p.EnactPermanentActionUnchecked(actionIdx, choiceIdx)
|
||||
}
|
||||
|
||||
// ReportError adds an error to the temporary messages, depending on
|
||||
// its severity and debug settings:
|
||||
//
|
||||
// - If the error is nil, this never does anything.
|
||||
// - If the error is serious, this emits the error if the debug level is
|
||||
// -1 or greater.
|
||||
// - If the error is only a warning, this emits the error if the debug
|
||||
// level is 0 or greater.
|
||||
func (p *Player[C]) ReportError(e error) {
|
||||
if e == nil || p.DebugLevel < -1 {
|
||||
return
|
||||
}
|
||||
if p.DebugLevel < 0 && !IsSeriousError(e) {
|
||||
return
|
||||
}
|
||||
p.ChapterBreak()
|
||||
severity := "[Warning]"
|
||||
if IsSeriousError(e) {
|
||||
severity = "[ERROR]"
|
||||
}
|
||||
p.TemporaryMessages = append(p.TemporaryMessages, Msgf("%s: %v", severity, e))
|
||||
}
|
||||
|
||||
// CanAct returns whether the player has actions theoretically available.
|
||||
func (p *Player[C]) CanAct() bool {
|
||||
return p.ActionsRemaining > 0 && (len(p.Hand) > 0 || len(p.PermanentActions) > 0)
|
||||
}
|
||||
|
Reference in New Issue
Block a user