aboutsummaryrefslogtreecommitdiff
path: root/go/client
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-02-26 10:26:57 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-01-27 16:43:52 +0100
commitea1df280fc4ced38ce35516c0f4e5c95e17ccc6d (patch)
treeb97908c0c03b5814602fcadf79fa56f08692f532 /go/client
parentfe0cfc82c6cf3d3576de94e0f8b294761067af81 (diff)
downloadmuhqs-game-ea1df280fc4ced38ce35516c0f4e5c95e17ccc6d.tar.gz
muhqs-game-ea1df280fc4ced38ce35516c0f4e5c95e17ccc6d.zip
ui: separate selection and options via their highlight color
Diffstat (limited to 'go/client')
-rw-r--r--go/client/game.go23
1 files changed, 12 insertions, 11 deletions
diff --git a/go/client/game.go b/go/client/game.go
index 0e516815..787987d5 100644
--- a/go/client/game.go
+++ b/go/client/game.go
@@ -2,6 +2,7 @@ package main
import (
"fmt"
+ "image/color"
"log"
"github.com/hajimehoshi/ebiten/v2"
@@ -307,24 +308,24 @@ func (g *Game) removePrompt() {
g.prompt = nil
}
-func (g *Game) addHighlight(obj interface{}) {
+func (g *Game) addHighlight(obj interface{}, color color.Color) {
switch obj := obj.(type) {
case ui.HandCard:
- g.handLayer.AddHighlightCard(obj.C)
+ g.handLayer.AddHighlightCard(obj.C, color)
case *game.Card:
- g.handLayer.AddHighlightCard(obj)
+ g.handLayer.AddHighlightCard(obj, color)
case *game.Tile:
- g.mapView.AddHighlightTile(obj)
+ g.mapView.AddHighlightTile(obj, color)
case *game.Unit:
- g.mapView.AddHighlightPermanent(obj)
+ g.mapView.AddHighlightPermanent(obj, color)
default:
log.Panicf("Unhandled highlight of type %T", obj)
}
}
-func (g *Game) addHighlights(objs []interface{}) {
+func (g *Game) addHighlights(objs []interface{}, color color.Color) {
for _, obj := range objs {
- g.addHighlight(obj)
+ g.addHighlight(obj, color)
}
}
@@ -475,7 +476,7 @@ func (g *Game) handleSelection(obj interface{}, x, y int) {
a := game.NewPlayAction(g.activePlayer, obj.C)
if a.Targets().RequireSelection() {
g.addPrompt(a, fmt.Sprintf("Select targets to play %v", obj.C.Name))
- g.handLayer.HighlightCard(obj.C)
+ g.handLayer.HighlightCard(obj.C, ui.HighlightSelectionColor)
} else {
g.declareAction(a)
}
@@ -493,7 +494,7 @@ func (g *Game) updateHighlight() {
a := g.prompt.Action()
if pa, ok := a.(*game.PlayAction); ok {
- g.addHighlight(ui.HandCard{C: pa.Card})
+ g.addHighlight(ui.HandCard{C: pa.Card}, ui.HighlightOptionColor)
}
targets := a.Targets()
@@ -502,13 +503,13 @@ func (g *Game) updateHighlight() {
}
for _, t := range targets.Targets() {
- g.addHighlights(t.Selection())
+ g.addHighlights(t.Selection(), ui.HighlightSelectionColor)
}
target := targets.Cur()
if target.AllowSelection() {
options := target.Options()
- g.addHighlights(options)
+ g.addHighlights(options, ui.HighlightOptionColor)
}
}