public static void HitAll() { var values = VoidHit.Cache.Values; var l = values.Count; var list = new VoidHit[l]; using (var enumerator = values.GetEnumerator()) { var i = 0; while (enumerator.MoveNext()) { list [i] = enumerator.Current; i++; } } for (var i = 0; i < l; i++) { list [i].Hit(); } }
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; }