Exemple #1
0
    static Disconnect RandomDisconnect()
    {
        switch (Random.Range(0, 3))
        {
        case 0:
            return(Spasm.Random());

        case 1:
            return(Slowdown.Random());

        case 2:
            return(Delay.Random());
        }
        throw new Exception();
    }
Exemple #2
0
    void AddDisconnects()
    {
        //glitches only start when time runs out
        if (Astronaut.OxygenTime > 0)
        {
            return;
        }

        //only allow 3 at once
        if (disconnects.Count > 2)
        {
            return;
        }

        //glitch probability linearly scaled to ~100% at 240 seconds
        var glitchChance = (-Astronaut.OxygenTime / 240f) * Time.deltaTime;

        if (Random.Range(0f, 1f) > glitchChance)
        {
            return;
        }

        Disconnect d;

        if (disconnects.Any(a => !(a is Spasm)))
        {
            d = Spasm.Random();
        }
        else
        {
            d = RandomDisconnect();
        }

        AudioManager.PlayScream(Random.Range(0, 6));

        Debug.Log(d);
        disconnects.Add(d);
    }