Add a bunch of logging.
This commit is contained in:
parent
9796c2e970
commit
57348f7ebf
@ -463,3 +463,10 @@ func (p *Player[C]) ReportError(e error) {
|
|||||||
func (p *Player[C]) CanAct() bool {
|
func (p *Player[C]) CanAct() bool {
|
||||||
return p.ActionsRemaining > 0 && (len(p.Hand) > 0 || len(p.PermanentActions) > 0)
|
return p.ActionsRemaining > 0 && (len(p.Hand) > 0 || len(p.PermanentActions) > 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Player[C]) Debug(minLevel int, msg Message) {
|
||||||
|
if p.DebugLevel < minLevel {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
p.TemporaryMessages = append(p.TemporaryMessages, msg)
|
||||||
|
}
|
||||||
|
@ -334,18 +334,21 @@ func (r *RuleCollection[C]) Run(p *Player[C]) error {
|
|||||||
r.steps = steps
|
r.steps = steps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p.Debug(2, Msgf("Executing steps: %v", steps))
|
||||||
|
|
||||||
var errs ErrorCollector
|
var errs ErrorCollector
|
||||||
for _, step := range steps {
|
for _, step := range steps {
|
||||||
stepRules := r.byStep[step]
|
stepRules := r.byStep[step]
|
||||||
p.Rand.Shuffle(len(stepRules), func(i, j int) {
|
p.Debug(3, Msgf("Executing step %d; length %d", step, len(stepRules)))
|
||||||
stepRules[i], stepRules[j] = stepRules[j], stepRules[i]
|
ShuffleAll(stepRules, p.Rand)
|
||||||
})
|
|
||||||
var remove []RuleID
|
var remove []RuleID
|
||||||
halt := false
|
halt := false
|
||||||
for _, id := range stepRules {
|
for _, id := range stepRules {
|
||||||
rule := r.rules[id]
|
rule := r.rules[id]
|
||||||
|
p.Debug(4, Msgf("Executing rule %x (labeled %q)", id, rule.Label()))
|
||||||
err := rule.Enact(p)
|
err := rule.Enact(p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
p.Debug(2, Msgf("Rule %x (%q): error: %v", id, rule.Label(), err))
|
||||||
ignore := false
|
ignore := false
|
||||||
if errors.Is(err, ErrDeleteRule) {
|
if errors.Is(err, ErrDeleteRule) {
|
||||||
remove = append(remove, id)
|
remove = append(remove, id)
|
||||||
@ -377,10 +380,14 @@ func (r *RuleCollection[C]) Run(p *Player[C]) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if halt {
|
if halt {
|
||||||
return errs.Emit()
|
ret := errs.Emit()
|
||||||
|
p.Debug(2, Msgf("Rules stopping early. Result: %v", ret))
|
||||||
|
return ret
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return errs.Emit()
|
ret := errs.Emit()
|
||||||
|
p.Debug(2, Msgf("Rules complete. Result: %v", ret))
|
||||||
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RuleCollection[C]) applyDelayedUpdates() {
|
func (r *RuleCollection[C]) applyDelayedUpdates() {
|
||||||
|
Loading…
Reference in New Issue
Block a user