Ejemplo n.º 1
0
    IEnumerator BeginGame()
    {
        UIManager.Instance.pauseBtn.GetComponent <Animator>().Play("Hide");

        yield return(new WaitForSecondsRealtime(0.9f));

        targetMusicCutoff = 22000;
        targetMusicVolume = 0;

        ScoreSystem.Instance.lockScore = false;
        ScoreSystem.Instance.SetScore(0);
        ScoreSystem.Instance.lockScore = true;

        UIManager.Instance.highScoreModalController.gameObject.SetActive(false);
        UIManager.Instance.blackCutoutController.FadeToVisible();
        playerController.controlsEnabled = true;

        yield return(new WaitForSecondsRealtime(0.9f));

        UIManager.Instance.topHUDController.Show();

        yield return(new WaitForSecondsRealtime(0.2f));

        UIManager.Instance.pauseBtn.GetComponent <Animator>().Play("Show");

        ScoreSystem.Instance.lockScore = false;
        OnGameReady?.Invoke();
    }
Ejemplo n.º 2
0
    IEnumerator RestartGame()
    {
        CameraShake shake = mainEffectManager.GetEffect <CameraShake>();

        UIManager.Instance.highScoreModalController.Hide();
        yield return(new WaitForSecondsRealtime(0.5f));

        UIManager.Instance.highScoreModalController.gameObject.SetActive(false);

        foreach (GameObject asteroid in asteroidPool.objects)
        {
            if (asteroid.activeInHierarchy)
            {
                Vector2 force = new Vector2(asteroid.transform.position.x, asteroid.transform.position.y).normalized;

                Rigidbody2D rb2d = asteroid.GetComponent <Rigidbody2D>();
                rb2d.velocity = force * restartAsteroidRepelForce;
                rb2d.AddTorque(GenericRNG.Instance.NextFloat(-1, 1) * restartAsteroidRepelForce * 30);
            }
        }

        Instantiate(playerReviveParticle, playerController.transform.position, Quaternion.identity);

        playerController.gameObject.SetActive(true);
        playerController.transform.rotation = Quaternion.Euler(0, 0, 90);
        playerController.gameObject.SetActive(false);

        float time = Time.unscaledTime;

        while (Time.unscaledTime - time < 1.6f)
        {
            shake.InduceMotion(0.7f * Time.unscaledDeltaTime);
            yield return(null);
        }

        targetMusicCutoff = 22000;
        targetMusicVolume = 0;

        playerController.gameObject.SetActive(true);
        playerController.controlsEnabled = true;
        playerController.invulnerable    = false;

        shake.InduceMotion(2f);

        yield return(new WaitForSecondsRealtime(0.6f));

        UIManager.Instance.topHUDController.Show();
        UIManager.Instance.pauseBtn.GetComponent <Animator>().Play("Show");

        ScoreSystem.Instance.lockScore = false;
        ScoreSystem.Instance.SetScore(0);

        OnGameReady?.Invoke();
    }
Ejemplo n.º 3
0
 private void PlayerController_OnPlayerSpawns() => OnGameReady?.Invoke(this, levelService.GetLevelRecipie(sectionService.Level));
Ejemplo n.º 4
0
 public void ReadyGame()
 {
     GameState = GameStates.Prepare;
     OnGameReady?.Invoke();
 }