public void LoadLevel(bool refreshLevelColors) { var realLevelNum = PlayerDataController.data.levelNum; var fakeLevelNum = (realLevelNum) % levels.Length; if (GameManager.instance.getNextShapeCor != null) { GameManager.instance.StopCoroutine(GameManager.instance.getNextShapeCor); } GameManager.emptyCellSlots = 81; Player.main.ApplyAndResetGoldInfo(); if (activeLevel != null) { Destroy(activeLevel); } activeLevel = Instantiate(levels[fakeLevelNum]); activeLevelData = activeLevel.GetComponent <LevelData>(); if (refreshLevelColors) { PartTheme newPartTheme = FlatHelper.GetRandomEnumType <PartTheme>(); while (newPartTheme == lastPartTheme) { newPartTheme = FlatHelper.GetRandomEnumType <PartTheme>(); } var loadedTheme = Resources.LoadAll("Parts/" + newPartTheme.ToString(), typeof(Sprite)); lastPartTheme = newPartTheme; activeLevelData.partTheme = newPartTheme; activeLevelData.levelPartSprites = new List <Sprite>(); foreach (var theme in loadedTheme) { activeLevelData.levelPartSprites.Add(theme as Sprite); } PlayerDataController.SaveData("levelPartTheme", (int)newPartTheme); } else { lastPartTheme = activeLevelData.partTheme; } GridConstructer.instance.Init(activeLevelData, false); PlayerDataController.SaveData("isBonusLevel", false); levelText.text = "LEVEL " + realLevelNum; if (PlayerDataController.data.isLevelCompleted) { PlayerDataController.ResetLevelData(); foreach (var mission in activeLevelData.missions) { SaveMissionProgress(mission); } GameManager.instance.GameModeType = activeLevelData.startingMode; GameManager.instance.getNextShapeCor = GameManager.instance.StartCoroutine(GameManager.instance.GetNextShapes()); GameManager.instance.CheckEmptyCellCount(); UIManager.instance.OpenScreen((int)UIManager.Screens.LevelInfoUI); } else { LoadLevelDataFromSave(); } // AdManager.instance.ShowIntersititial("", (name, state) => // { // //state check // }, (name, state) => // { // //complete check // }); }