public override void Load()
{
int position = 1000;
while (position < _length)
{
if (_dinos.Count * (100 - position * 50 / _length) < position)
{
float pick = Math.Random() * 100;
if (pick < 45)
{
float altitude = _level.Buildings.GunEmplacement(position - 5, position + 5);
Gun gun = new Gun(new StraightMotion(new Vector2D(0, 0)));
gun.Location = new Vector3D(position, altitude + 5, ShooterLevel.GunZ);
gun.KilledEvent += _killedEventHandler;
_dinos.Add(gun);
}
else if (pick < 80)
{
float altitude = 50 + Math.Random() * (_level.Buildings.MaxAltitude(position - 600, position) - 100);
for (int i = 0; i < 4; i++)
{
Pteranodon pteranodon = new Pteranodon(new SineMotion(-0.1f, altitude, 0.05f, 15));
pteranodon.Location = new Vector3D(position + i * 25, 0, ShooterLevel.DinosZ);
pteranodon.KilledEvent += _killedEventHandler;
_dinos.Add(pteranodon);
}
}
else
{
float altitude = 50 + Math.Random() * (_level.Buildings.MaxAltitude(position - 600, position) - 100);
BigSaucer saucer = new BigSaucer(new StraightMotion(new Vector2D(-0.05f, 0)));
saucer.Location = new Vector3D(position, altitude, ShooterLevel.DinosZ);
saucer.KilledEvent += _killedEventHandler;
_dinos.Add(saucer);
}
}
position += 100;
}
BossGun topGun = new BossGun(null);
topGun.Location.Z--;
_dinos.Add(topGun);
BossGun bottomGum = new BossGun(null);
bottomGum.StartAnimation("Gun2");
bottomGum.Location.Z--;
_dinos.Add(bottomGum);
BossGun middleGun = new BossGun(null);
middleGun.StartAnimation("Gun3");
middleGun.Location.Z--;
_dinos.Add(middleGun);
Boss boss = new Boss(new TimeIndexedSineMotion(-0.05f, 300, 0.0005f, 80), topGun, middleGun, bottomGum);
boss.Location = new Vector3D(position, 300, ShooterLevel.DinosZ);
boss.KilledEvent += _killedEventHandler;
_dinos.Add(boss);
}