public void Initialize()
        {
            StageQueue.Enqueue(_settings.RandomStageFacade);
            _settings.PredefinedStages.ForEach(stage => StageQueue.Enqueue(stage));

            _currentStageFacade = _stageFactory.Create(GetNextStage().gameObject);
            _currentStageFacade.StartStage();
        }
        public void Tick()
        {
            if (_currentStageFacade.HasStageEnded)
            {
                var nextStage = GetNextStage();
                if (nextStage == null)
                {
                    return;
                }

                _currentStageFacade.StopStage();

                _currentStageFacade = nextStage;
                _currentStageFacade.StartStage();
            }
        }