Enemy Type Spawns Dependent on Score

The probability of spawning each type of enemy is now done according to
three offset sinusoids, one for each type of enemy. All of the sinusoids
are dependent on the player's score, have the same frequency, and range
in value from 0 to 9. Their timings are offset by 2pi/3.

The first sinusoid, the dumb enemy sinusoid, defines the max number of
dumb enemies allowed on the screen at this time. After 1/3 of the period
of the dumb enemy sinusoid has elapsed, the smart enemy sinusoid begins,
and so on for the smarter enemy. The type of enemy spawned is chosen by
picking a random float between 0 and the sum of the values of the three
sinusoids. If the random float is less than the value of the dumb
sinusoid, a dumb enemy is spawned. Otherwise, if the random float is
less than the value of the smart sinusoid, a smart enemy is spawned,
etc, etc.

I'm not sure if I've explained that well enough, so if it doesn't make
sense check out the code I guess.

The cool-down timer for the enemy span reduces by 0.02% of its current
value every time an enemy is spawned. This is so that later in the game
if you kill an enemy another will quickly spawn to take its place. I am
considering other ways to ramp up the difficulty using the sinusoids
(like reducing their frequencies, changing their offsets, and increasing
their amplitudes over time), but for now I've decided to leave it in
this basic form.

STILL NEED TO SCALE UP ENEMY PARAMETERS (SPEED, FIRERATE, ETC.) WITH
PLAYER'S SCORE.