/// <summary> /// Transition to new state /// </summary> private void UpdateState() { if (!shipController) { shipController = GameObject.FindGameObjectWithTag("Player").GetComponent <ShipController>(); } HealthAndShields healthAndShields = shipController.GetComponent <HealthAndShields>(); switch (gameState) { case GameState.BATTLE: MusicManager.instance.RandomTrack(MusicTrackType.COMBAT); healthAndShields.Invincible = false; shipController.Warping = false; //WarpEffectBehaviour.instance.WarpTransitionSpeed = 40; WarpEffectBehaviour.instance.EndWarp(); startup = false; break; case GameState.BATTLE_END: MusicManager.instance.RandomTrack(MusicTrackType.NON_COMBAT); healthAndShields.ResetValues(); healthAndShields.Invincible = true; AreaManager.Instance.EndArea(); break; case GameState.PAUSE: break; case GameState.WARPING: shipController.Warping = true; shipController.Freeze = false; shipController.StopThrust = false; shipController.AlignGunnerWithPilot(); if (!startup) { WarpEffectBehaviour.instance.StartWarp(); } //AreaManager.Instance.LoadNewArea(); StartCoroutine(DelayedAreaLoad()); break; case GameState.GAME_OVER: case GameState.VICTORY: StartCoroutine(DelayedExit()); break; } }
public virtual void ResetEnemy() { StopAllCoroutines(); if (health) { health.ResetValues(); } if (thrusters) { thrusters.SetActive(false); } transform.position = spawnpoint; transform.rotation = Quaternion.LookRotation(spawnDestination - spawnpoint); if (thrusters) { thrusters.SetActive(true); } PerformTransition(Transition.Reset); }