Level runners

This commit is contained in:
Rendo 2025-07-16 20:17:58 +05:00
commit 5010c61309
11 changed files with 398 additions and 110 deletions

View file

@ -0,0 +1,37 @@
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();
}
}