示例#1
0
    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");
        }
    }
示例#2
0
    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();
        }
    }