private void RestartGame_Executed(object sender, ExecutedRoutedEventArgs eventArgs) { if (ScoreManager.Current.ScoreValue > 0) { var result = ThreeButtonsMessageBox.Show("Отправить результат и перезапустить игру?", "Перезапуск", "Отправить", "Заново", "Отмена"); if (result == MessageBoxResult.Cancel) { return; } if (result == MessageBoxResult.Yes) { // Отправка результата. EnterNameComponent.Show((s, ee) => { ScoreManager.EndGame(false); ScoreManager.Load(); int place = ScoreManager.GetPlace(); string text = (place > 0) ? "Вы на " + place + " месте в рейтинге" : ""; HiscoreComponent.Show(ScoreManager.HiScores, text); RestartGame(); }); return; } } // Перезапуск игры RestartGame(); }
/// <summary> /// Проверка окончания игры. /// </summary> private void CheckGameOver() { for (int j = 0; j < GameTable.Foundations * 2; j++) { if (!_foundationViews[j].Foundation.IsFinished()) { return; } } // Игра окончена - выводим финальную заставку. // Откатываем ходы в самое начало (не сбрасывая счётчики) _table.RestartGame(false); // Показываем в фоне историю действий игрока. var dt = new DispatcherTimer(); dt.Tick += (s, ee) => { _table.Redo(); RefreshView(); }; dt.Interval = new TimeSpan(500 * 10000); dt.Start(); // Запрашиваем имя игрока. EnterNameComponent.Show((s, ee) => { _table.EndGame(true); // Показываем ScoreManager.Load(); int place = ScoreManager.GetPlace(); string text = (place > 0) ? "Вы на " + place + " месте в рейтинге" : ""; HiscoreComponent.Show(ScoreManager.HiScores, text); dt.Stop(); NewGame(); }); }
private void Statistics_Executed(object sender, ExecutedRoutedEventArgs e) { ScoreManager.Load(); HiscoreComponent.Show(ScoreManager.HiScores); }