private Flow InitializeFlowScript(CurrentState flowType, int progressPoint, bool sceneAlreadyLoaded) { Flow newFlow; switch (flowType) { case CurrentState.MainMenu: newFlow = new MainMenuFlow(); break; case CurrentState.Game: newFlow = new GameFlow(); break; case CurrentState.Tutorial: newFlow = new TutorialFlow(); break; default: return(null); } if (!sceneAlreadyLoaded) { SceneManager.sceneLoaded -= OnSceneLoaded; //Clean any listener already on SceneManager.sceneLoaded += OnSceneLoaded; //Delay flow initialization until } else { newFlow.Initialize(progressPoint); } return(newFlow); }
public override void Initialize(int progressNumber) { tutorialFlow = this; tutGameLinks = GameObject.FindObjectOfType <TutorialGameLinks>(); //Initial setup //tutGameLinks delgStack = new Queue <tutEventDelg>(); delgStack.Enqueue(() => { SetTutorialText("Tutorial_1"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_2"); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.gridImg.gameObject.SetActive(true); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_3"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_4"); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.gridLinesRocket.gameObject.SetActive(true); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_5"); ProgressTracker.Instance.SubmitProgress(2); }); //Solve the X,Y cordinate problem delgStack.Enqueue(() => { SetTutorialText("Tutorial_6"); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.tutorialNextButton.SetActive(false); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.xFieldObject.SetActive(true); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.yFieldObject.SetActive(true); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.fieldSubmitButton.SetActive(true); ProgressTracker.Instance.SubmitProgress(3); }); //Disable that stuff, go back to normal tutorial flow delgStack.Enqueue(() => { tutGameLinks.tutorialNextButton.SetActive(true); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.fieldSubmitButton.SetActive(false); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.xFieldObject.SetActive(false); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.yFieldObject.SetActive(false); goNext = true; }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_7"); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.gridLinesAstroid.gameObject.SetActive(true); ProgressTracker.Instance.SubmitProgress(4); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_8"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_9"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_10"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_11"); }); delgStack.Enqueue(() => { tutGameLinks.rocketFuncLine.SetActive(true); goNext = true; }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_12"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_13"); ProgressTracker.Instance.SubmitProgress(5); }); //switching over to the micro text delgStack.Enqueue(() => { SetMicroPanelTutorialText("Tutorial_14"); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.tutorialText.transform.parent.gameObject.SetActive(false); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.microPanelText.transform.parent.gameObject.SetActive(true); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.astroidFuncLine.SetActive(true); }); delgStack.Enqueue(() => { SetMicroPanelTutorialText("Tutorial_15"); ProgressTracker.Instance.SubmitProgress(6); }); //Swap back to normal text delgStack.Enqueue(() => { tutGameLinks.tutorialText.transform.parent.gameObject.SetActive(true); goNext = true; }); delgStack.Enqueue(() => { tutGameLinks.microPanelText.transform.parent.gameObject.SetActive(false); goNext = true; }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_16"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_17"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_18"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_19"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_20"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_21"); }); delgStack.Enqueue(() => { SetTutorialText("Tutorial_22"); ProgressTracker.Instance.SubmitProgress(7); }); //delgStack.Enqueue(() => { ProgressTracker.Instance.SubmitProgress(2->6); }); delgStack.Enqueue(() => { GameObject.FindObjectOfType <MainScript>().GoToNextFlow(CurrentState.Game); }); ProgressStack(); //LOLAudio.Instance.ClearDisabledSounds(); //initialized = true; }
private void Start() { if (this.thisIsAFreshGame) { //Play tutorial this.tutorialFlow = TutorialFlow.Instance; this.inTutorialMode = true; SceneManager.LoadSceneAsync("Tutorial", LoadSceneMode.Additive); this.tutorialScene = SceneManager.GetSceneByName("Tutorial"); //this.tutorialFlow.Initialise(); this.thisIsAFreshGame = false; } else { //Play game this.gameFlow = GameFlow.Instance; this.gameFlow.Initialise(this.level); this.inGameMode = true; SceneManager.LoadSceneAsync("GamePlay", LoadSceneMode.Additive); this.gamePanel.gameObject.SetActive(true); } }