//---------------------------------------------------------- void ScreenItemAdd::loadLevelXXX() { int i; int numIterations = 12000; // int numIterations = (int)(11100 * game->gameSkill); // int numIterations = (int)(1100 * game->gameSkill); clearDeadPool(); //-- Enemies float r; float d; int waveDuration = 500; i = 600; addStraightWave(1, i, 0.4); while(i < numIterations-1000) { if(i < 1500) d = (i+250.0)/2000.0; else d = 1.0; r = FRAND; if (r < 0.15) addStraightArrowWave(i, waveDuration, d); else if (r < 0.25) addOmniArrowWave(i, waveDuration, d); else if (r > 0.60) addStraightWave(i, waveDuration, d); else addOmniWave(i, waveDuration, d); i += waveDuration; waveDuration = (int)(600.0*game->gameSkill) + (int)(100*SRAND); i += 50 + (int)(50*FRAND); } //-- ray gun enemy starts halfway through... EnemyWave rayWave(EnemyRayGun); rayWave.setXRand(8.0); rayWave.setFrequency(60, 5); rayWave.setFrequency(2000, 1000); rayWave.setInOut(numIterations/2, i-1000); // rayWave.setInOut(100, i-1000); addWave(rayWave); //-- Boss EnemyWave bossWave(EnemyBoss00); bossWave.setInOut(i+75, i+1000); bossWave.setPos(0.0, 15.0); bossWave.setXRand(4.0); bossWave.setFrequency(5000, 0); addWave(bossWave); //-- Ammunition and PowerUps addAmmunition(0, numIterations+9000); addPowerUps(0, numIterations+9000); }
// Update const void World::update(const sf::Time& dt) { for (unsigned i = 0; i < (mPlayers.size() > mEnemies.size() ? mPlayers.size() : mEnemies.size()); i++) { if (mPlayers.begin()+i < mPlayers.end() && mPlayers[i].getVisible()) { mPlayers[i].update(dt); mTextHolder.correctProperties(mTextHolder.get(Texts::Scores, i)); } if (mEnemies.begin()+i < mEnemies.end() && mEnemies[i].getVisible()) mEnemies[i].update(dt); if (mPowerUps.begin()+i < mPowerUps.end() && mPowerUps[i].getVisible()) mPowerUps[i].update(dt); } addEnemies(); recycleEnemies(); addPowerUps(); recyclePowerUps(); }
//---------------------------------------------------------- void ScreenItemAdd::loadLevel3() { int i; int numIterations = 14000; // int numIterations = 1400; clearDeadPool(); //-- Enemies int waves = 0; float r; int waveDuration = 500; i = 500; addStraightWave(100, i, 0.5); while(i < numIterations) { r = FRAND; waves++; if( waves == 5 || waves == 12 ) { addGnatWave(i, waveDuration, 0.9, false); } else if ( waves == 6 || waves == 11 || waves == 15 || waves == 16 ) { EnemyWave tankWave(EnemyTank); tankWave.setPos(0.0, 11.0); tankWave.setXRand(10.0); tankWave.setFrequency(700, 100); tankWave.setInOut(i+50, waveDuration-50); addWave(tankWave); addStraightWave (i, 300); } else if (waves < 5) { if (r < 0.20) addStraightArrowWave(i, waveDuration); else if(r < 0.30) addOmniArrowWave (i, waveDuration); else if(r < 0.60) addOmniWave (i, waveDuration); else addStraightWave (i, waveDuration); } else { if (r < 0.25) addGnatWave (i, waveDuration); else if(r < 0.35) addStraightArrowWave(i, waveDuration); else if(r < 0.50) addOmniArrowWave (i, waveDuration); else if(r < 0.80) addOmniWave (i, waveDuration); else addStraightWave (i, waveDuration); } i += waveDuration; waveDuration = (int)(700.0 + 100.0*SRAND); i += 50 + (int)(50*FRAND); } EnemyWave gnatWave(EnemyGnat); gnatWave.setInOut(3000, 5000); gnatWave.setPos(FRAND*4.0, 10.0); gnatWave.setFrequency(150, 140); gnatWave.setXRand(5.0); addWave(gnatWave); gnatWave.setInOut(8000, 11000); addWave(gnatWave); //-- give some extra power ups... addAmmunition(0, 2000, 500, 700, 0); addAmmunition(10000, 2000, 500, 700, 0); addPowerUps(3000, 2000, 2500, 2500, 0); addPowerUps(9500, 2000, 2500, 2500, 0); addPowerUps(numIterations, 2000, 2500, 2500, 1); //-- Boss EnemyWave bossWave(EnemyBoss01); bossWave.setPos(0.0, 15.0); bossWave.setXRand(4.0); bossWave.setFrequency(5000, 0); bossWave.setInOut(numIterations+700, numIterations+710); addWave(bossWave); EnemyWave tankWave(EnemyTank); tankWave.setPos(0.0, 11.0); tankWave.setXRand(10.0); tankWave.setFrequency(2000, 200); tankWave.setInOut(numIterations+400, numIterations+3000); addWave(tankWave); //-- Ammunition and PowerUps addAmmunition(0, numIterations+9000); addPowerUps(0, numIterations+9000); }