diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-07-05 12:15:25 -0400 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:57:24 +0200 |
| commit | 0ea8d281ca4404a26f34404f3ae5b82b3517f941 (patch) | |
| tree | ad8b6a8f76658c7fb5a07c39488de4d6ed6868b8 /go/activities | |
| parent | b5aed7f856c6a5455daac3dd341e91b52db92ae7 (diff) | |
| download | muhqs-game-0ea8d281ca4404a26f34404f3ae5b82b3517f941.tar.gz muhqs-game-0ea8d281ca4404a26f34404f3ae5b82b3517f941.zip | |
show drafted decklist after local draft is done
Diffstat (limited to 'go/activities')
| -rw-r--r-- | go/activities/draft.go | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/go/activities/draft.go b/go/activities/draft.go index e326050d..19436075 100644 --- a/go/activities/draft.go +++ b/go/activities/draft.go @@ -21,16 +21,20 @@ type Draft struct { player *game.Player ctrl game.PlayerControl draft *game.Draft + done chan struct{} setInput *ui.TextInput descInput *ui.TextInput deckList *ui.PocList timer *ui.TimerBar + + deckView *ui.CardGrid } func NewLocalDraft(width, height int, playerName string) *Draft { d := &Draft{ Collection: ui.Collection{Width: width, Height: height}, + done: make(chan struct{}), } d.player = game.NewDraftPlayer(playerName) @@ -131,6 +135,21 @@ func (d *Draft) Update() error { d.presentPack(n) } + if d.deckView == nil { + select { + case <-d.done: + d.deckView = ui.NewCardGrid( + 0, + 0, + d.Width-SEALED_DECK_STRIP_WIDTH, + d.Height, + 0.5, + d.player.Deck).Columns(3) + d.AddWidget(d.deckView) + default: + } + } + if err := ui.Update(); err != nil { return err } @@ -167,6 +186,7 @@ func (d *Draft) presentPack(n game.PlayerNotification) { d.AddWidget(grid) if d.draft == nil { + // TODO: support any deadline t := time.Duration(pack.Size()*5) * time.Second timer := ui.NewTimerBar(0, 10, d.Width, 5, t) d.AddWidget(timer) @@ -230,14 +250,13 @@ func (d *Draft) startDraft(desc string, setList string, aiN int) { DRAFT_BUTTON_HEIGHT, "Done", func(*ui.SimpleButton) { - d.done() + PopActivity() })) - go d.draft.Run() -} - -func (d *Draft) done() { - PopActivity() + go func() { + d.draft.Run() + close(d.done) + }() } func (d *Draft) GetDeckList() string { |
