public void SetGamePhase(GamePhases inputPhase) { Debug.Log("SetGamePhase" + inputPhase.ToString()); if (currentPhase != null) { EndGamePhaseBehavior(); } gamePhase = inputPhase; switch (gamePhase) { case GamePhases.StartScreen: currentPhase = startScreenBehavior; break; case GamePhases.LoadScreen: currentPhase = loadScreenBehavior; tutorialManager.tutorialIndex = 0; tutorialManager.ResetTutorialCompletionData(); break; case GamePhases.GenerateTrack: currentPhase = generateTrackBehavior; break; case GamePhases.PlayerInteraction: currentPhase = playerInteractionBehavior; break; case GamePhases.GradeSubmission: currentPhase = gradeSubmissionBehavior; break; case GamePhases.GradeReport: currentPhase = gradeReportBehavior; break; case GamePhases.EndScreen: currentPhase = endScreenBehavior; break; case GamePhases.CloseGame: currentPhase = exitGameBehavior; break; } BeginGamePhaseBehavior(); }
public void TriggerPhaseTransition(GamePhases inputPhase) { if (_currentPhaseBehavior) { _currentPhaseBehavior.EndPhase(); } foreach (GamePhaseBehavior gpb in gamePhaseBehaviors) { if (gpb.phase == inputPhase) { gpb.StartPhase(); _currentPhaseBehavior = gpb; if (sharedUIReference) { sharedUIReference.SetSharedUIDisplay(_currentPhaseBehavior.sharedUI); } } } }
void FindGamePhaseObjects() { if (FindObjectOfType <Start_GamePhaseBehavior>() != null) { startScreenBehavior = FindObjectOfType <Start_GamePhaseBehavior>(); } if (startScreenBehavior == null) { Debug.LogError("StartBehavior not found or set."); } if (FindObjectOfType <Load_GamePhaseBehavior>() != null) { loadScreenBehavior = FindObjectOfType <Load_GamePhaseBehavior>(); } if (loadScreenBehavior == null) { Debug.LogError("LoadBehavior not found or set."); } if (FindObjectOfType <Generate_GamePhaseBehavior>() != null) { generateTrackBehavior = FindObjectOfType <Generate_GamePhaseBehavior>(); } if (generateTrackBehavior == null) { Debug.LogError("GenerateTrackBehavior not found or set."); } if (FindObjectOfType <PlayerInteraction_GamePhaseBehavior>() != null) { playerInteractionBehavior = FindObjectOfType <PlayerInteraction_GamePhaseBehavior>(); } if (playerInteractionBehavior == null) { Debug.LogError("PlayerInteractionBehavior not found or set."); } if (FindObjectOfType <GradeSubmission_GamePhaseBehavior>() != null) { gradeSubmissionBehavior = FindObjectOfType <GradeSubmission_GamePhaseBehavior>(); } if (gradeSubmissionBehavior == null) { Debug.LogError("GradeSubmissionBehavior not found or set."); } if (FindObjectOfType <GradeReport_GamePhaseBehavior>() != null) { gradeReportBehavior = FindObjectOfType <GradeReport_GamePhaseBehavior>(); } if (gradeReportBehavior == null) { Debug.LogError("GradeReportBehavior not found or set."); } if (FindObjectOfType <EndScreen_GamePhaseBehavior>() != null) { endScreenBehavior = FindObjectOfType <EndScreen_GamePhaseBehavior>(); } if (endScreenBehavior == null) { Debug.LogError("EndScreenBehavior not found or set."); } if (FindObjectOfType <Exit_GamePhaseBehavior>() != null) { exitGameBehavior = FindObjectOfType <Exit_GamePhaseBehavior>(); } if (exitGameBehavior == null) { Debug.LogError("ExitBehavior not found or set."); } }