private void NextLevel() { if (Level.LevelNumber == 3) Completed = true; _changingLevel = true; _scoresTimer = new GameTimer(TimeSpan.MaxValue); var effect = new ZoomingEffect(this, 1f, 0.6f, 0.4f); GameObjectCollection.Add(effect); _mainDevice.Enabled = false; _mainDevice.Visible = false; _mainDevice.CenterPosition = _playground.CenterPosition; _gameObjects.Add(new FireworkGenerator(this)); effect.Disposed += (sender, args) => { int nextLevelNumber = _level.LevelNumber + 1; if (nextLevelNumber > 3) Completed = true; else { StartLevel(nextLevelNumber); _changingLevel = false; } }; }
public void RestartGame(LossReason lossReason) { if (_changingLevel) return; switch (lossReason) { case LossReason.LastLifeSpent: _statisticsPanel.LastLifeSpent = true; break; case LossReason.TimeSpent: _statisticsPanel.TimeSpent = true; break; } _changingLevel = true; _statisticsPanel.TryAgain = true; var zoomingEffect = new ZoomingEffect(this, 1f, 3f, 1.7f); GameObjectCollection.Add(zoomingEffect); zoomingEffect.Disposed += (sender, args) => { Lifes = 3; StartLevel(1); _changingLevel = false; }; }