private void Refresh(int phase, MenuLayer layer) { switch (phase) { case 1: ScoreBox.SetText(GamestateManager.Instance.Points.ToString()); break; case 2: Layers[MenuLayer.Scores].FindAll(actor => !ScoreActors.Contains(actor)).ForEach(actor => { actor.Dispose(); Layers[MenuLayer.Scores].Remove(actor); }); int i = 0; ScoreManager.GetScores(10, ScoresOffset).ForEach(score => { Layers[MenuLayer.Scores].AddRange(new List <Actor> { new MenuTextBox(new Vector2f(100, 210 + i * 50), new Vector2f(300, 50), score.Item1, 20), new MenuTextBox(new Vector2f(400, 210 + i++ *50), new Vector2f(300, 50), score.Item2, 20) }); }); if (layer != MenuLayer.Scores) { Layers[MenuLayer.Scores].ForEach(actor => actor.Visible = false); } break; case 3: QuitNoSaveButton.Visible = layer == MenuLayer.Main && GamestateManager.Instance.GamePhase != GamePhase.NotStarted && GamestateManager.Instance.GamePhase != GamePhase.Ending; ScoresPrev.Visible = layer == MenuLayer.Scores && ScoresOffset > 0; ScoresNext.Visible = layer == MenuLayer.Scores && ScoresOffset + 10 < ScoreManager.GetScoresCount(); break; } }