Beispiel #1
0
        public void Execute()
        {
            player = playerGroup.GetPlayerByIndex(moveRequest.playerIndex);

            Assert.IsNotNull(player);
            playedCard = player.hand.GetCard(moveRequest.handIndex);
            Assert.IsNotNull(playedCard);

            if (moveRequest.piecePathList != null)
            {
                piecePathList = moveRequest.piecePathList;
                for (int i = 0; i < piecePathList.Count; ++i)
                {
                    var piecePath = piecePathList[i];
                    List <BoardPieceGroup> pieceGroupList = board.GetPieceGroupList();
                    BoardPieceGroup        pieceGroup     = pieceGroupList[player.index];
                    BoardPiece             piece          = pieceGroup.GetPiece(piecePath.pieceIndex);


                    bool isKiller = _isSplitStomp(playedCard);
                    // Kill Other Pieces
                    if (validator.GetPieceHitList(piecePath.path, isKiller, ref hitList))
                    {
                        _killPieces(hitList);
                    }

                    // Move Piece
                    BoardPosition newPiecePos = piecePath.path.end;
                    board.SetPiecePosition(piece, newPiecePos);
                }
            }
        }