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); }
public static Figure CreateFigureFromPackage(PlayerServiceReference.FigurePackage figurePackage) { Unit unit = CreateUnit(figurePackage.Name); Enums.Piece piece = (Enums.Piece)Enum.Parse(typeof(Enums.Piece), figurePackage.Piece); Figure figure = CreateFigure(unit, piece); figure.ApplyFigurePackageProperties(figurePackage); return(figure); }