aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-03-26 21:31:47 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-20 15:57:11 +0200
commitf3dce6f8edb37284d46de2c396396d35cd61c137 (patch)
tree6602e6f59537a4eb60d0866b89de74fc0e33bf15
parentaef4d5ea938f55831e70e28ae2a19c1b23797d8a (diff)
downloadmuhqs-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.go2
-rw-r--r--go/game/targets.go10
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 {