diff options
Diffstat (limited to 'docs/wave')
-rw-r--r-- | docs/wave/wave.md | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/docs/wave/wave.md b/docs/wave/wave.md new file mode 100644 index 0000000..156beaf --- /dev/null +++ b/docs/wave/wave.md @@ -0,0 +1,52 @@ +## wave system +Timing and composition of enemy waves. + +### design +A wave is a list of timed spawns. The spawns contain a list of enemies, which defines how many enemies of one type to spawn and how much time to wait after spawning the next. Spawns can be randomized, which will make the system pick from the list of enemies a random one instead of sequentially selecting them. + +For example: +``` +[ +{ + "time": 0, + "random": false, + "enemies": [ + { "enemy": "aaT", "amount": 10, "cooldown": 0.1 }, + { "enemy": "kT", "amount": 20, "cooldown": 0.02 } + ] +}, +{ + "time": 1, + "random": true, + "enemies": [ + { "enemy": "dssT", "amount": 4, "cooldown": 0.05 }, + { "enemy": "dsaT", "amount": 4, "cooldown": 0.05 }, + { "enemy": "aaaT", "amount": 4, "cooldown": 0.05 } + ] +} +] +``` + +This wave can be generated randomly given a total life, which is necessary to do unless people don't want to script the waves of every map they create or use old waves. + +--- + +### spawns +- timers +- cooldowns + +### randomizer +- generate from difficulty +- patterns + +### balance +- figure out how the difficulty + +### win/lose condition +- win +- lose + +### gui +- details +- win/lose +- endwave report |