From 179f442ba75d13ce8ef30c451404d1c6db712765 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sat, 5 Jul 2025 12:15:25 -0400 Subject: show drafted decklist after local draft is done --- go/activities/draft.go | 31 +++++++++++++++++++++++++------ 1 file 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 { -- cgit v1.2.3