Example #1
0
    private void Update()
    {
        if (!grid.GridIsFull())
        {
            if (CheckCooldownAvailability())
            {
                GameObject result;
                string     enemiesType = dataBase.GetTypes()[Random.Range(0, dataBase.GetTypes().Length)];
                if (enemiesPool.Acquire(enemiesType, out result))
                {
                    result.GetComponent <EnemiesBase>().Activate();
                    grid.AddObjectToGrid(result);
                    enemies.Add(result);
                    enemiesTypes.Add(enemiesType);
                }
            }
        }

        for (int i = 0; i < enemies.Count; i++)
        {
            if (enemies[i].GetComponent <EnemiesBase>().wasDestroyed)
            {
                grid.RemoveObjectFromGrid(enemies[i]);
                enemiesPool.Release(enemiesTypes[i], enemies[i]);
                enemies.Remove(enemies[i]);
                enemiesTypes.Remove(enemiesTypes[i]);
            }
        }
    }
Example #2
0
    IEnumerator DestroyStar(GameObject star, GameObject background, Vector3 position)
    {
        yield return(new WaitForSeconds(0.4f));

        Destroy(star);
        Destroy(background);
        if (_gridController.CellIsEmpty(VectorTransformer.Vector3ToVector2Int(position)))
        {
            GameObject diamond = Instantiate(prefabDiamond, position, Quaternion.identity);
            _gridController.AddObjectToGrid(diamond.transform);
        }
    }