From 679a7625c3be04ab0cff878d62bee18a5c33f72d Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 22 Aug 2025 15:50:26 +0200 Subject: do not include already selected candidates in target options --- go/game/targets.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'go') diff --git a/go/game/targets.go b/go/game/targets.go index 05d690c0..2eba87eb 100644 --- a/go/game/targets.go +++ b/go/game/targets.go @@ -213,7 +213,13 @@ func (t *Target) Options() (options []any) { candidates := t.candidates() for _, candidate := range candidates { - if err := t.constraint(candidate); err == nil { + + err := t.constraint(candidate) + // TODO: Fix this if a single target allows multiple selections of the same object. + if err == nil && slices.Contains(t.sel, candidate) { + err = ErrTargetAlreadySelected + } + if err == nil { options = append(options, candidate) } else { log.Debug("no valid option", "candidate", candidate, "error", err) -- cgit v1.2.3