void LoadLvl(LoadLevelType loadLvlType) { HideQuickGameMenu(0); if (currentLvl != null) { Destroy(currentLvl.gameObject); } if (loadLvlType == LoadLevelType.nextLvl) { lvlIndex++; } else if (loadLvlType == LoadLevelType.fromPlayerProfile) { lvlIndex = PlayerProfile.levelIndex; } if (lvlList.levels.Length < lvlIndex + 1) { SceneManager.LoadScene(0); } currentLvl = Instantiate(lvlList.levels[lvlIndex]); lvlComplitedObject.SetActive(false); lvlLostObject.SetActive(false); forceButton.SetActive(true); Debug.Log("Target: " + currentLvl.targetOfShoots); OnLvlLoaded.Invoke(currentLvl, lvlIndex); }
public override void Reset() { levelName = new ConcreteStringVar(); levelIndex = new ConcreteIntVar(); loadLevelType = LoadLevelType.LoadLevel; }
public override void Reset () { levelName = new ConcreteStringVar(); levelIndex = new ConcreteIntVar(); loadLevelType = LoadLevelType.LoadLevel; }
public CallLoadLevel(LoadLevelType type, int num, GameObject levelbutton = null) { Type = type; index = num; SelectedLevelButton = levelbutton; }
public override void Reset() { loadLevelType = LoadLevelType.LoadLevel; }
private IEnumerator LoadLevel(int index, LoadLevelType Type, GameObject LevelButton = null) { switch (Type) { case LoadLevelType.FromMainMenu: SetMainMenuEnable(false); ParallelTasks MainMenuDisappearTask = GetMainMenuDisappearTask(PlayButton); while (!MainMenuDisappearTask.IsFinished) { MainMenuDisappearTask.Update(); yield return(null); } break; case LoadLevelType.FromSelectionMenu: BackButton.GetComponent <BoxCollider2D>().enabled = false; SetSelectLevelEnable(false); ParallelTasks LevelButtonDisappearTasks = new ParallelTasks(); foreach (Transform child in AllLevelButtons.transform) { if (child.gameObject == LevelButton) { LevelButtonDisappearTasks.Add(child.GetComponent <GameButton>().GetSelectedDisappearTask()); } else { LevelButtonDisappearTasks.Add(child.GetComponent <GameButton>().GetUnselectedDisappearTask()); } } foreach (Transform child in LevelSelectionArrows.transform) { LevelButtonDisappearTasks.Add(child.GetComponent <GameButton>().GetUnselectedDisappearTask()); } LevelButtonDisappearTasks.Add(BackButton.GetComponent <GameButton>().GetUnselectedDisappearTask()); while (!LevelButtonDisappearTasks.IsFinished) { LevelButtonDisappearTasks.Update(); yield return(null); } break; case LoadLevelType.LevelFinish: BackButton.GetComponent <BoxCollider2D>().enabled = false; levelState = LevelState.Clear; SerialTasks LevelEndTasks = new SerialTasks(); LevelEndTasks.Add(GetLevelEndUITask(false)); LevelEndTasks.Add(new WaitTask(PerformLevelFinishEffectWaitTime)); LevelEndTasks.Add(GetBubblePowerUpTasks()); LevelEndTasks.Add(GetShockWaveEmitAndFadeTasks()); LevelEndTasks.Add(GetBubbleMoveOutPrepareTasks()); while (!LevelEndTasks.IsFinished) { LevelEndTasks.Update(); yield return(null); } LevelEndTasks.Clear(); LevelEndTasks.Add(GetBubbleEscapeTasks()); LevelEndTasks.Add(new WaitTask(StartNewLevelWaitTime)); while (!LevelEndTasks.IsFinished) { LevelEndTasks.Update(); yield return(null); } ClearUseableBubbles(); break; } if (index <= MaxLevelIndex) { levelState = LevelState.SetUp; if (CurrentSaveInfo.CurrentLevel >= MinLevelIndex && Type == LoadLevelType.LevelFinish) { SortedLevelList[CurrentSaveInfo.CurrentLevel - MinLevelIndex].SetActive(false); Destroy(SortedLevelList[CurrentSaveInfo.CurrentLevel - MinLevelIndex]); SortedLevelList[CurrentSaveInfo.CurrentLevel - MinLevelIndex] = CopiedLevel; } CopiedLevel = Instantiate(SortedLevelList[index - MinLevelIndex]); CopiedLevel.transform.parent = AllLevel.transform; CopiedLevel.SetActive(false); SortedLevelList[index - MinLevelIndex].SetActive(true); ActivatedLevel = SortedLevelList[index - MinLevelIndex]; if (Type == LoadLevelType.LevelFinish) { CurrentSaveInfo.LevelFinished[CurrentSaveInfo.CurrentLevel - 1] = true; } CurrentSaveInfo.CurrentLevel = index; SaveProgress(); EventManager.instance.Fire(new LevelLoaded(CurrentSaveInfo.CurrentLevel)); SerialTasks LevelStartUITasks = GetLevelStartTask(); while (!LevelStartUITasks.IsFinished) { LevelStartUITasks.Update(); yield return(null); } levelState = LevelState.Play; EventManager.instance.Fire(new FinishLoadLevel(CurrentSaveInfo.CurrentLevel)); ParallelTasks BackButtonAppearTask = BackButton.GetComponent <GameButton>().GetAppearTask(); while (!BackButtonAppearTask.IsFinished) { BackButtonAppearTask.Update(); yield return(null); } BackButton.GetComponent <BoxCollider2D>().enabled = true; } }
public override void Reset () { loadLevelType = LoadLevelType.LoadLevel; }