Wave System

Purpose
The wave system is the challenge for the player. It spawns the enemies and lets the player have a break in between waves.

General details

 * The system needs to spawn enemies of different enemy types according to what the designers specify per wave
 * The system needs to give intermission breaks in between waves of a certain lenght according to what designers specify
 * The system needs to detect if enemies are stuck and if so, let the next intermission start to prevent exploits
 * For the first wave, there will be a set amount of enemies after this they will gradually increase depending on the values that designers put in:
 * When playing multiplayer the amount of enemies will get multiplied by a certain amount (for example: 2 players will give a 1.2x enemy multiplier)

Spawn locations

 * The level has 4 (might change) spawn locations.
 * Enemies will spawn from the two closest spawn locations to the players powercore.


 * Enemies in the world will spawn from world spawn locations. (such as caves, or the enemies will be beamed in via a space ship)
 * Currently, the order in which enemies spawn will be done randomly but this might change in the future.

Wisp system

 * The wisp system will show the path the enemies will take when approaching the powercore.
 * Path will come from two sides decided by the two closest spawn locations.
 * Path is now indicated with floating arrows during the intermission and will disappear when the actual wave starts.

Intermission

 * The intermission time between waves should give the player enough time to gather some resources and build or upgrade his defenses.
 * The current intermission time is set on 60 seconds but may change in the future.
 * Players are also able to skip the intermission time to immediately go to the next wave, all players in the game will have to press the "enter" key in order to go to the next wave.

Enemies next wave

 * This is a UI element in the top middle of the screen to indicate exactly which enemies are coming next wave.
 * This element will only show during the intermissions so you can prepare defenses for those enemies and will then disappear again when the wave actually starts.

UI/UX

 * Indications for when waves start and finish (sound)
 * A clear indication to the player how long the intermission time is in between waves
 * Indication that you can skip the intermission and indications of when other players want to skip intermission and also when you have to wait on other players
 * Indication of which enemies are coming next wave
 * A wave counter
 * Sounds

Programming details

 * Variables for the wave system:
 * How many of each enemy type should get added every wave
 * Currently, there are 7 enemy types, but that might increase so keep that in mind
 * A tool so we can edit the enemy numbers of a specific wave (like listed in the table above)
 * The time between waves
 * A tool so we can edit the time in between waves if we want