32 lines
949 B
C#
32 lines
949 B
C#
using UnityEngine.Playables;
|
|
|
|
namespace OctoberStudio.Timeline
|
|
{
|
|
public class MaintainWaveBehavior : WaveBehavior
|
|
{
|
|
private int keepAliveCount = -1;
|
|
private int aliveEnemiesCounter;
|
|
|
|
public override void OnBehaviourPlay(Playable playable, FrameData info)
|
|
{
|
|
keepAliveCount = EnemiesCount;
|
|
aliveEnemiesCounter = 0;
|
|
}
|
|
|
|
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
|
|
{
|
|
if (aliveEnemiesCounter < keepAliveCount)
|
|
{
|
|
StageController.EnemiesSpawner.Spawn(EnemyType, WaveOverride, CircularSpawn, keepAliveCount - aliveEnemiesCounter, OnEnemyDied);
|
|
|
|
aliveEnemiesCounter = keepAliveCount;
|
|
}
|
|
}
|
|
|
|
private void OnEnemyDied(EnemyBehavior enemy)
|
|
{
|
|
enemy.onEnemyDied -= OnEnemyDied;
|
|
aliveEnemiesCounter--;
|
|
}
|
|
}
|
|
} |