aboutsummaryrefslogtreecommitdiff
path: root/go/client/sealed.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-02-16 18:57:15 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-20 15:50:10 +0200
commit63ad22242562b1e66353694f2a17df6d1c64a8fd (patch)
treef91a3a98e554e58a30d5bb0a34b021c7fb206311 /go/client/sealed.go
parentc0ab1110429be3a2a1664084469952ea082961c1 (diff)
downloadmuhqs-game-63ad22242562b1e66353694f2a17df6d1c64a8fd.tar.gz
muhqs-game-63ad22242562b1e66353694f2a17df6d1c64a8fd.zip
move more ui logic into Collection
* Generalize hover detection and move it into ui.Collection * Implement transparencu for the prompt banner
Diffstat (limited to 'go/client/sealed.go')
-rw-r--r--go/client/sealed.go45
1 files changed, 31 insertions, 14 deletions
diff --git a/go/client/sealed.go b/go/client/sealed.go
index ab0f0296..c219dbf6 100644
--- a/go/client/sealed.go
+++ b/go/client/sealed.go
@@ -3,6 +3,9 @@ package main
import (
"strings"
+ "github.com/hajimehoshi/ebiten/v2"
+ "github.com/hajimehoshi/ebiten/v2/inpututil"
+
"muhq.space/muhqs-game/go/game"
"muhq.space/muhqs-game/go/ui"
)
@@ -13,27 +16,29 @@ const (
type Sealed struct {
ui.Collection
- app *app
- width, height int
+ app *app
pool game.PileOfCards
deck game.PileOfCards
}
func NewSealed(width, height int, app *app) *Sealed {
- s := &Sealed{app: app, width: width, height: height}
+ s := &Sealed{
+ app: app,
+ Collection: ui.Collection{Width: width, Height: height},
+ }
s.AddWidget(ui.NewFixedTextBox(
- (s.width-START_BUTTON_WIDTH)/2-START_BUTTON_WIDTH,
- (s.height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT,
+ (s.Width-START_BUTTON_WIDTH)/2-START_BUTTON_WIDTH,
+ (s.Height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT,
START_BUTTON_WIDTH,
START_BUTTON_HEIGHT,
"sets:",
).Centering(true))
setInput := ui.NewTextInput(
- (s.width-START_BUTTON_WIDTH)/2,
- (s.height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT,
+ (s.Width-START_BUTTON_WIDTH)/2,
+ (s.Height-START_BUTTON_HEIGHT)/2-START_BUTTON_HEIGHT,
START_BUTTON_WIDTH,
START_BUTTON_HEIGHT,
"set list",
@@ -41,8 +46,8 @@ func NewSealed(width, height int, app *app) *Sealed {
s.AddWidget(setInput)
s.AddWidget(ui.NewSimpleButton(
- (s.width-START_BUTTON_WIDTH)/2,
- (s.height-START_BUTTON_HEIGHT)/2,
+ (s.Width-START_BUTTON_WIDTH)/2,
+ (s.Height-START_BUTTON_HEIGHT)/2,
START_BUTTON_WIDTH,
START_BUTTON_HEIGHT,
"Start",
@@ -53,8 +58,20 @@ func NewSealed(width, height int, app *app) *Sealed {
return s
}
+func (s *Sealed) Update() error {
+ if err := s.Collection.Update(); err != nil {
+ return err
+ }
+
+ if inpututil.IsKeyJustPressed(ebiten.KeyEscape) {
+ s.app.popActivity()
+ }
+
+ return nil
+}
+
func (s *Sealed) Layout(width, height int) (int, int) {
- return s.width, s.height
+ return s.Width, s.Height
}
func (s *Sealed) startSealed(_sets string) {
@@ -75,11 +92,11 @@ func (s *Sealed) startSealed(_sets string) {
setDeck.MoveInto(s.pool)
}
- deckList := ui.NewPocList(s.width-SIDEBARD_WIDTH/2, s.height-START_BUTTON_HEIGHT-20, s.deck)
+ deckList := ui.NewPocList(s.Width-SIDEBARD_WIDTH/2, s.Height-START_BUTTON_HEIGHT-20, s.deck)
deckList.Bg(ui.Gray)
s.AddWidget(deckList)
- grid := ui.NewCardGrid(0, 0, s.width-SIDEBARD_WIDTH, s.height, 0.5, s.pool).Columns(3)
+ grid := ui.NewCardGrid(0, 0, s.Width-SIDEBARD_WIDTH, s.Height, 0.5, s.pool).Columns(3)
selectCard := func(x, y int) {
_card := grid.FindObjectAt(x, y)
if _card == nil {
@@ -94,8 +111,8 @@ func (s *Sealed) startSealed(_sets string) {
s.AddWidget(ui.NewClickWrapper(grid, selectCard))
s.AddWidget(ui.NewSimpleButton(
- s.width-SIDEBARD_WIDTH/2-START_BUTTON_WIDTH/2,
- s.height-START_BUTTON_HEIGHT,
+ s.Width-SIDEBARD_WIDTH/2-START_BUTTON_WIDTH/2,
+ s.Height-START_BUTTON_HEIGHT,
START_BUTTON_WIDTH,
START_BUTTON_HEIGHT,
"Done",