Index: code/branches/TowerDefense_HS18/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/TowerDefense_HS18/src/modules/towerdefense/TowerDefense.cc	(revision 12137)
+++ code/branches/TowerDefense_HS18/src/modules/towerdefense/TowerDefense.cc	(revision 12153)
@@ -157,5 +157,6 @@
             en1->addTemplate("enemytowerdefense1");
             en1->setScale(3);
-            en1->setHealth(en1->getHealth() + this->getWaveNumber()*4);
+            en1->setHealth(en1->getHealth() + this->getWaveNumber()*1/3*0.5*(en1->getHealth()));
+            en1->setShieldHealth(en1->getShieldHealth() + this->getWaveNumber()*1/3*0.5*(en1->getShieldHealth()));
             break;
 
@@ -163,5 +164,5 @@
             en1->addTemplate("enemytowerdefense2");
             en1->setScale(2);
-            en1->setHealth(en1->getHealth() + this->getWaveNumber()*4);
+            en1->setHealth(en1->getHealth() + this->getWaveNumber()*1/3*0.3*(en1->getHealth()));
             break;
 
@@ -169,5 +170,6 @@
             en1->addTemplate("enemytowerdefense3");
             en1->setScale(1);
-            en1->setHealth(en1->getHealth() + this->getWaveNumber()*4);
+            en1->setHealth(en1->getHealth() + this->getWaveNumber()*1/3*0.2*(en1->getHealth()));
+            en1->setShieldHealth(en1->getShieldHealth() + this->getWaveNumber()*1/3*0.5*(en1->getShieldHealth()));
             break;
         }        
@@ -308,5 +310,23 @@
                 ctrl->destroy();
                 it = enemies_.erase(it);
-                addCredit(1);
+                
+                int currentType = this->getWaveNumber() % 3 + 1;
+                switch (currentType){ //Entscheidet, wie viele Credits vergeben werden sollen
+                    case 1: //currently boss wave
+                        addCredit(100);
+                        if (this->getLifes() <= 90)
+                        {
+                            this->setLifes(this->getLifes() + 10);
+                        }
+                        break;
+
+                    case 2: //currently mass wave
+                        addCredit(5);
+                        break;
+
+                    case 3: //currently moderate wave
+                        addCredit(10);
+                        break;
+                }
             }
             else
@@ -340,8 +360,9 @@
             timeSinceLastSpawn_ -= 1.0;
             -- waveSize_;
-            addTowerDefenseEnemy(this->getWaveNumber() % 3 + 1);
+            addTowerDefenseEnemy(this->getWaveNumber() % 3 + 1); //Gegnertyp rotiert durch die 3 moeglichen, er beginnt bei Typ 2!!!
         }
         else if (timeUntilNextWave_ <= 0.0 && waveSize_ <= 0)
         {
+            int currentType = this->getWaveNumber() % 3 + 1;
             //New wave
             ++ waveNumber_;
@@ -349,5 +370,18 @@
 
             timeUntilNextWave_ = waveNumber_+20.0f;
-            waveSize_ = waveNumber_+5;
+            // Entscheidung, wie gross die einzelnen waves sein sollen.
+            switch (currentType){
+                case 1: //currently boss wave
+                    waveSize_ = waveNumber_+10;
+                    break;
+
+                case 2: //currently mass wave
+                    waveSize_ = (waveNumber_+10)/2;
+                    break;
+
+                case 3: //currently moderate wave
+                    waveSize_ = 1;
+                    break;
+            }
         }
 
@@ -361,7 +395,7 @@
         std::string fields = center_->getFields();
         int pos = 0;
-        for (int j = 15; j >= 0; --j)
-        {
-            for (int i = 0; i < 16; ++i)
+        for (int j = 15; j >= 0; --j) //Vertical number of rows
+        {
+            for (int i = 0; i <= 15; ++i) //Horizontal number of rows
             {
                 coord.Set(i,j);
Index: code/branches/TowerDefense_HS18/src/modules/towerdefense/TowerDefenseController.cc
===================================================================
--- code/branches/TowerDefense_HS18/src/modules/towerdefense/TowerDefenseController.cc	(revision 12137)
+++ code/branches/TowerDefense_HS18/src/modules/towerdefense/TowerDefenseController.cc	(revision 12153)
@@ -81,9 +81,8 @@
         Engine* engine = ship->getEngine(0);
         if(engine != nullptr) {
-            speed = engine->getMaxSpeedFront(); //Geschwindigkeit wird ausgelesen
-            orxout() << "shiftshan" << endl;
+            speed = engine->getMaxSpeedFront(); //Geschwindigkeit sollte ausgelesen werden, wird momentan aber noch NICHT -> ein Fehler mit den Engines
+
         } else {
-            speed = 100;
-            orxout() << "shiftshannonen" << endl;
+            speed = 200; //Momentan wird hiermit die Geschwindigkeit ALLER Schiffe gesetzt!
         }
 
@@ -127,5 +126,5 @@
         this->getControllableEntity()->setPosition(offset_ + newPosition);
         this->getControllableEntity()->lookAt(this->getControllableEntity()->getPosition() + newDirection);
-
+        this->getControllableEntity()->setVelocity(speed * newDirection);
     }
 
