Esempio n. 1
0
    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();
        }
    }
Esempio n. 2
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;
    }