Esempio n. 1
0
    public void InstantiateEnemyCluster(InvaderBomberCluster cluster, int clusterSize, Vector2 distanceBetweenSpawn)
    {
        int tempEnemyRowChange  = enemyRowChange;
        int tempRowAmountChange = rowAmountChange;

        Vector3 position  = Vector3.zero;
        Vector3 enemySize = Vector3.zero;

        for (int i = 0; i < clusterSize; i++)
        {
            if (enemyBehaviorPrefab.GetComponentInChildren <Renderer>() != null)
            {
                enemySize = enemyBehaviorPrefab.GetComponentInChildren <Renderer>().bounds.size;
            }
            Debug.Log("Enemy size: " + enemySize);
            position.x += (distanceBetweenSpawn.x + enemySize.x);
            EnemyBehavior spawnedEnemyBehaviour = Instantiate(enemyBehaviorPrefab, cluster.transform);
            spawnedEnemyBehaviour.focusedStation = targetStation;
            spawnedEnemies.Add(spawnedEnemyBehaviour);

            if (i % tempEnemyRowChange == 0)
            {
                position.y         += (distanceBetweenSpawn.y + enemySize.y);
                tempEnemyRowChange += tempRowAmountChange;
                tempRowAmountChange++;
                position.x = 0;
            }

            spawnedEnemyBehaviour.transform.localPosition = position;
        }
    }
Esempio n. 2
0
    private void Update()
    {
        if (spawnedCluster == null)
        {
            targetStation.isBeingAttacked = false;

            spawnTimer += Time.deltaTime;

            if (!hasAlerted && (spawnTimer > currentSpawnInterval * enemySpawnWarnPercentage))
            {
                EventManager.instance.EnemyWaveIncoming(currentSpawnInterval - spawnTimer, targetStation.stationID);
                hasAlerted = true;
            }

            if (spawnTimer > currentSpawnInterval)
            {
                spawnTimer = 0f;

                targetStation.isBeingAttacked = true;

                spawnedCluster        = Instantiate(bomberClusterPrefab, transform.position, Quaternion.identity);
                spawnedCluster.target = targetStation;

                InstantiateEnemyCluster(spawnedCluster, (int)clusterSize, distanceBetweenSpawn);
                spawnedCluster.transform.up     = transform.up;
                spawnedCluster.transform.parent = transform;

                GenerateSpawnInterval();
                spawns++;

                if (spawns % spawnsBetweenClusterChange == 0)
                {
                    clusterSize += (uint)clusterSizeIncrease;
                    Debug.Log("Size increase");
                }
            }
        }
    }
Esempio n. 3
0
    //public static GameObject LoadPrefabContents(assetPath);

    private void Start()
    {
        invaderBomberCluster = GetComponentInParent <InvaderBomberCluster>();
        enemyBehavior        = GetComponent <EnemyBehavior>();
    }