Example #1
0
    /// <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;
        }
    }
Example #2
0
    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);
    }