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; }