Files
PixelDefense/game/wave.c

34 lines
712 B
C

#include "wave.h"
WaveInfo getWaveInfo(i32 idx) {
BZ_ASSERT(idx >= 0);
WaveData waveData;
if (idx >= NUM_WAVES) {
waveData = predefWaves[NUM_WAVES - 1];
waveData.difficultyScale += (idx - NUM_WAVES) * 0.1f;
} else {
waveData = predefWaves[idx];
}
WaveInfo info = {
.data = waveData,
.orcsToSend = waveData.numOrcs,
.goblinsToSend = waveData.numGoblins,
};
return info;
}
void updateWave(WaveInfo *wave, f32 dt) {
wave->orcsElapsed += dt;
wave->golbinsElapsed += dt;
wave->elapsed += dt;
}
bool isWaveSendingOver(const WaveInfo *wave) {
return wave->orcsToSend == 0 && wave->goblinsToSend == 0;
}