// Start is called before the first frame update private void Start() { // initialize class variables this.mainCamera = Camera.main; // Initialize Camera this.InitCamera(); // this.InitSun(); // Disable boss health bar until needed healthBar.gameObject.SetActive(false); timeRemaining.gameObject.SetActive(false); attackNameText.gameObject.SetActive(false); // Start Music audioManager.Play(); sliptime = GameObject.Find("SlipTimeManager").GetComponent <SlipTimeManager>(); playerLiving = GameObject.Find("Player").GetComponent <Living>(); // Load enemy prefabs GameObject saucer1 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SEE")); GameObject saucer2 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SWW")); GameObject saucer3 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SSE")); GameObject saucer4 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SSW")); GameObject saucer5 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SWnwLa3")); GameObject saucer6 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SEneLa3")); GameObject saucer7 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SEELa5")); GameObject saucer8 = Resources.Load <GameObject>(Path.Combine("Enemies", "SaucerDrone_SWWLa5")); GameObject roid1 = Resources.Load <GameObject>(Path.Combine("Enemies", "Roid_EELS10")); GameObject roid2 = Resources.Load <GameObject>(Path.Combine("Enemies", "Roid_WWLS10")); GameObject roid3 = Resources.Load <GameObject>(Path.Combine("Enemies", "Roid_SSLs10")); GameObject bomber1 = Resources.Load <GameObject>(Path.Combine("Enemies", "Bomber_SNSaLa3")); GameObject bomber2 = Resources.Load <GameObject>(Path.Combine("Enemies", "Bomber_SNS")); GameObject midboss = Resources.Load <GameObject>(Path.Combine("Enemies", "MidBoss")); GameObject boss = Resources.Load <GameObject>(Path.Combine("Enemies", "Boss")); bossObject = boss; // Load the enemy queue /* * 00:00 - 00:10 */ // A wave of small ships moving top left to mid-right les.CurvedWave(10, 12f, saucer1, new Vector3(-6, 7, 0), EntrySide.Left); // A wave of small ships moving top right to mid-left les.CurvedWave(10, 13f, saucer2, new Vector3(6, 7, 0), EntrySide.Right); // A wave of small ships that move in from the top and leave from the sides les.TopWave(10, 17f, saucer3, new Vector3(1, 7, 0), EntrySide.Right, 1); les.TopWave(10, 17f, saucer4, new Vector3(-1, 7, 0), EntrySide.Left, 1); /* * 00:12 - 00:40 */ // A wave of doubled ships moving from top left to mid-right les.CurvedWave(10, 22f, saucer1, new Vector3(-6, 7, 0), EntrySide.Left, 2); // Meanwhile, some shooter ships enter from top right les.TopRow(5, 24f, saucer6, new Vector3(4, 7, 0), EntrySide.Right); // A wave of doubled ships moving from top right to mid-left les.CurvedWave(10, 26f, saucer2, new Vector3(6, 7, 0), EntrySide.Right, 2); // Meanwhile, some shooter ships enter from top left les.TopRow(5, 28f, saucer5, new Vector3(-4, 7, 0), EntrySide.Left); les.TopRow(15, 32f, saucer6, new Vector3(4, 8, 0), EntrySide.Right); les.TopRow(15, 36f, saucer6, new Vector3(4, 8.5f, 0), EntrySide.Right); // A wave of ships down the center to shoot down, while waves enter from corners with buckets of kill shots les.TopWave(15, 40f, saucer4, new Vector3(-1, 8, 0), EntrySide.Left, 1); les.TopWave(15, 40f, saucer3, new Vector3(1, 8, 0), EntrySide.Right, 1); les.CurvedWave(10, 42f, saucer7, new Vector3(-6, 7, 0), EntrySide.Left, 1, 0.7f); les.TopWave(15, 46f, saucer4, new Vector3(-1, 8, 0), EntrySide.Left, 1); les.TopWave(15, 46f, saucer3, new Vector3(1, 8, 0), EntrySide.Right, 1); les.CurvedWave(10, 48f, saucer8, new Vector3(6, 7, 0), EntrySide.Right, 1, 0.7f); /* * 00:40 - 01:21 */ // Bomber from top to constrain followed by killshot waves les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(0, 7, 0), spawnTime = 52f }); les.CurvedWave(10, 54f, saucer7, new Vector3(-6, 7, 0), EntrySide.Left, 1, 0.7f); // Two bombers with a wave les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(-1, 7, 0), spawnTime = 58f }); les.CurvedWave(10, 59f, saucer8, new Vector3(6, 7, 0), EntrySide.Right, 1, 0.7f); les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(1, 7, 0), spawnTime = 63f }); les.CurvedWave(10, 64f, saucer7, new Vector3(-6, 7, 0), EntrySide.Right, 1, 0.7f); les.TopWave(15, 70f, saucer4, new Vector3(-1, 8, 0), EntrySide.Left, 1); les.TopWave(15, 70f, saucer3, new Vector3(1, 8, 0), EntrySide.Right, 1); les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(-3, 7, 0), spawnTime = 71f }); les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(3, 7, 0), spawnTime = 71f }); les.CurvedWave(15, 75f, saucer1, new Vector3(-6, 7, 0), EntrySide.Left, 1, 0.7f); les.CurvedWave(15, 75f, saucer2, new Vector3(6, 7, 0), EntrySide.Right, 1, 0.7f); les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(-3, 7, 0), spawnTime = 76f }); les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(3, 7, 0), spawnTime = 76f }); les.Add(new EnemySpawn { enemy = bomber2, spawnPosition = new Vector3(0, 7, 0), spawnTime = 81f }); /* * 01:26 - 01:35 -- build to midboss */ // Cue midboss build track spawnQueue = les.GetSpawnQueue(); playSongWhenSpawnEnemyCount.Add(spawnQueue.Count); // Bomber from top to constrain followed by killshot waves les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(0, 7, 0), spawnTime = 86f }); les.CurvedWave(10, 87f, saucer7, new Vector3(-6, 7, 0), EntrySide.Left, 1, 0.7f); // Two bombers with a wave les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(-1, 7, 0), spawnTime = 90f }); les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(1, 7, 0), spawnTime = 90f }); les.CurvedWave(10, 91f, saucer8, new Vector3(6, 7, 0), EntrySide.Right, 1, 0.7f); // Three bombers with two waves les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(0, 7, 0), spawnTime = 95f }); les.CurvedWave(10, 96f, saucer7, new Vector3(-6, 7, 0), EntrySide.Left, 1, 0.7f); les.CurvedWave(10, 96f, saucer8, new Vector3(6, 7, 0), EntrySide.Right, 1, 0.7f); // MIDBOSS les.Add(new EnemySpawn { enemy = midboss, spawnPosition = new Vector3(0, 4f, 0), spawnTime = 109f, waitUntilDead = true }); /* * 2:10 - 2:40 */ // Have you played EoSD Stage 4? les.CurvedWave(5, 110f, roid1, new Vector3(-5, 3, 0), EntrySide.Left); // Trigger post-midboss level track. spawnQueue = les.GetSpawnQueue(); playSongWhenSpawnEnemyCount.Add(spawnQueue.Count); les.CurvedWave(5, 115f, roid2, new Vector3(5, 3.5f, 0), EntrySide.Right); les.TopWave(5, 120f, roid3, new Vector3(-3, 6, 0), EntrySide.Left); les.CurvedWave(5, 125f, roid2, new Vector3(5, 4f, 0), EntrySide.Right); les.TopWave(5, 130f, roid3, new Vector3(3, 6, 0), EntrySide.Right); les.CurvedWave(5, 135f, roid1, new Vector3(-5, 4, 0), EntrySide.Left); les.TopWave(5, 140f, roid3, new Vector3(3, 6, 0), EntrySide.Right); /* * 2:40 - 3:00 */ les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(3, 6, 0), spawnTime = 145 }); les.CurvedWave(5, 146, roid1, new Vector3(-5, 3, 0), EntrySide.Left); les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(-3, 6, 0), spawnTime = 151 }); les.CurvedWave(5, 152, roid2, new Vector3(5, 3, 0), EntrySide.Right); les.Add(new EnemySpawn { enemy = bomber1, spawnPosition = new Vector3(0, 6, 0), spawnTime = 157 }); les.CurvedWave(5, 158, roid2, new Vector3(5, 3, 0), EntrySide.Right); les.CurvedWave(5, 158, roid1, new Vector3(-5, 3, 0), EntrySide.Left); // Cue outro track spawnQueue = les.GetSpawnQueue(); playSongWhenSpawnEnemyCount.Add(spawnQueue.Count); les.TopRow(5, 164, roid3, new Vector3(-4, 5, 0), EntrySide.Left); les.TopRow(5, 170, roid3, new Vector3(4, 5, 0), EntrySide.Right); // BOSS les.Add(new EnemySpawn { enemy = boss, spawnPosition = new Vector3(0, 4f, 0), spawnTime = 180f, waitUntilDead = true }); // Sort list by time and convert to queue spawnQueue = les.GetSpawnQueue(); //playSongWhenSpawnEnemyCount.Add(spawnQueue.Count); }
public void SetData(SlipTimeManager slipTimeManager, Vector3 localScale, float maxTimeAlive) { this.slipTimeManager = slipTimeManager; transform.localScale = localScale; this.maxTimeAlive = maxTimeAlive; }