Centralized entity lifecycle management system for R-Type server.
This file contains the interface for systems.
Abstract class for system.
Class for managing entities and their components.
Server-side system that manages enemy wave spawning and level progression.
EnemySpawnSystem(const EnemySpawnSystem &)=delete
Deleted copy constructor (non-copyable)
std::mt19937 m_rng
Random number generator for spawn positions.
void processWave(SpawnWave &wave, float deltaTime)
Process a single spawn wave.
void initializeWaves()
Initialize all spawn waves for the level.
size_t getTotalEnemiesSpawned() const
Get total number of enemies spawned since reset.
EntityManager & m_entityManager
Entity manager for spawning enemies.
~EnemySpawnSystem() override=default
Destructor.
size_t m_currentWaveIndex
Index of current/next wave to process.
EnemySpawnSystem(EntityManager &entityManager)
Constructor.
void reset()
Reset the spawn system to initial state.
bool isEnabled() const
Check if enemy spawning is currently enabled.
void update(ecs::Registry ®istry, float deltaTime) override
Update the spawn system (called each frame)
float m_waveSpawnTimer
Timer for spawning enemies within current wave.
bool m_enabled
Whether spawning is currently enabled.
EnemySpawnSystem & operator=(const EnemySpawnSystem &)=delete
Deleted copy assignment operator (non-copyable)
EnemySpawnSystem(EnemySpawnSystem &&)=delete
Deleted move constructor (non-movable)
EnemySpawnSystem & operator=(EnemySpawnSystem &&)=delete
Deleted move assignment operator (non-movable)
size_t getCurrentWaveIndex() const
Get current wave index.
float m_levelTime
Elapsed time since level start (seconds)
void setEnabled(bool enabled)
Enable or disable enemy spawning.
std::vector< SpawnWave > m_waves
List of all spawn waves for the level.
std::uniform_real_distribution< float > m_yDistribution
Distribution for random Y positions.
float getRandomY()
Generate random Y position for enemy spawn.
size_t m_totalEnemiesSpawned
Total number of enemies spawned this session.
float getSpawnX() const
Get X position for enemy spawns (right side of screen)
float getLevelTime() const
Get elapsed time since level start.
Central entity lifecycle manager for the R-Type game server.
Configuration data for a single enemy spawn wave.
bool bossSpawn
Whether this wave spawns a boss enemy.
float spawnInterval
Time between individual enemy spawns within wave (seconds)
int basicEnemyCount
Number of basic enemies to spawn in this wave.
int spawnedCount
Number of enemies already spawned from this wave (internal counter)
int advancedEnemyCount
Number of advanced enemies to spawn in this wave.
float spawnTime
Time from level start when wave begins (seconds)