diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index b2eed48..57c7f71 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -192,6 +192,13 @@ namespace Marro.PacManUdon pelletManager.SetPowerPelletsBlink(false); } + private void PrepareForCutscene() + { + HideEverything(); + RestartLevel(); + SetFrozen(true); + } + public void GotPellet(bool addScore = true) { pelletCountRemaining--; diff --git a/Assets/Scripts/Sequences/AttractScreenDemo.cs b/Assets/Scripts/Sequences/AttractScreenDemo.cs index 84fea9f..25551e1 100644 --- a/Assets/Scripts/Sequences/AttractScreenDemo.cs +++ b/Assets/Scripts/Sequences/AttractScreenDemo.cs @@ -9,9 +9,9 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + SetGameState(PacManGameState.AttractModeDemo); - HideEverything(); - SetFrozen(true); break; case 1: InitializeLevel(); @@ -19,9 +19,7 @@ namespace Marro.PacManUdon SetLevel(1); break; case 2: - // Reset ghosts - RestartLevel(); - + // Setup ghosts ghostManager.Ghosts[0].SetPredefinedPath(new Vector2[]{ // Blinky Vector2.down, Vector2.left, diff --git a/Assets/Scripts/Sequences/AttractScreenIntroduction.cs b/Assets/Scripts/Sequences/AttractScreenIntroduction.cs index 0d0cafc..d19fc62 100644 --- a/Assets/Scripts/Sequences/AttractScreenIntroduction.cs +++ b/Assets/Scripts/Sequences/AttractScreenIntroduction.cs @@ -9,13 +9,12 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + SetGameState(PacManGameState.AttractMode); // Initialize soundManager.SuppressSound(true); - RestartLevel(); - HideEverything(); - SetFrozen(true); attractScreen.gameObject.SetActive(true); attractScreen.Initialize(); for (int i = 0; i <= 15; i++) diff --git a/Assets/Scripts/Sequences/Intermission1.cs b/Assets/Scripts/Sequences/Intermission1.cs index b24ed95..c7f7b93 100644 --- a/Assets/Scripts/Sequences/Intermission1.cs +++ b/Assets/Scripts/Sequences/Intermission1.cs @@ -11,8 +11,9 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + // Show just level display - RestartLevel(); statusDisplay.SetLevelDisplayVisible(true); break; case 1: @@ -20,7 +21,6 @@ namespace Marro.PacManUdon soundManager.SuppressSound(false); soundManager.StartIntermissionSound(); - pacMan.Reset(); pacMan.SetLevel(4); pacMan.SetPowerPellet(false); // Update speed pacMan.SetKinematic(true); @@ -28,7 +28,6 @@ namespace Marro.PacManUdon pacMan.SetPosition(intermissionScreenElements[0].transform.localPosition); pacMan.SetDirection(Vector2.left); - ghostManager.Reset(); ghostManager.SetLevel(5); ghostManager.SetKinematic(true); ghostManager.gameObject.SetActive(true); diff --git a/Assets/Scripts/Sequences/Intermission2.cs b/Assets/Scripts/Sequences/Intermission2.cs index 84f956d..258febb 100644 --- a/Assets/Scripts/Sequences/Intermission2.cs +++ b/Assets/Scripts/Sequences/Intermission2.cs @@ -11,8 +11,9 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + // Show just level display - RestartLevel(); statusDisplay.SetLevelDisplayVisible(true); break; case 1: @@ -27,7 +28,6 @@ namespace Marro.PacManUdon break; case 3: // Start animation, pacman running and blinky prepared to chase - pacMan.Reset(); pacMan.SetLevel(4); pacMan.SetPowerPellet(false); // Update speed pacMan.SetKinematic(true); @@ -35,7 +35,6 @@ namespace Marro.PacManUdon pacMan.SetPosition(intermissionScreenElements[0].transform.localPosition); pacMan.SetDirection(Vector2.left); - ghostManager.Reset(); ghostManager.SetLevel(5); ghostManager.SetKinematic(true); ghostManager.gameObject.SetActive(true); diff --git a/Assets/Scripts/Sequences/Intermission3.cs b/Assets/Scripts/Sequences/Intermission3.cs index 3b25713..366ce85 100644 --- a/Assets/Scripts/Sequences/Intermission3.cs +++ b/Assets/Scripts/Sequences/Intermission3.cs @@ -11,8 +11,9 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + // Show just level display - RestartLevel(); statusDisplay.SetLevelDisplayVisible(true); break; case 1: @@ -20,7 +21,6 @@ namespace Marro.PacManUdon soundManager.SuppressSound(false); soundManager.StartIntermissionSound(); - pacMan.Reset(); pacMan.SetLevel(4); pacMan.SetPowerPellet(false); // Update speed pacMan.SetKinematic(true); @@ -28,7 +28,6 @@ namespace Marro.PacManUdon pacMan.SetPosition(intermissionScreenElements[0].transform.localPosition); pacMan.SetDirection(Vector2.left); - ghostManager.Reset(); ghostManager.SetLevel(5); ghostManager.SetKinematic(true); ghostManager.gameObject.SetActive(true); diff --git a/Assets/Scripts/Sequences/StartNewGame.cs b/Assets/Scripts/Sequences/StartNewGame.cs index 85aa9bd..0285b59 100644 --- a/Assets/Scripts/Sequences/StartNewGame.cs +++ b/Assets/Scripts/Sequences/StartNewGame.cs @@ -12,12 +12,10 @@ namespace Marro.PacManUdon // Prepare new game, hide everything except score bar gameState = PacManGameState.InGame; - HideEverything(); - InitializeNewGame(); InitializeLevel(); - RestartLevel(); - SetFrozen(true); + PrepareForCutscene(); + soundManager.SuppressSound(false); soundManager.PlayGameStartSound(); break; diff --git a/Assets/Scripts/Sequences/StartNewLevel.cs b/Assets/Scripts/Sequences/StartNewLevel.cs index 2c4a8eb..47c886f 100644 --- a/Assets/Scripts/Sequences/StartNewLevel.cs +++ b/Assets/Scripts/Sequences/StartNewLevel.cs @@ -7,9 +7,10 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + // Reset, show maze and score display InitializeLevel(); - RestartLevel(); SetMazeVisible(true); statusDisplay.SetScoreDisplayVisible(true); break; diff --git a/Assets/Scripts/Sequences/WaitForStart.cs b/Assets/Scripts/Sequences/WaitForStart.cs index bfcb7e9..4506bef 100644 --- a/Assets/Scripts/Sequences/WaitForStart.cs +++ b/Assets/Scripts/Sequences/WaitForStart.cs @@ -7,8 +7,9 @@ namespace Marro.PacManUdon switch (sequenceProgress) { case 0: + PrepareForCutscene(); + SetGameState(PacManGameState.WaitForStart); - HideEverything(); soundManager.SuppressSound(false); soundManager.PlayCoinSound(); break;