using UnityEngine; using Vanguard.Api.Contracts; using Vanguard.Auth; using Vanguard.Meta; using Vanguard.State; using Vanguard.UI; namespace Vanguard.App { public sealed class DeckBuilderSceneController : SceneControllerBase { private DeckBuilderView _view; private PlayerTopBar _topBar; private void Start() { SceneEnvironment.Build(SceneTheme.DeckBuilder); var canvas = CreateCanvas("DeckBuilder Canvas"); _view = new DeckBuilderView( canvas.transform, Resolve(), Resolve(), () => _ = Flow.LoadLobbyAsync(), deck => _ = Flow.OpenLobbyWithQueueAsync(deck), info => _ = Flow.LoadBattleAsync(info)); _topBar = new PlayerTopBar( _view.Root, Resolve(), Resolve(), () => _ = Flow.LoadLoginAsync(), null, null, null, () => _ = Flow.LoadLobbyAsync(), overlayParent: canvas.transform); _topBar.Root.SetAsFirstSibling(); var hotkeys = canvas.gameObject.AddComponent(); hotkeys.Cancel = () => { if (_topBar.IsMenuOpen) _topBar.CloseMenu(); else _view.CloseTopmost(); }; _view.Show(); } private void OnDestroy() { _view?.Hide(); _topBar?.Dispose(); } } }