Esempio n. 1
0
 void Start()
 {
     spawnState = EnemyWaveManager.MachineState.Prepare;
     if (auto)
     {
         StartSequence();
     }
 }
Esempio n. 2
0
 public void StartSequence()
 {
     spawnState = EnemyWaveManager.MachineState.Start;
     startSpawn = true;
     StartCoroutine(ISequenceProcess());
     if (onSequenceStart != null)
     {
         onSequenceStart.Invoke();
     }
 }
Esempio n. 3
0
 void Update()
 {
     if (spawnState == EnemyWaveManager.MachineState.Exhausted)
     {
         if (transform.childCount == 0)
         {
             spawnState = EnemyWaveManager.MachineState.Clean;
         }
     }
 }
Esempio n. 4
0
 IEnumerator ISequenceProcess()
 {
     spawnState = EnemyWaveManager.MachineState.Executing;
     for (int y = 0; y < enemys.Count; y++)
     {
         for (int i = 0; i < enemys[y].number; i++)
         {
             SpawnEnemy(enemys[y].prefab);
             yield return(new WaitForSeconds(spawnBuffer));
         }
     }
     FinishSequence();
 }
Esempio n. 5
0
    public void FinishSequence()
    {
        spawnState = EnemyWaveManager.MachineState.Finish;
        startSpawn = false;
        if (manager)
        {
            manager.OnSpawnPointFinish(this);
#if (DEBUG)
            Debug.Log("Call FinishSeq via " + name);
            Debug.LogWarning(this.name + " Finished Sequence with " + transform.childCount + " spawn count");
#endif
        }
        if (onSequenceFinish != null)
        {
            onSequenceFinish.Invoke();
        }
        spawnState = EnemyWaveManager.MachineState.Exhausted;
    }