示例#1
0
        public static ChangeMatchMode Create(TuckMatchState matchState, GameMatchMode newMode)
        {
            ChangeMatchMode command = new ChangeMatchMode();

            command.matchState   = matchState;
            command.newMatchMode = newMode;
            return(command);
        }
示例#2
0
    public static TuckMatchState Create(
        List <PlayerState> playerList,
        CardDeck cardDeck)
    {
        TuckMatchState state = new TuckMatchState();

        state.cardDeck      = cardDeck;
        state.playerGroup   = PlayerGroup.Create(playerList, cardDeck);
        state.board         = Board.Create(playerList);
        state.teams         = TeamCollection.Create(playerList);
        state.escrow        = TradeEscrow.Create(state.teams, state.playerGroup);
        state.validator     = MoveValidator.Create(state.board);
        state.gameMatchMode = GameMatchMode.INITIAL;

        return(state);
    }
示例#3
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();
            }
        });
    }
示例#4
0
    public static TuckMatchCore Create(
        List <PlayerState> playerList,
        CardDeck cardDeck)
    {
        TuckMatchCore core = new TuckMatchCore();

        // Also no commands for starting player hands
        core.matchState = TuckMatchState.Create(playerList, cardDeck);



        //var board = core.matchState.board;

        //var murderer = board.GetPieceGroupList()[0].GetPiece(1);
        //board.SetPiecePosition(murderer, BoardPosition.Create(PositionType.MAIN_TRACK, 12));


        //var victim = board.GetPieceGroupList()[0].GetPiece(0);
        //board.SetPiecePosition(victim, BoardPosition.Create(PositionType.MAIN_TRACK, 18));


        //var pieceMovement = new PieceMovementData();
        //pieceMovement.type = MoveType.FORWARDS;
        //pieceMovement.value = 6;

        //var pathList = new List<MovePath>();
        //core.matchState.validator.GetValidPaths(murderer, pieceMovement, ref pathList);

        //var pathData = new MoveRequest.PiecePathData();
        //pathData.pieceIndex = 1;
        //pathData.path = pathList[0];

        //var pieceMoveList = new List<MoveRequest.PiecePathData>();
        //pieceMoveList.Add(pathData);

        //MoveRequest request = MoveRequest.Create(0, 0, pieceMoveList);
        //core.ApplyMoveCommand(request);

        return(core);
    }