// Loads the entire Prison with a certain level public void BuildAndLoadPrison() { Debug.Log("BuildAndLoadPrison"); string PrisonLevelLabel = "P" + PrisonSelected + "_L" + LevelSelected + "_"; List<Phase> LevelPhases = new List<Phase>(); bool FoundCurrentTask = false; for(int i = 1; i < 5; i++) // 4 phases in each level { int taskInPhase = LevelTracker.GetNumberOfTasksInPhase (PrisonLevelLabel + "PH" + i + "_TN"); // Get # tasks in phase List<Task> Tasks = new List<Task>(); for (int j = 1; j < taskInPhase + 1; j++) { Task TaskToCheck = new Task(PrisonSelected, LevelSelected, i, j); if(!TaskToCheck.IsTaskCompleted() && !FoundCurrentTask) { CurrentTask = TaskToCheck; FoundCurrentTask = true; } Tasks.Add(TaskToCheck); } LevelPhases.Add (new Phase(PrisonSelected, LevelSelected, i, Tasks)); } Level Level = new Level(PrisonSelected, LevelSelected, LevelPhases); CurrentLevel = Level; List<Level> Levels = new List<Level>(); Prison Prison = new Prison(PrisonSelected, Levels); CurrentPrison = Prison; GameManager.ObjectiveScreen.ResetAll(); // Signal the Task Tracker that everything is ready for action GameManager.TaskTracker.Initialize(); }
/*This method will automatically save a Tasks progress in PlayerPrefs - is used for when the task is completed or incomplete*/ public static void TrackTaskProgress(Task TaskInProgress) { //get level/prison/task from level builder //task completed string Label = "P" + TaskInProgress.GetPrison() + "_" + "L" + TaskInProgress.GetLevel() + "_" + "PH" + TaskInProgress.GetPhase() + "_" + "T" + TaskInProgress.GetOrder(); int Progress = TaskInProgress.IsTaskCompleted() ? 1 : 0; PlayerPrefs.GetInt (Label); PlayerPrefs.SetInt(Label, Progress); }