public void GetPCGLevels(List <string> levels) { if (levels != null) { levRef.levels.pcg.Clear(); List <LevelReferenceObject> refs = new List <LevelReferenceObject>(); for (int i = 0; i < levels.Count; i++) { if (levels[i] != "") { LevelReferenceObject lro = new LevelReferenceObject(); lro.file = "levelX"; lro.title = "X"; if (i < 10) { lro.file += 0; lro.title += 0; } lro.file += i; lro.title += i; lro.data = GameManager.Instance.GetSaveManager().currentSave.pcgLevels[i]; lro.levelId = i; lro.completionRank = 0; refs.Add(lro); } } levRef.levels.pcg = refs; } }
void SetupLevelButton(LevelReferenceObject lr, Transform container, bool pcg) { char[] trimArray = new char[5] { 'L', 'l', 'e', 'v', ' ' }; string levelName = lr.file; GameObject g = Instantiate(loadUI.levelButtonPrefab) as GameObject; LevelButtonBehavior buttonInstance = g.GetComponent <LevelButtonBehavior>(); if (buttonInstance != null) { buttonInstance.SetLevelSprite(pcg, lr.completionRank > 0); buttonInstance.SetLevelRank(lr.GetLevelCompletionRank()); } Button gButton = g.GetComponent <Button>(); g.transform.SetParent(container); g.transform.localScale = Vector3.one; Text gText = g.GetComponentInChildren <Text>(); gText.text = levelName.TrimStart(trimArray); if (!pcg) { gButton.onClick.AddListener(() => LoadButtonBehavior(levelName)); } else { gButton.onClick.AddListener(() => LoadPCGButtonBehavior(lr.data)); } }
public void TriggerAdvanceToNextLevel() { LevelReferenceObject nextLevel = dataManager.GetNextLevel(currentLevelReferenceObject); Debug.Log("Next level is: " + nextLevel.levelId); TriggerLoadLevel(DataManager.LoadType.RESOURCES, nextLevel.file); }
public void TriggerLoadLevel(bool restartPhase = false, DataManager.LoadType loadType = DataManager.LoadType.RESOURCES, string inputLevelName = "") { tracker.ResetModelLog(); if (inputLevelName.Length == 0) { inputLevelName = dataManager.levelname; } dataManager.InitializeLoadLevel(inputLevelName, loadType); LevelReferenceObject levRef = dataManager.GetLevelByFile(inputLevelName); if (levRef != null) { currentLevelReferenceObject = levRef; } InitiateTrackGeneration(restartPhase); if (restartPhase) { SetGamePhase(GamePhases.PlayerInteraction); } if (loadType == DataManager.LoadType.STRING) { tracker.CreateEventExt("TriggerLoadLevel", currentLevelReferenceObject.file); } else { tracker.CreateEventExt("TriggerLoadLevel", inputLevelName); } }
void SetupSolutions() { for (int i = 0; i < solutions.Length; i++) { LevelReferenceObject l = GameManager.Instance.GetDataManager().GetLevelById(i); if (l != null) { if (solutions[i].attemptCount < 2) { solutions[i].attemptCount = 2; } if (solutions[i].completed == false) { solutions[i].completed = true; } if (solutions[i].index != i) { solutions[i].index = i; } if (solutions[i].stepCount != GameManager.Instance.GetDataManager().GetLevelEfficiency(l.file)) { solutions[i].stepCount = (int)GameManager.Instance.GetDataManager().GetLevelEfficiency(l.file); } } } }
public void LoadButtonBehavior(LevelReferenceObject levelReference) { loadUI.levelLoadingOverlay.OpenPanel(); try { GameManager.Instance.TriggerLoadLevel(levelReference); } catch (System.Exception e) { loadUI.levelLoadingOverlay.ClosePanel(); DisplayError("Level Loading Failed", "An error was encountered while loading the level, if this issue persists, please contact the research team."); } }
public void TriggerLoadLevel(DataManager.LoadType loadType = DataManager.LoadType.RESOURCES, string inputLevelName = "") { Debug.Log(loadType); tracker.CreateEventExt("TriggerLoadLevel", inputLevelName); if (inputLevelName.Length == 0) { inputLevelName = dataManager.levelname; } dataManager.InitializeLoadLevel(inputLevelName, loadType); LevelReferenceObject levRef = dataManager.GetLevelByFile(inputLevelName); if (levRef != null) { currentLevelReferenceObject = levRef; } //TODO: Since this gets called when a simulation completes and re-opens everything, it can cause bugs with the tutorials loading SetGamePhase(GameManager.GamePhases.GenerateTrack); }
public LevelReferenceObject GetNextLevel(LevelReferenceObject currentLevelRef) { bool levelFound = false; foreach (LevelReferenceObject l in levRef.levels.required) { if (levelFound) { return(l); } if (l.levelId == currentLevelRef.levelId) { levelFound = true; } } foreach (LevelReferenceObject l in levRef.levels.previous) { if (levelFound) { return(l); } if (l.levelId == currentLevelRef.levelId) { levelFound = true; } } foreach (LevelReferenceObject l in levRef.levels.optional) { if (levelFound) { return(l); } if (l.levelId == currentLevelRef.levelId) { levelFound = true; } } Debug.LogError("No level after " + currentLevelRef.file + " found"); return(null); }
public void TriggerLoadLevel(LevelReferenceObject inputLevelReferenceObject) { currentLevelReferenceObject = inputLevelReferenceObject; TriggerLoadLevel(DataManager.LoadType.RESOURCES, inputLevelReferenceObject.file); }
public void LoadButtonBehavior(LevelReferenceObject levelReference) { loadUI.levelLoadingOverlay.OpenPanel(); GameManager.Instance.TriggerLoadLevel(levelReference); }
public void TriggerLoadLevel(LevelReferenceObject inputLevelReferenceObject) { tracker.ResetModelLog(); currentLevelReferenceObject = inputLevelReferenceObject; TriggerLoadLevel(true, DataManager.LoadType.RESOURCES, inputLevelReferenceObject.file); }