// Use this for initialization void Start() { em = GetComponentInChildren <EnemyManager>(); //actualStage = Stages.METEORS_TIMEWARP; am = asteroidsDodge.GetComponent <AsteroidsMovement>(); tm = GameObject.FindGameObjectWithTag("Player").GetComponent <TimeManager>(); er = GameObject.Find("EarthHighFullV2").GetComponent <EarthRotation>(); ams = GetComponentInChildren <AudioManagerScript>(); meteorDelayCounter = 0.0f; timewarpDelayCounter = 0.0f; blackScreenCounter = 0.0f; afterWaveCounter = 0.0f; structureMoving = false; bossEnabled = false; meteorsDelayOn = false; managerstartedminiboss = false; timewarpBackgroundDelay = false; blackholeenabled = false; onBlackScreen = false; removeBattleStruct = true; //sm = structure.GetComponent<StructMovement>(); }
// Update is called once per frame void Update() { switch (actualStage) { case Stages.INTRO: if (!em.IsManagerSpawning()) { em.SetIntroWaveIndex(); em.StartManager(); } break; case Stages.METEORS_TIMEWARP: if (afterWaveCounter < secondsAfterEachWave) { afterWaveCounter += Time.unscaledDeltaTime; if (afterWaveCounter >= secondsAfterEachWave) { CleanUpBullets(); } } else { if (!am.AsteroidsAreMoving()) { CleanUpBullets(); if (!meteors) { GameObject obj = Instantiate(Resources.Load("MeteorStormFull 1"), new Vector3(0, 0, 0), new Quaternion()) as GameObject; meteors = obj; am = obj.GetComponentInChildren <AsteroidsMovement>(); asteroidsDodge = am.gameObject; } else { meteors.SetActive(true); } asteroidsDodge.SetActive(true); am.StartMovingAsteroids(); timewarpEffect.SetActive(true); timewarpBackground.SetActive(true); tm.StartTimeWarp(); } } break; case Stages.METEORS_ENEMIES: if (!em.IsManagerSpawning()) { em.SetAsteroidWaveIndex(); TimeBombManager.activateBomb2 = true; tm.StopTimeWarp(); em.StartManager(); meteorsDelayOn = true; timewarpBackgroundDelay = true; timewarpEffect.SetActive(false); afterWaveCounter = 0.0f; } break; case Stages.MINIBOSS_FIRSTPHASE: if (mbs) { if (!mbs.MiniBossStarted()) { mbs.InitiateBoss(); TimeBombManager.activateBomb2 = true; TimeBombManager.activateBomb3 = true; } } else { if (!managerstartedminiboss) { em.SetMiniBossIndex(); if (!em.IsManagerSpawning()) { em.StartManager(); } } } break; case Stages.MINIBOSS_SECONDPHASE: if (!mbs.IsSecondPhase()) { TimeBombManager.activateBomb2 = true; TimeBombManager.activateBomb3 = true; er.StartDownTransition(); structure.SetActive(true); meteorsDelayOn = true; timewarpEffect.SetActive(true); timewarpBackground.SetActive(true); tm.StartTimeWarp(); mbs.StartSecondPhase(); } if (!mbs) { GoToNextStage(); sm = structure.GetComponent <StructMovement>(); sm.StartMovingStruct(); } break; case Stages.STRUCT_TIMEWARP: if (!sm) { structure.SetActive(true); timewarpEffect.SetActive(true); timewarpBackground.SetActive(true); if (!tm.InTimeWarp()) { tm.StartTimeWarp(); } sm = structure.GetComponent <StructMovement>(); sm.StartMovingStruct(); } if (!structureMoving) { structureMoving = true; } break; case Stages.STRUCT_ENEMIES: if (!em.IsManagerSpawning()) { timewarpBackgroundDelay = true; em.SetStructureWaveIndex(); timewarpEffect.SetActive(false); em.StartManager(); tm.StopTimeWarp(); foreach (StructEnemyStageTunnel sest in battleTunnel.GetComponentsInChildren <StructEnemyStageTunnel>()) { sest.enabled = true; } removeBattleStruct = false; } break; case Stages.BOSS_TRANSITION: if (afterWaveCounter < secondsAfterEachWave) { afterWaveCounter += Time.unscaledDeltaTime; if (afterWaveCounter >= secondsAfterEachWave) { CleanUpBullets(); CleanUpEnemies(); } } else { if (!blackholeenabled) { blackHole.SetActive(true); timewarpEffect.SetActive(true); tm.StartTimeWarp(); blackholeenabled = true; } if (!removeBattleStruct) { if (battleTunnel.GetComponentsInChildren <StructEnemyStageTunnel>().Length > 0) { foreach (StructEnemyStageTunnel sest in battleTunnel.GetComponentsInChildren <StructEnemyStageTunnel>()) { sest.FinishSequence(); } } else { Destroy(battleTunnel); removeBattleStruct = true; } } if (onBlackScreen) { if (blackScreenCounter < blackScreenDuration) { blackScreenCounter += Time.deltaTime; } else { GameObject.FindGameObjectWithTag("MainCamera").GetComponent <PostProcessingSwitcher>().SwitchPostProcess(PostProcessingSwitcher.Profiles.MAGNETIC_STORM); GoToNextStage(); } } } break; case Stages.BOSS: if (!bossEnabled) { // Activate boss lights //Destroy(structlights); //bosslights.SetActive(true); if (secondsBeforeBoss > 0.0f) { secondsBeforeBoss -= Time.deltaTime; } else { ams.SetBlackHoleReverb(); tm.StopTimeWarp(); ams.ChangeToBossMusic(); TimeBombManager.activateBomb2 = true; TimeBombManager.activateBomb3 = true; boss.SetActive(true); bossEnabled = true; } } break; case Stages.ESCAPE: GameObject.FindGameObjectWithTag("Player").GetComponent <SwitchablePlayerController>().isEnding = true; GameObject.FindGameObjectWithTag("UI_InGame").GetComponent <ChangeScene>().shutdown = true; break; } if (meteorsDelayOn) { ManageMeteor(); } if (timewarpBackgroundDelay) { ManageTimeWarpBackground(); } }
public void DebugRestartPhase() { switch (actualStage) { case Stages.INTRO: if (!em.IsManagerSpawning()) { em.SetIntroWaveIndex(); em.StartManager(); } break; case Stages.METEORS_TIMEWARP: if (!am.AsteroidsAreMoving()) { if (!meteors) { GameObject obj = Instantiate(Resources.Load("MeteorStormFull 1"), new Vector3(0, 0, 0), new Quaternion()) as GameObject; meteors = obj; am = obj.GetComponentInChildren <AsteroidsMovement>(); asteroidsDodge = am.gameObject; } meteors.SetActive(true); asteroidsDodge.SetActive(true); am.StartMovingAsteroids(); timewarpEffect.SetActive(true); timewarpBackground.SetActive(true); tm.StartTimeWarp(); } break; case Stages.METEORS_ENEMIES: if (!em.IsManagerSpawning()) { em.SetAsteroidWaveIndex(); TimeBombManager.activateBomb2 = true; tm.StopTimeWarp(); em.StartManager(); meteorsDelayOn = true; timewarpBackgroundDelay = true; timewarpEffect.SetActive(false); } break; case Stages.MINIBOSS_FIRSTPHASE: if (mbs) { if (!mbs.MiniBossStarted()) { mbs.InitiateBoss(); TimeBombManager.activateBomb2 = true; TimeBombManager.activateBomb3 = true; } } break; case Stages.MINIBOSS_SECONDPHASE: --actualStage; DebugRestartPhase(); break; case Stages.STRUCT_TIMEWARP: if (!sm) { structure.SetActive(true); timewarpEffect.SetActive(true); timewarpBackground.SetActive(true); if (!tm.InTimeWarp()) { tm.StartTimeWarp(); } sm = structure.GetComponent <StructMovement>(); sm.StartMovingStruct(); } if (!structureMoving) { structureMoving = true; er.StartDownTransition(); } break; case Stages.STRUCT_ENEMIES: if (!em.IsManagerSpawning()) { timewarpBackgroundDelay = true; em.SetStructureWaveIndex(); timewarpEffect.SetActive(false); em.StartManager(); tm.StopTimeWarp(); foreach (StructEnemyStageTunnel sest in battleTunnel.GetComponentsInChildren <StructEnemyStageTunnel>()) { sest.enabled = true; } removeBattleStruct = false; } break; case Stages.BOSS: if (!removeBattleStruct) { if (battleTunnel.GetComponentsInChildren <StructEnemyStageTunnel>().Length > 0) { foreach (StructEnemyStageTunnel sest in battleTunnel.GetComponentsInChildren <StructEnemyStageTunnel>()) { sest.FinishSequence(); } } else { Destroy(battleTunnel); removeBattleStruct = true; } } else { if (!bossEnabled) { TimeBombManager.activateBomb2 = true; TimeBombManager.activateBomb3 = true; boss.SetActive(true); bossEnabled = true; } } break; case Stages.ESCAPE: GameObject.FindGameObjectWithTag("Player").GetComponent <SwitchablePlayerController>().isEnding = true; GameObject.FindGameObjectWithTag("UI_InGame").GetComponent <ChangeScene>().shutdown = true; break; } }