Пример #1
0
    private IEnumerator WaveSpawnCreepersRoutine()
    {
        currentPhase = WaveManagerPhase.SpawnCreepers;
        int creepersToSpawn = Waves [waveNumber].creeperCount;
        int creepersCount   = 0;

        Debug.Log("Start wave: " + waveNumber.ToString());

        timeBetweenCreepers = new WaitForSeconds(Waves [waveNumber].creeperSpawnTime);
        while (creepersCount < creepersToSpawn)
        {
            GameObject creeper = Instantiate(Waves[waveNumber].creeperPrefab, creeperSpawnPoint.position, creeperSpawnPoint.rotation);
            creeper.GetComponent <Creeper> ().Init(
                Waves[waveNumber].creeperHealth,
                Waves[waveNumber].creeperSpeed,
                Waves[waveNumber].creeperAccel,
                Waves[waveNumber].creeperAngularSpeed,
                Waves[waveNumber].coinPrefab,
                Waves[waveNumber].coinPValue,
                Waves[waveNumber].banishCost,
                creeperDestination
                );
            creepersCount++;
            Debug.Log("Creeper spawned: " + creepersCount.ToString());
            yield return(timeBetweenCreepers);
        }
        if (waveEndedEvent != null)
        {
            waveEndedEvent.Invoke();
        }
        currentPhase = WaveManagerPhase.Rest;
        Debug.Log("Wave " + waveNumber.ToString() + " spawn end");
    }
Пример #2
0
 public void StartWaves()
 {
     waveNumber   = 0;
     currentPhase = WaveManagerPhase.Rest;
     Debug.Log("Start waves");
     if (gameStartEvent != null)
     {
         gameStartEvent.Invoke(Waves.Length);
     }
     FinanceManager.AddCoin(startMoney);
     StartCoroutine("WaveQueueRoutine");
 }
Пример #3
0
    private IEnumerator WaveQueueRoutine()
    {
        //FIXME Wave Event
        if (WaveQueued != null)
        {
            WaveQueued.Invoke(Waves [waveNumber].beforeWaveTime, waveNumber);
        }
        currentPhase   = WaveManagerPhase.WaveQueue;
        timeBeforeWave = new WaitForSeconds(Waves [waveNumber].beforeWaveTime);
        yield return(timeBeforeWave);

        currentCreeperCount = Waves [waveNumber].creeperCount;
        //FIXME sfx wave start
        StartCoroutine("WaveSpawnCreepersRoutine");
    }
Пример #4
0
 void Awake()
 {
     instance     = this;
     currentPhase = WaveManagerPhase.StopGame;
 }
Пример #5
0
 public void StopSpawn()
 {
     StopCoroutine("WaveQueueRoutine");
     StopCoroutine("WaveSpawnCreepersRoutine");
     currentPhase = WaveManagerPhase.Rest;
 }