Wave incrementing

This commit is contained in:
2024-02-11 19:23:40 +01:00
parent 0319a0a5b3
commit bfc1bc425f
7 changed files with 73 additions and 10 deletions

View File

@@ -1,4 +1,6 @@
#include "wave.h"
#include "game_state.h"
#include "components.h"
WaveInfo getWaveInfo(i32 idx) {
BZ_ASSERT(idx >= 0);
@@ -12,22 +14,32 @@ WaveInfo getWaveInfo(i32 idx) {
}
WaveInfo info = {
.number = idx,
.data = waveData,
.orcsToSend = waveData.numOrcs,
.goblinsToSend = waveData.numGoblins,
};
info.data.timeBeforeStart /= 60;
return info;
}
void updateWave(WaveInfo *wave, f32 dt) {
wave->orcsElapsed += dt;
wave->golbinsElapsed += dt;
wave->goblinsElapsed += dt;
wave->elapsed += dt;
if (wave->elapsed < wave->data.timeBeforeStart)
return;
wave->started = true;
}
bool isWaveSendingOver(const WaveInfo *wave) {
return wave->orcsToSend == 0 && wave->goblinsToSend == 0;
}
bool isWaveOver(const WaveInfo *wave) {
if (!isWaveSendingOver(wave)) return false;
return wave->started && ecs_count_id(ECS, ecs_id(Swarm)) == 0;
}