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); } } }