protected override void Init() { var mniYes = GetItem <MenuItem>("itmYes"); var mniNo = GetItem <MenuItem>("itmNo"); slider = GetItem <SlidingPane>("pauseSlider"); fader = GetItem <FadingPane>("pauseFader"); slider.SlideIn(GenericPosition.Bottom); fader.FadeIn(); mniYes.IsDisabled = true; // takes away focus mniYes.IsDisabled = false; mniNo.IsDisabled = true; // takes away focus mniNo.IsDisabled = false; var colYes = mniYes.TextItem.Color; var colNo = mniNo.TextItem.Color; mniYes.FocusGain += (s, a) => mniYes.TextItem.Color = Color.Yellow; mniNo.FocusGain += (s, a) => mniNo.TextItem.Color = Color.Yellow; mniYes.FocusLoss += (s, a) => mniYes.TextItem.Color = colYes; mniNo.FocusLoss += (s, a) => mniNo.TextItem.Color = colNo; mniNo.Action += (s, a) => { slider.SlideOut(GenericPosition.Top); fader.FadeOut(); }; mniYes.Action += (s, a) => { parent.StopSession(); slider.SlideOut(GenericPosition.Top); fader.FadeOut(); }; slider.SlidedOut += (s, a) => { parent.InputDisabled = false; Close(); }; }
private void SaveScores(TextField nameField, LayoutPane pane) { MapDifficulty diff = Game.Settings.Difficulty; score.Name = nameField.Text; int p = 1; Highscore best = null; List <Highscore> dups = new List <Highscore>(); var it = Game.ScoresOf(diff).GetEnumerator(); for (it.MoveNext(); it.Current != null; it.MoveNext()) { if (it.Current.Name.Equals(score.Name)) { if (best == null) { best = it.Current; } else { dups.Add(it.Current); } } if (best == null) { ++p; } } if (score == best) { Task.Run(() => { mainPane.Remove(pane); dups.ForEach(Game.RemoveHighscore); FileManager.SaveHighscores(Game.ScoresPath, Game.Scores); MySqlHelper.Instance.Sync(Game); mainPane.Add(CreateNavPane()); }); } else { Game.Scores.Remove(score); if (kicked != null) { Game.Scores.Add(kicked); } var ti = new TextItem(font, string.Format("A better score by {0} already exists at Rank {1}.", best.Name, p)); var fp = new FadingPane(2000); fp.HGrow = fp.VGrow = 1; ti.HAlign = HAlignment.Center; ti.VAlign = VAlignment.Center; fp.Add(ti); fp.FadedOut += (s, a) => { mainPane.Remove(fp); mainPane.Add(CreateNavPane()); }; mainPane.Remove(pane); mainPane.Add(fp); } }