public void MoveFigure(Figure figure, Point point)
{
Contract.Requires(figure != null);
Contract.Requires(this.CanFigureMoveToPoint(figure, point));
// Remove monsters from old position
Point p = FiguresOnBoard[figure];
for (int x = p.X;
x < p.X + (figure.Orientation.Equals(Orientation.V) ? figure.Size.Width : figure.Size.Height);
x++)
{
for (int y = p.Y;
y < p.Y + (figure.Orientation.Equals(Orientation.V) ? figure.Size.Height : figure.Size.Width);
y++)
{
board[x, y].Figure = null;
}
}
for (int x = point.X;
x < point.X + (figure.Orientation.Equals(Orientation.V) ? figure.Size.Width : figure.Size.Height);
x++)
{
for (int y = point.Y;
y < point.Y + (figure.Orientation.Equals(Orientation.V) ? figure.Size.Height : figure.Size.Width);
y++)
{
board[x, y].Figure = figure;
}
}
figuresOnBoard[figure] = point;
boardChanged = true;
}