diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-03-26 21:31:47 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:57:11 +0200 |
| commit | f3dce6f8edb37284d46de2c396396d35cd61c137 (patch) | |
| tree | 6602e6f59537a4eb60d0866b89de74fc0e33bf15 | |
| parent | aef4d5ea938f55831e70e28ae2a19c1b23797d8a (diff) | |
| download | muhqs-game-f3dce6f8edb37284d46de2c396396d35cd61c137.tar.gz muhqs-game-f3dce6f8edb37284d46de2c396396d35cd61c137.zip | |
check if Targets allow a selection
This fixes highlighting when an action needs no targets at all.
| -rw-r--r-- | go/client/game.go | 2 | ||||
| -rw-r--r-- | go/game/targets.go | 10 |
2 files changed, 11 insertions, 1 deletions
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 { |
