Win and loose conditions
This commit is contained in:
parent
804122a3bd
commit
b551c7f012
15 changed files with 193 additions and 122 deletions
|
|
@ -22,6 +22,7 @@ public partial class LevelRunner : Node
|
|||
[Signal] public delegate void HugeWaveInitiatedEventHandler(int waveNumber);
|
||||
[Signal] public delegate void FinalWaveInitiatedEventHandler();
|
||||
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
waveTimer.Timeout += SummonWave;
|
||||
|
|
@ -51,6 +52,7 @@ public partial class LevelRunner : Node
|
|||
private void SummonWave()
|
||||
{
|
||||
waveIndex += 1;
|
||||
|
||||
hugeWaveApproaching = false;
|
||||
EmitSignal(SignalName.WaveChanged, waveIndex);
|
||||
if (resource.waves[waveIndex].isHugeWave) EmitSignal(SignalName.HugeWaveInitiated, waveIndex);
|
||||
|
|
@ -69,9 +71,10 @@ public partial class LevelRunner : Node
|
|||
}
|
||||
private void OnHPChanged(float delta)
|
||||
{
|
||||
if (waveIndex == resource.waves.Count - 1) return;
|
||||
|
||||
waveHealth += delta;
|
||||
|
||||
|
||||
if (waveIndex == resource.waves.Count - 1) return;
|
||||
if (waveHealth / waveHealthMax <= resource.wavePercentage)
|
||||
{
|
||||
if (resource.waves[waveIndex + 1].isHugeWave && waveTimer.TimeLeft > 6)
|
||||
|
|
@ -107,5 +110,18 @@ public partial class LevelRunner : Node
|
|||
waveHealthMax += zombie.GetMaxHPMixed();
|
||||
waveHealth = waveHealthMax;
|
||||
zombie.HPChangedMixed += OnHPChanged;
|
||||
|
||||
|
||||
|
||||
if (waveIndex == resource.waves.Count - 1)
|
||||
{
|
||||
zombie.HasBeenKilled += (who) =>
|
||||
{
|
||||
if (waveHealth <= 0)
|
||||
{
|
||||
RuntimeLevelData.Instance.SetLevelState(RuntimeLevelData.LevelStates.Win);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue