Esempio n. 1
0
    IEnumerator Enter(bool clearScreen = false)
    {
        ClearTrails();

        if (clearScreen)
        {
            var megaExplosion = MegaExplosionPool.GetObject();
            megaExplosion.SetActive(true);
            AudioHandler.Play(MEGA_EXPLOSION_SFX, 0.75f);
        }

        _state = ShipState.Entering;

        transform.position = BeforeEnterPosition;

        yield return(Wait(0.1f));

        VoidHit.HitAll();

        ClearTrails();
        FireParticle.Clear();
        FireParticle.Play();

        OnEnter.Invoke();

        this.Body.AddForce(transform.up * EnterImpulseMultiplier, ForceMode2D.Impulse);

        yield return(Wait(EnterTime));

        _state = ShipState.Idle;

        yield return(Wait(AfterEnterTime));

        OnRestore.Invoke();
        SpaceTeleportBehavior.enabled = true;
    }