public void PerformTutorialSeries(int inputLevelId, TutorialEvent.TutorialInitializeTriggers inputInitPhase = TutorialEvent.TutorialInitializeTriggers.beforePlay) { Debug.Log("perform tutorial series"); List <TutorialEvent> returnEvents = RetrieveTutorialEvents(inputLevelId, inputInitPhase); currentTutorialEventQueue = returnEvents.ToArray(); tutorialEventIndex = 0; if (currentTutorialEventQueue.Length > 0) { InitializeCurrentTutorialEvent(); } /* * List<TutorialScreen> returnDisplays = RetrieveTutorialDisplays( inputLevelId ); * //tutorialIndex = 0; * if(returnDisplays.Count >= 0) * { * tutorialDisplays = returnDisplays.ToArray(); * InitializeTutorial(); * } * else * { * tutorialImageTriggerObject.gameObject.SetActive(false); * tutorialMovieTriggerObject.gameObject.SetActive(false); * } */ }
List <TutorialEvent> RetrieveTutorialEvents(int inputLevelId, TutorialEvent.TutorialInitializeTriggers inputInitPhase) { Debug.Log("Retrieving Tutorial Events... Level " + inputLevelId + " Phase " + inputInitPhase.ToString()); List <TutorialEvent> returnEvents = new List <TutorialEvent>(); PlayerInteraction_GamePhaseBehavior p = (PlayerInteraction_GamePhaseBehavior)GameManager.Instance.playerInteractionBehavior; foreach (TutorialEvent t in tutorialEvents) { if (t.init_trigger == inputInitPhase) { if (t.levelNumber == inputLevelId && !t.hasCompleted) { returnEvents.Add(t); } } else if (t.init_trigger != inputInitPhase && returnEvents.Count > 0) { break; } } foreach (TutorialEvent t in returnEvents) { Debug.Log("TUTORIAL QUEUED: " + t.popupDescription + "\n"); } return(returnEvents); }
List <TutorialEvent> RetrieveTutorialEvents(int inputLevelId, TutorialEvent.TutorialInitializeTriggers inputInitPhase) { //Debug.Log("Retrieving Tutorial Events... Level " + inputLevelId + " Phase " + inputInitPhase.ToString()); List <TutorialEvent> returnEvents = new List <TutorialEvent>(); PlayerInteraction_GamePhaseBehavior p = (PlayerInteraction_GamePhaseBehavior)GameManager.Instance.playerInteractionBehavior; bool foundSimEvents = false; //triggered once events made to play during the simulation are found, prevents queuing of beforePlay events that follow it int currentSequence = -1; foreach (TutorialEvent t in tutorialEvents) { if (t.levelNumber == inputLevelId && !t.hasCompleted) { if (t.init_trigger == TutorialEvent.TutorialInitializeTriggers.duringSimulation) { foundSimEvents = true; } else if (t.init_trigger == TutorialEvent.TutorialInitializeTriggers.beforePlay && foundSimEvents == true) { break; } if (currentSequence == -1) { currentSequence = t.sequenceId; } if (currentSequence == t.sequenceId) { returnEvents.Add(t); } } else if (t.levelNumber > inputLevelId) { break; } /*if (t.init_trigger == inputInitPhase) * { * if (t.levelNumber == inputLevelId && !t.hasCompleted) returnEvents.Add(t); * }*/ //else if (t.init_trigger != inputInitPhase && returnEvents.Count > 0) break; } foreach (TutorialEvent t in returnEvents) { } //Debug.Log("TUTORIAL QUEUED: " + t.popupDescription + "\n"); return(returnEvents); }
public void TriggerLevelTutorial(int inputLevelId, TutorialEvent.TutorialInitializeTriggers inputPlayPhase = TutorialEvent.TutorialInitializeTriggers.beforePlay) { tutorialManager.PerformTutorialSeries(inputLevelId, inputPlayPhase); }