34 lines
1.0 KiB
C#
34 lines
1.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
|
|
namespace OctoberStudio.Timeline
|
|
{
|
|
public class ContinuousWave : WaveAsset
|
|
{
|
|
[Header("Continuous Settings")]
|
|
[SerializeField, Min(0.01f)] float continuousSpawnPerSecond = 1;
|
|
|
|
public override int EnemiesCount => (int)(continuousSpawnPerSecond * duration / 2);
|
|
|
|
public ContinuousWaveBehavior template;
|
|
|
|
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
|
|
{
|
|
var wavePlayable = ScriptPlayable<ContinuousWaveBehavior>.Create(graph, template);
|
|
var waveData = wavePlayable.GetBehaviour();
|
|
|
|
waveData.EnemyType = EnemyType;
|
|
waveData.ContinuousSpawnPerSecond = continuousSpawnPerSecond;
|
|
|
|
waveData.WaveOverride = waveOverride;
|
|
waveData.CircularSpawn = circularSpawn;
|
|
|
|
return wavePlayable;
|
|
}
|
|
|
|
private void OnValidate()
|
|
{
|
|
if (continuousSpawnPerSecond < 0) continuousSpawnPerSecond = 0;
|
|
}
|
|
}
|
|
} |