Exemple #1
0
    public void Start(TuckMatchState state, Action onViewsLoaded)
    {
        _matchState = state;

        var assetList = new List <AssetRequest>()
        {
            new AssetRequest("GUI/GamePlay/BoardView", Singleton.instance.sceneRoot),
            new AssetRequest("GUI/GamePlay/PlayerHandView"),
            new AssetRequest("GUI/GamePlay/GameHudView")
        };

        viewFactory.CreateAsyncFromList(assetList, (uiMap) =>
        {
            foreach (var keyValue in uiMap)
            {
                switch (keyValue.Key)
                {
                case "GUI/GamePlay/BoardView":
                    _boardView       = keyValue.Value as BoardView;
                    _boardView.board = _matchState.board;
                    _boardView.AddListener(GameEventType.PEG_TAP, onPegTapped);
                    _boardView.AddListener(GameEventType.PIECE_TAP, onPieceTapped);
                    break;

                case "GUI/GamePlay/PlayerHandView":
                    _playerHandView = keyValue.Value as PlayerHandView;
                    _playerHandView.AddListener(GameEventType.TRADE_CARD, onTradeCardDrop);
                    _playerHandView.AddListener(GameEventType.PLAY_CARD, onPlayCardDrop);

                    _setupPlayerHand(activePlayer.index);
                    break;

                case "GUI/GamePlay/GameHudView":
                    _gameHudView = keyValue.Value as GameHudView;
                    _gameHudView.AddListener(GameEventType.UNDO, onForwardEventAndRefreshHand);
                    _gameHudView.AddListener(GameEventType.REDO, onForwardEventAndRefreshHand);
                    _gameHudView.AddListener(GameEventType.FINISH_TURN, onForwardEventAndRefreshHand);
                    break;
                }
            }

            if (onViewsLoaded != null)
            {
                onViewsLoaded();
            }
        });
    }