private static void AssignFigureToPosition(Figure figure, int row, int column) { figure.MoveGraphicsToPosition(PointToPoint3D(GetTileCenter(row, column))); int previousRow = figure.Position.Row; int previousColumn = figure.Position.Column; figure.Position.Row = row; figure.Position.Column = column; figure.Untargetable = row == -1; if ((previousRow >= 0) != (row >= 0)) { if (row == -1) { RemoveFromBoard(figure); } else { AddToBoard(figure); } } PlayerServiceReference.FigurePackage figurePackage = figure.ToFigurePackage(); figurePackage.OriginalRow = previousRow; figurePackage.OriginalColumn = previousColumn; figurePackage.NewRow = row; figurePackage.NewColumn = column; PlayerClient.MoveUnit(figurePackage); }