Files
PacManUdon/Assets/Scripts/Sequences/AttractScreenDemo.cs
2026-06-18 11:03:56 +02:00

349 lines
13 KiB
C#

using UnityEngine;
namespace Marro.PacManUdon
{
public partial class GameManager
{
private void TimeSequenceStepAttractScreenDemo(int sequenceProgress)
{
switch (sequenceProgress)
{
case 0:
PrepareForCutscene();
SetGameState(PacManGameState.AttractModeDemo);
break;
case 1:
InitializeLevel();
SetMazeVisible(true);
SetLevel(1);
break;
case 2:
// Setup ghosts
ghostManager.Ghosts[0].SetPredefinedPath(new Direction[]{ // Blinky
Direction.Up,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Zero,
Direction.Down,
Direction.Right,
Direction.Up,
Direction.Zero,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Zero,
Direction.Left,
Direction.Up,
Direction.Zero,
Direction.Left,
Direction.Up,
Direction.Right,
// Goes through tunnel
Direction.Zero,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Zero,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Down,
Direction.Left,
// Gets eaten
Direction.Zero,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
});
ghostManager.Ghosts[1].SetPredefinedPath(new Direction[]{ // Pinky
Direction.Up,
Direction.Left,
Direction.Down,
Direction.Zero,
Direction.Zero,
Direction.Left,
Direction.Up,
Direction.Right,
// Pellet starts
Direction.Down,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Down,
Direction.Right,
// Pellet ends
Direction.Zero,
Direction.Up,
// Pellet starts
Direction.Left,
Direction.Up,
Direction.Zero,
Direction.Left,
// Caught
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Right,
// Home
Direction.Up,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Up,
Direction.Zero,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Zero,
Direction.Up,
Direction.Left,
// Power pellet active
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Down
});
ghostManager.Ghosts[2].SetPredefinedPath(new Direction[]{ // Inky
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Zero,
Direction.Zero,
Direction.Up,
Direction.Right,
// Pellet starts
Direction.Down,
Direction.Right,
Direction.Down,
// Caught
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Zero,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Zero,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Down,
Direction.Left
});
ghostManager.Ghosts[3].SetPredefinedPath(new Direction[]{ // Clyde
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Zero,
Direction.Left,
Direction.Zero,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Down,
Direction.Right
});
pacMan.SetPredefinedPath(new Direction[]{
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Right,
Direction.Zero,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Zero,
Direction.Down,
Direction.Zero,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Down,
Direction.Zero,
Direction.Zero,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Zero,
Direction.Down,
Direction.Left,
Direction.Up,
Direction.Zero,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Up,
Direction.Zero,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Zero,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Up,
Direction.Right,
Direction.Down,
Direction.Right,
Direction.Zero,
Direction.Up,
Direction.Left,
Direction.Up,
Direction.Right,
Direction.Up,
Direction.Left,
Direction.Zero,
Direction.Zero,
Direction.Down,
Direction.Right,
Direction.Down,
Direction.Left,
Direction.Down,
Direction.Right,
});
break;
case 3:
SetPelletsActive(true);
collisionManager.RestoreAllPellets();
statusDisplay.SetGameOverTextVisible(true);
break;
case 4:
// Show pacman, show ghosts
SetPacManActive(true);
SetGhostsActive(true);
break;
case 5:
// Unfreeze
SetFrozen(false);
break;
case 6:
break;
}
}
private void TimeSequenceFinishedAttractScreenDemo()
{
StartTimeSequence(PacManTimeSequence.AttractScreenWaitToRestart);
}
}
}