Example #1
0
        void AssertPoolState(ConnectorPool pool, int idle, int busy, int waiting = 0)
        {
            var state = pool.State;

            Assert.That(state.Idle, Is.EqualTo(idle), $"Idle should be {idle} but is {state.Idle}");
            Assert.That(state.Busy, Is.EqualTo(busy), $"Busy should be {busy} but is {state.Busy}");
            Assert.That(state.Waiting, Is.EqualTo(waiting), $"Waiting should be {waiting} but is {state.Waiting}");
        }
Example #2
0
    private void Spawn()
    {
        HashSet <int> sss = new HashSet <int>();

        for (int i = 0; i < SpawnPoints.Length; i++)
        {
            if (Random.Range(0, 2) == 1)
            {
                sss.Add(i);
            }
        }

        if (!sss.Intersect(prevConnectors).Any())
        {
            sss.Add(prevConnectors.Where(x => x >= 0).ToArray().GetRandom());
        }

        for (int i = 0; i < SpawnPoints.Length - 2; i++)
        {
            if (!sss.Contains(i) || !sss.Any(x => x >= i + 2))
            {
                continue;
            }

            int k = sss.Where(x => x >= i + 2).Min();

            for (int j = i + 1; j <= k; j++)
            {
                sss.Add(j);
            }
        }

        prevConnectors.Clear();

        for (int i = 0; i < SpawnPoints.Length; i++)
        {
            bool spawnHere = sss.Contains(i);

            if (spawnHere)
            {
                var connector = ConnectorPool.GetConnector(Connectors.GetRandomGoodConnector());
                connector.transform.position = SpawnPoints[i].position;
                ConnectorList.Add(connector);

                connector.name = connector.ConnectorDef.Name;

                prevConnectors.Add(i);
            }
            else
            {
                if (Random.Range(0f, 1f) > 0.7f)
                {
                    var connector = ConnectorPool.GetConnector(Connectors.GetRandomBadConnector());
                    connector.transform.position = SpawnPoints[i].position;
                    ConnectorList.Add(connector);

                    connector.name = connector.ConnectorDef.Name;
                }
            }
        }
    }
Example #3
0
    protected override void Awake()
    {
        base.Awake();

        _instance = this;
    }