From f3dce6f8edb37284d46de2c396396d35cd61c137 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Tue, 26 Mar 2024 21:31:47 +0100 Subject: check if Targets allow a selection This fixes highlighting when an action needs no targets at all. --- go/client/game.go | 2 +- go/game/targets.go | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'go') diff --git a/go/client/game.go b/go/client/game.go index 4d265e4b..8c7d50ad 100644 --- a/go/client/game.go +++ b/go/client/game.go @@ -501,7 +501,7 @@ func (g *Game) handleSelection(obj interface{}, x, y int) { case ui.HandCard: a := game.NewPlayAction(g.activePlayer, obj.C) targets := a.Targets() - if targets != nil && targets.Cur().AllowSelection() { + if targets != nil && targets.AllowSelection() { g.addPrompt(a, fmt.Sprintf("Select targets to play %v", obj.C.Name)) g.handLayer.HighlightCard(obj.C, ui.HighlightSelectionColor) } else { diff --git a/go/game/targets.go b/go/game/targets.go index fb393057..58f19dc1 100644 --- a/go/game/targets.go +++ b/go/game/targets.go @@ -271,6 +271,16 @@ func (targets *Targets) RequireSelection() bool { return false } +func (targets *Targets) AllowSelection() bool { + for _, t := range targets.ts { + if t.AllowSelection() { + return true + } + } + + return false +} + func conjunction(constraints ...TargetConstraintFunc) TargetConstraintFunc { return func(t interface{}) error { for _, constraint := range constraints { -- cgit v1.2.3