public void AcceptPreview() { _boardView.ClearHighlights(); if (_previewPickup != null) { if (_move != null) { int oldCount = _move.PickUpMove.PickUpCount; _move.TakeBackMove(_game); _previewPickup = new PickUpMove( _previewPickup.Position, oldCount + _previewPickup.PickUpCount, _game); _boardView.CarryClear(); } _move = new InterPickupAndPlaceMove(_previewPickup); _move.MakeMove(_game); _boardView.CarryVisible = true; foreach (var pieceID in _move.PickUpMove.PickUpPieces) { _boardView.CarryAdd(pieceID); } _previewPickup = null; } else if (_previewPlace != null) { _move.AddToChain(_previewPlace); _previewPlace = null; } }
public void Cancel() { CancelPreview(); if (_move != null) { _move.TakeBackMove(_game); _boardView.InvalidateRender(); _move = null; } _boardView.CarryClear(); }
/// <summary> /// Creates a shallow copy by copying the contained moves into a new list /// </summary> private InterPickupAndPlaceMove(InterPickupAndPlaceMove source) : base(source.Moves) { }