/// <summary> /// Coloca la partida en un movimiento /// </summary> internal void GoToMovement(MovementFigureViewModel movementViewModel) { bool end = false; List <ActionBaseModel> actions = new List <ActionBaseModel>(); // Limpia el tablero Reset(); // Realiza los movimientos while (!end) { MovementFigureModel movement = GetNextMovement(); if (movement == null) { end = true; } else { // Acumula las acciones actions.AddRange(MakeMovement(movement)); // Si estamos en el movimiento buscado, terminamos if (movementViewModel.Movement == ActualMovement || ActualMovementIndex >= ActualVariationGame.Movements.Count) { // Selecciona el movimiento en la lista MovementsList.SelectMovement(ActualMovement); // Indica que ha terminado end = true; } } } // Ejecuta las acciones RaiseEventShowMovements(actions, false); }
/// <summary> /// Reorre los movimientos hasta encontrar el buscado /// </summary> internal void MoveTo(MovementFigureViewModel movementFigureViewModel) { MovementsList.MoveTo(movementFigureViewModel); }