Index: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc	(revision 11616)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc	(revision 11617)
@@ -26,4 +26,9 @@
  *
  */
+
+/*TODO: Punktesystem aufbauen -> in HUD anzeigen
+        Schwierigkeitsgrad mit jedem levelup erhöhen -> mehr Steine spawnen?
+        spawnStone Methode schreiben
+        templates für die drei Grössen von Asteroiden erstellen
 
 /**
@@ -57,4 +62,5 @@
         this->center_ = nullptr;
         this->setHUDTemplate("Asteroids2DHUD");
+        levelupTimer.setTimer(100.0f, true, createExecutor(createFunctor(&Asteroids2D::levelUp, this)));
     }
 
@@ -82,9 +88,14 @@
         toggleShowLevel();
         showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Asteroids2D::toggleShowLevel, this)));
+        //Nach jedem Level Up werden mehr Steine gespawnt -> abhängig vom Schwierigkeitsgrad
+        for(int i = 0; i < level*2; i++){
+            spawnStone();
+        }
+
     }
 
     void Asteroids2D::tick(float dt)
     {
-        //Do this only for the first tick, generate stones
+        //Do this only for the first tick, generate 5 stones for the beginning
         if(this->firstTick_)
         {
@@ -105,5 +116,21 @@
         Asteroids2DStone* newStone = new Asteroids2DStone(this->center_->getContext());
         newStone->setAsteroids2DPlayer(player);
-        //addtemplate
+
+        switch(newStone->getSize()){
+            case 1:
+                newStone->addTemplate("stone1");
+                break;
+            case 2: 
+                newStone->addTemplate("stone2");
+                break;
+            case 3:
+                newStone->addTemplate("stone3");
+                break;
+            default:
+                orxout(internal_error) << "Asteroids2DStone has invalid size and cannot be created" << endl;
+                break;
+
+        }
+
 
     }
@@ -123,7 +150,10 @@
     void Asteroids2D::costLife()
     {
-        //endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Asteroids2D::end, this)));
-        lives = 0;
+        --lives;
+        if(live <= 0){
+            endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Asteroids2D::end, this)));            
+        }
     };
+    
 
     void Asteroids2D::start()
@@ -152,4 +182,5 @@
     }
 
+    //wird gerufen, falls man einen Asteroiden trifft->Aufruf durch Schiffklasse
     void Asteroids2D::addPoints(int numPoints)
     {
Index: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h	(revision 11616)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h	(revision 11617)
@@ -26,4 +26,6 @@
  *
  */
+
+
 
 /**
@@ -109,31 +111,9 @@
             bool b_combo, firstTick_;
 
-            Timer enemySpawnTimer;
             Timer comboTimer;
             Timer showLevelTimer;
+            Timer levelupTimer;
+            Timer endGameTimer;
 
-
-         /*
-
-            //void spawnEnemy();
-
-
-
-
-
-
-
-
-
-
-
-
-        private:
-
-
-
-
-            //Context* context;
-            */
     };
 }
Index: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc	(revision 11616)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc	(revision 11617)
@@ -27,4 +27,8 @@
  */
 
+/*TODO: orientation/direction of the ship must be defined
+        implement shoot function ->or switch it on?
+        switch off boosting particles in the back of the ship
+
 /**
     @file Asteroids2DShip.cc
@@ -49,8 +53,4 @@
         this->height = 646;
 
-        // not sure if has to be zero?
-        lastTimeFront = 0;
-        lastTimeLeft = 0;
-        lastTime = 0;
         timer.setTimer(3.5f, true, createExecutor(createFunctor(&Asteroids2DShip::showposition, this)));
     }
@@ -85,5 +85,4 @@
     void Asteroids2DShip::updateLevel()
     {
-        lastTime = 0;
         if (getGame())
             getGame()->levelUp();
Index: code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h
===================================================================
--- code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h	(revision 11616)
+++ code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h	(revision 11617)
@@ -87,5 +87,4 @@
             WeakPtr<Asteroids2D> game;
             WeakPtr<WorldEntity> lastEntity;
-            float lastTimeFront, lastTimeLeft, lastTime;
             struct Velocity
             {
