diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-02-26 10:26:57 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-01-27 16:43:52 +0100 |
| commit | ea1df280fc4ced38ce35516c0f4e5c95e17ccc6d (patch) | |
| tree | b97908c0c03b5814602fcadf79fa56f08692f532 /go/client | |
| parent | fe0cfc82c6cf3d3576de94e0f8b294761067af81 (diff) | |
| download | muhqs-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.go | 23 |
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) } } |
