private void ProcessSequenceCompleted() { StoredMoves.Add(CurrentPieces.Select(x => x).ToList()); if (StoredMoves.Count >= MovesAllowedPerTurn) { foreach (var currentMoves in StoredMoves) { SequenceCompleted?.Invoke(currentMoves.ToArray()); LogUsedPieces(currentMoves); foreach (var square in currentMoves) { if (square.OnCollection != null) { square.OnCollection.OnCollection(); } square.DestroyPiece(); } } MoveCompleted?.Invoke(); StoredMoves.Clear(); ResetMovesAllowedPerTurn(); } CurrentPieces.Clear(); SelectedPiecesChanged?.Invoke(CurrentPieces); }
private void EndSequence() { SequenceCompleted?.Invoke(); Dispose(); }