Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.cc	(revision 11660)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Viviane Yang
  *   Co-authors:
  *      ...
@@ -27,12 +27,14 @@
  */
 
-/*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
+
 
 /**
     @file Asteroids2D.cc
     @brief Implementation of the Asteroids2D class.
+
+    TODO: 
+        - Implement a counting system for the score
+        - HUD can be improved (display health, points, level etc.)
+        - Projectiles still 
 */
 
@@ -62,5 +64,5 @@
         this->center_ = nullptr;
         this->setHUDTemplate("Asteroids2DHUD");
-        levelupTimer.setTimer(60.0f, true, createExecutor(createFunctor(&Asteroids2D::levelUp, this)));
+        levelupTimer.setTimer(30.0f, true, createExecutor(createFunctor(&Asteroids2D::levelUp, this))); //level up every 30s
     }
 
@@ -92,5 +94,5 @@
 
 
-        //Nach jedem Level Up werden mehr Steine gespawnt -> abhängig vom Schwierigkeitsgrad
+        //After level up -> spawn stones
         for(int i = 0; i < level*2; i++){
             spawnStone();
@@ -101,5 +103,5 @@
     void Asteroids2D::tick(float dt)
     {
-        //Do this only for the first tick, generate 5 stones for the beginning
+        //Do this only for the first tick, generate 5 stones in the beginning
         if(this->firstTick_)
         {
@@ -118,4 +120,6 @@
     void Asteroids2D::spawnStone()
     {
+
+        //stones are created with a size
         Asteroids2DStone* newStone = new Asteroids2DStone(this->center_->getContext());
         newStone->setAsteroids2DPlayer(player);
@@ -158,5 +162,5 @@
     };
     
-//Funktion wird als erstes im Level aufgerufen
+    //The first function that will be called
     void Asteroids2D::start()
     {
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2D.h	(revision 11660)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Viviane Yang
  *   Co-authors:
  *      ...
@@ -31,5 +31,9 @@
 /**
     @file Asteroids2D.h
-    @brief Gametype.
+    @brief Gametype:
+     - Goal: Survive as long as you can, do not collide with stones
+     - spawns stones in every level up
+     - if you shoot and hit a stone, it will spit into two smaller stones
+     - 
     @ingroup Asteroids2D
 */
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.cc	(revision 11660)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Viviane Yang
  *   Co-authors:
  *      ...
@@ -54,4 +54,5 @@
     @brief
         Method to create a Asteroids2DCenterpoint through XML.
+        Set dimension of the field with "width_, height_"
     */
     void Asteroids2DCenterPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
@@ -61,4 +62,6 @@
         XMLPortParam(Asteroids2DCenterPoint, "dimension", setFieldDimension, getFieldDimension, xmlelement, mode);
     }
+
+
     void Asteroids2DCenterPoint::checkGametype()
     {
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DCenterPoint.h	(revision 11660)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Viviane Yang
  *   Co-authors:
  *      ...
@@ -64,5 +64,5 @@
 
         private:
-            void checkGametype();
+            void checkGametype(); //checks whether the gametype actually is Asteroids2D
             float width_, height_;
 
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.cc	(revision 11660)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Viviane Yang
  *   Co-authors:
  *      ...
@@ -27,7 +27,5 @@
  */
 
-/*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
+/*  TODO: 
 
 /**
@@ -54,5 +52,5 @@
         this->height = 646;
 
-        timer.setTimer(3.5f, true, createExecutor(createFunctor(&Asteroids2DShip::showposition, this)));
+        //timer.setTimer(3.5f, true, createExecutor(createFunctor(&Asteroids2DShip::showorientation, this)));
     }
 
@@ -64,4 +62,11 @@
     }
 
+    //Same thing for orientation
+    void Asteroids2DShip::showorientation()
+    {
+        Quaternion ort = this->getOrientation();
+        orxout() << "w = " << ort.w << " x = " << ort.x << " y = " << ort.y << "z = " << ort.z << endl;
+    }
+
     void Asteroids2DShip::tick(float dt)
     {
@@ -69,5 +74,5 @@
         Vector3 pos = this->getPosition();
 
-        //haelt ship innerhalb des Kamerafensters, kommt oben bzw seitlich wieder raus. Man spawnt in (0,0)
+        //ensure that the ship stays in playing field
         if(pos.x > width/2)   pos.x = -width/2;
         if(pos.x < -width/2)  pos.x = width/2;
@@ -79,7 +84,12 @@
         this->setPosition(pos);
 
-        //update level
+
 
         //shoot?
+    }
+
+    void Asteroids2DShip::boost(bool bBoost)
+    {
+        isFireing = bBoost;
     }
 
@@ -88,9 +98,4 @@
         if (getGame())
             getGame()->levelUp();
-    }
-
-    void Asteroids2DShip::boost(bool bBoost)
-    {
-        //getGame()->bEndGame = bBoost;
     }
 
@@ -107,5 +112,4 @@
             bImmune = true;
             isimmune.setTimer(3.0f, false, createExecutor(createFunctor(&Asteroids2DShip::toggleImmune, this)));
-            orxout()<< "touched" << endl;
         }
         return false;
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DShip.h	(revision 11660)
@@ -60,19 +60,16 @@
             virtual void tick(float dt) override;
 
-            // Starts or stops fireing
-            virtual void boost(bool bBoost) override;
-
             //no rotation in x and z direction!
-            //virtual void rotateYaw(const Vector2& value) override{}; // Rotate in yaw direction.
             virtual void rotatePitch(const Vector2& value) override{}; // Rotate in pitch direction.
             virtual void rotateRoll(const Vector2& value) override{}; // Rotate in roll direction.
-
+            virtual void boost(bool boost) override;
             virtual void updateLevel();
 
             virtual inline bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
 
-            float speed, damping, posforeward;
+            float speed, damping;
             bool isFireing;
             void showposition();
+            void showorientation();
             void toggleImmune()
             {
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DStone.cc
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DStone.cc	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DStone.cc	(revision 11660)
@@ -20,5 +20,5 @@
  *
  *   Author:
- *      Samuel Riedel
+ *      Viviane Yang
  *   Co-authors:
  *      ...
@@ -26,8 +26,15 @@
  */
 
+
+
 /**
     @file Asteroids2DStone.cc
+
     @brief Implementation of the Asteroids2DStone class.
-*/
+
+    TO DO:  
+    - instead of moving over the boarders of the playing field, modify the tick function so that the stones bounce back
+    - when to split? It does not work if you override kill() function...->damage() function?
+*/ 
 
 #include "Asteroids2DStone.h"
@@ -87,4 +94,5 @@
         Vector3 pos = this->getPosition();
 
+
         if(pos.x >= width/2){
             pos.x = -width/2;
@@ -103,7 +111,9 @@
     inline bool Asteroids2DStone::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
     {
+        orxout() << "AsteroidStone getroffen" << endl;
         if(orxonox_cast<Asteroids2DShip*>(otherObject))
         {
-            this->split();
+            orxout() << "getroffen von Ship" << endl;
+            split();
         }
         return false;
@@ -112,4 +122,5 @@
     void Asteroids2DStone::split()
     {
+        orxout() << "split" << endl;
         if(size == 1)
         {
@@ -117,8 +128,12 @@
 
         }else if(size == 2){
+
+
+            //Templates can be found in data/levels/templates/asteroidsAsteroids2D.oxt
             Asteroids2DStone* newStone1 = new Asteroids2DStone(this->getContext(), 1, this->getPosition());
             newStone1->addTemplate("stone1");
             Asteroids2DStone* newStone2 = new Asteroids2DStone(this->getContext(), 1, this->getPosition());
             newStone2->addTemplate("stone1");
+            
         }else{
             Asteroids2DStone* newStone1 = new Asteroids2DStone(this->getContext(), 2, this->getPosition());
@@ -129,22 +144,3 @@
     }
 
-
-
-
-    //Overload kill function to generate 2 asteriods
-    /*void Asteroids2DStone::kill()
-    {
-        this->damage(this->health)
-        if(this->size < 1)
-        {
-            this->death();
-        }else{
-            size -= 1;
-
-        }
-
-
-    }*/
-
-
 }
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DWeapon.cc
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DWeapon.cc	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DWeapon.cc	(revision 11660)
@@ -21,5 +21,5 @@
  *
  *   Author:
- *      Florian Zinggeler
+ *      Viviane Yang
  *   Co-authors:
  *      --
@@ -48,4 +48,6 @@
 #include "weapons/MuzzleFlash.h"
 
+#include "Asteroids2D.h"
+
 namespace orxonox
 {
@@ -55,4 +57,6 @@
     {
         RegisterObject(Asteroids2DWeapon);
+
+
     }
 
@@ -61,4 +65,17 @@
 
     }
+
+    Asteroids2D* Asteroids2DWeapon::getGame()
+    {
+        if (game == nullptr)
+        {
+            for (Asteroids2D* race : ObjectList<Asteroids2D>())
+            {
+                game = race;
+            }
+        }
+        return game;
+    }
+
 
     void Asteroids2DWeapon::shot()
@@ -75,7 +92,10 @@
 
         this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
-        projectile->setOrientation(this->getMuzzleOrientation());
+
+        //projectile->setOrientation(this->getGame()->getPlayer()->getOrientation());
         projectile->setPosition(this->getMuzzlePosition());
 
+
+        //auf 2D Ebene druecken
         Vector3 muzzle2D = this->getMuzzleDirection();
         muzzle2D.y = 0; 
Index: /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DWeapon.h
===================================================================
--- /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DWeapon.h	(revision 11659)
+++ /code/branches/Asteroid_HS17/src/modules/asteroids2D/Asteroids2DWeapon.h	(revision 11660)
@@ -40,4 +40,6 @@
 #include "weapons/weaponmodes/HsW01.h"
 
+#include "Asteroids2D.h"
+
 namespace orxonox
 {
@@ -47,7 +49,11 @@
             Asteroids2DWeapon(Context* context);
             virtual ~Asteroids2DWeapon();
+            Asteroids2D* getGame();
+
+
         protected:
             virtual void shot() override;
             WeakPtr<Projectile> projectile;
+            WeakPtr<Asteroids2D> game;
     };
 }
