public void AnimateCancelMove(DeltaChange dc, Move move)
{
this.OnMoveAnimationPreview();
this.SetupAnimationCount(move);
var figureDiedItems = dc.Filter((ch) =>
(ch.Action == MoveAction.Deletion) &&
(ch.FigureColor != this.viewModel.CurrentPlayerColor) &&
(ch.Square == move.To));
Queem.Core.Figure figureDied = Queem.Core.Figure.Nobody;
if (figureDiedItems.Count() > 0)
figureDied = figureDiedItems.First().FigureType;
while (dc.HasItems())
{
var change = dc.PopLast();
switch (change.Action)
{
case MoveAction.Move:
this.InnerAnimateMove(new Move(change.AdditionalSquare, change.Square), figureDied);
break;
case MoveAction.Creation:
break;
case MoveAction.Deletion:
if (move.To != change.Square)
this.viewModel.UpdateFigure(change.Square,
change.FigureType, change.FigureColor);
break;
}
}
}