private void OnEnable()
 {
     if (_enemyHolder == null)
     {
         _enemyHolder = FindObjectOfType <EnemyHolder>();
     }
 }
    public static void LoadAssets()
    {
        PlayerHolder.Initialize();
        EnemyHolder.Initialize();
        WeaponHolder.Initialize();
        AmmunitionDropHolder.Initialize();
        ProjectileHolder.Initialize();
        SoundHolder.Initialize();
        VisualEffectHolder.Initialize();
        AnimationHolder.Initialize();
        MapHolder.Initialize();

        OnLoadingStatus += PlayerHolder.CurrentLoadingPercentage;
        OnLoadingStatus += EnemyHolder.CurrentLoadingPercentage;
        OnLoadingStatus += WeaponHolder.CurrentLoadingPercentage;
        OnLoadingStatus += ProjectileHolder.CurrentLoadingPercentage;
        OnLoadingStatus += SoundHolder.CurrentLoadingPercentage;
        OnLoadingStatus += VisualEffectHolder.CurrentLoadingPercentage;
        OnLoadingStatus += AnimationHolder.CurrentLoadingPercentage;
        OnLoadingStatus += AmmunitionDropHolder.CurrentLoadingPercentage;
        OnLoadingStatus += MapHolder.CurrentLoadingPercentage;

        PlayerHolder.LoadAssets();
        EnemyHolder.LoadAssets();
        WeaponHolder.LoadAssets();
        ProjectileHolder.LoadAssets();
        SoundHolder.LoadAssets();
        VisualEffectHolder.LoadAssets();
        AnimationHolder.LoadAssets();
        AmmunitionDropHolder.LoadAssets();
        MapHolder.LoadAssets();
    }
Example #3
0
    private void SpawnSquad()
    {
        SquadInfo sd = EnemyHolder.RandomSquad(difficulty, waveNumber);

        foreach (int id in sd.trash)
        {
            spawned.Add(Instantiate(EnemyHolder.staticTrashArray[id],
                                    new Vector3(Random.value, Random.value, Random.value) * 1000,
                                    transform.rotation, null
                                    ));
        }
        foreach (int id in sd.normal)
        {
            spawned.Add(Instantiate(EnemyHolder.staticNormalArray[id],
                                    new Vector3(Random.value, Random.value, Random.value) * 1000,
                                    transform.rotation, null
                                    ));
        }
        foreach (int id in sd.elite)
        {
            spawned.Add(Instantiate(EnemyHolder.staticEliteArray[id],
                                    new Vector3(Random.value, Random.value, Random.value) * 1000,
                                    transform.rotation, null
                                    ));
        }
    }
Example #4
0
 private void Awake()
 {
     _shooter        = GetComponent <EnemyShooter>();
     _mover          = GetComponent <EnemyMover>();
     _jumper         = GetComponent <EnemyJumper>();
     _enemyAnimator  = GetComponent <EnemyAnimator>();
     _health         = GetComponent <Health>();
     _collider       = GetComponent <BoxCollider>();
     _enemyHolder    = FindObjectOfType <EnemyHolder>();
     _characterAudio = GetComponent <CharacterAudio>();
 }
Example #5
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
 public static void OnDestroy()
 {
     EventsHolder.OnDestroy();
     AmmunitionDropHolder.OnDestroy();
     //Holders
     PlayerHolder.OnDestroy();
     EnemyHolder.OnDestroy();
     WeaponHolder.OnDestroy();
     ProjectileHolder.OnDestroy();
     MapHolder.OnDestroy();
     UIManager.OnDestroy();
 }
    /// <summary>
    /// Tell the spawners of a type to queue in the prefabs to instantiate, and
    /// then spawn them.
    /// </summary>
    /// <param name="enemy">The enemy Holder with the prefab to spawn</param>
    /// <param name="amount">How many enemies?</param>
    /// <param name="delay">Wait some seconds until telling each spawner to
    /// start</param>
    /// <param name="callerWave"> The combat wave that is sending the enemies
    /// </param>
    /// <returns>The objects spawned by all the spawners of this type.</returns>
    public Stack <GameObject> PopulateType(EnemyHolder enemy, int amount, float delay, CombatWave callerWave)
    {
        EnemyTypes         enemyType = enemy.enemyType;
        Stack <GameObject> spawned   = new Stack <GameObject>();

        CombatSpawner[] sp = spawnerGroups[(int)enemyType].ToArray();
        if (sp.Length == 0)
        {
            Debug.Log($"No spawners of type {enemyType}");
            return(null);
        }

        int enqueued = 0;

        // Tell each spawner how many enemies it needs to spawn
        while (enqueued < amount)
        {
            for (int i = 0; i < sp.Length; i++)
            {
                sp[i].spawnQueue.Enqueue(enemy.enemyPrefab);
                enqueued++;
                if (enqueued >= amount)
                {
                    break;
                }
            }
        }

        // Start the spawning process, making each spawner go down their queue.
        foreach (CombatSpawner cs in sp)
        {
            /* float startTime = Time.unscaledTime;
             * float time_delta = 0;
             * do
             * {
             *   time_delta = Time.unscaledTime - startTime;
             *
             * }while(time_delta < delay);*/

            spawned.Push(cs.StartSpawning(callerWave, enemy.distanceToAllowOtherToSpawn));
        }
        return(spawned);
    }
    private void Awake()
    {
        _levelData = levelDataHolder.levelData;

        _spawnPoints = new List <Transform>();

        foreach (Transform enemyLine in enemyLines)
        {
            foreach (Transform spawnPoint in enemyLine)
            {
                _spawnPoints.Add(spawnPoint);
                if (spawnPoint.CompareTag("Boss Spawn Point"))
                {
                    _bossSpawnPointIndex = _spawnPoints.Count - 1;
                }
            }
        }

        _player = FindObjectOfType <Player>().gameObject;

        _enemyHolder = GetComponent <EnemyHolder>();
    }
Example #9
0
 private void Awake()
 {
     _mana        = GetComponent <Mana>();
     _enemyHolder = FindObjectOfType <EnemyHolder>();
     _audioSource = GetComponent <AudioSource>();
 }
Example #10
0
 public void DestroyEnemy(EnemyHolder enemyHolder)
 {
     _currentEnemies.Remove(enemyHolder);
     Destroy(enemyHolder.gameObject);
 }
 public void Awake()
 {
     self = this;
 }