using Godot; namespace Newlon.Components.Level; [GlobalClass] public partial class LevelRunner : Node { private AdventureLevelResource resource; [Export] private RowSpawner rowSpawner; [Export] private Timer waveTimer; private int waveIndex = -1; public override void _Ready() { waveTimer.Timeout += SummonWave; } public void SetLevelResource(AdventureLevelResource data) { resource = data; waveTimer.Stop(); waveTimer.WaitTime = resource.initialWaveDelay; waveTimer.Start(); } private void SummonWave() { waveIndex += 1; rowSpawner.Add(resource.waves[waveIndex].zombiesOrdered); if (waveIndex == resource.waves.Count - 1) return; waveTimer.WaitTime = resource.waves[waveIndex].customWaveDelay > 0 ? resource.waves[waveIndex].customWaveDelay : resource.standardWaveDelay; waveTimer.Start(); } }