Changeset 9874 for code/branches/invaders/src/modules/invader/Invader.cc
- Timestamp:
- Dec 6, 2013, 3:09:30 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/invaders/src/modules/invader/Invader.cc
r9868 r9874 48 48 #include "InvaderShip.h" 49 49 #include "InvaderEnemy.h" 50 #include "InvaderEnemyShooter.h" 50 51 51 52 #include "core/command/ConsoleCommand.h" 53 #include "worldentities/BigExplosion.h" 52 54 53 55 namespace orxonox … … 70 72 level = 1; 71 73 point = 0; 74 bShowLevel = false; 72 75 multiplier = 1; 73 76 b_combo = false; 74 // spawn enemy every 2seconds75 enemySpawnTimer.setTimer( 2.0f, true, createExecutor(createFunctor(&Invader::spawnEnemy, this)));76 comboTimer.setTimer( 2.5f, true, createExecutor(createFunctor(&Invader::comboControll, this)));77 // spawn enemy every 3.5 seconds 78 enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Invader::spawnEnemy, this))); 79 comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&Invader::comboControll, this))); 77 80 } 78 81 79 void Invader::spawnEnemy() 82 void Invader::levelUp() 83 { 84 level++; 85 if (getPlayer() != NULL) 86 { 87 for (int i = 0; i < 7; i++) 88 { 89 WeakPtr<BigExplosion> chunk = new BigExplosion(this->center_->getContext()); 90 chunk->setPosition(Vector3(600, 0, 100 * i - 300)); 91 chunk->setVelocity(Vector3(1000, 0, 0)); //player->getVelocity() 92 chunk->setScale(20); 93 } 94 } 95 addPoints(multiplier * 42); 96 multiplier *= 2; 97 toggleShowLevel(); 98 showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Invader::toggleShowLevel, this))); 99 } 100 101 WeakPtr<InvaderShip> Invader::getPlayer() 80 102 { 81 103 if (player == NULL) … … 84 106 player = *it; 85 107 } 86 if (player == NULL) 108 return player; 109 } 110 111 void Invader::spawnEnemy() 112 { 113 if (getPlayer() == NULL) 87 114 return; 88 89 115 srand(player->getPosition().x + player->getPosition().y); 90 for (int i = 0; i < level * 2; i++)116 for (int i = 0; i < (3*log(level) + 1); i++) 91 117 { 92 WeakPtr<InvaderEnemy> newPawn = new InvaderEnemy(this->center_->getContext()); 93 newPawn->addTemplate("enemyinvader"); 118 WeakPtr<InvaderEnemy> newPawn; 119 if (rand() % 42/(1 + level*level) == 0) 120 { 121 newPawn = new InvaderEnemyShooter(this->center_->getContext()); 122 newPawn->addTemplate("enemyinvadershooter"); 123 } 124 else 125 { 126 newPawn = new InvaderEnemy(this->center_->getContext()); 127 newPawn->addTemplate("enemyinvader"); 128 } 94 129 newPawn->setPlayer(player); 95 130 newPawn->level = level; … … 133 168 Deathmatch::start(); 134 169 } 135 170 void Invader::addPoints(int numPoints) 171 { 172 if (!bEndGame) 173 { 174 point += numPoints * multiplier; 175 b_combo = true; 176 } 177 } 136 178 137 179 void Invader::end()
Note: See TracChangeset
for help on using the changeset viewer.