public void Init(MapData mapData, GameObjectScriptablePool enemyPool) { m_MapData = mapData; m_EnemyPool = enemyPool; m_CurrentWave = mapData.m_BoxymonWaves.Dequeue(); OnWaveStart?.Invoke(m_CurrentWaveNumber); if (mapData == null || enemyPool == null) { throw new InvalidOperationException("EnemyBase wasn't initialized correctly.\nMake sure to provide both MapData and an enemy pool"); } }
private void CompleteWave() { OnWaveComplete?.Invoke(m_CurrentWaveNumber); m_WaveTimer = m_TimeBetweenWaves; if (m_MapData.m_BoxymonWaves.Count > 0) { m_CurrentWave = m_MapData.m_BoxymonWaves.Dequeue(); OnWaveStart?.Invoke(++m_CurrentWaveNumber); } else { OnAllWavesComplete?.Invoke(); } }