Index: code/branches/invaders/data/overlays/InvaderHUD.oxo
===================================================================
--- code/branches/invaders/data/overlays/InvaderHUD.oxo	(revision 9828)
+++ code/branches/invaders/data/overlays/InvaderHUD.oxo	(revision 9829)
@@ -30,5 +30,5 @@
      colour    = "1.0, 1.0, 1.0, 1.0"
      align     = "left"
-     caption   = "Players: "
+     caption   = "Level: "
     />
 
Index: code/branches/invaders/src/modules/invader/Invader.cc
===================================================================
--- code/branches/invaders/src/modules/invader/Invader.cc	(revision 9828)
+++ code/branches/invaders/src/modules/invader/Invader.cc	(revision 9829)
@@ -64,5 +64,11 @@
         this->setHUDTemplate("InvaderHUD");
 
+        lives = 3;
+        level = 1;
+        point = 0;
+        multiplier = 1;
+        b_combo = false;
         enemySpawnTimer.setTimer(2.0f, true, createExecutor(createFunctor(&Invader::spawnEnemy, this)));
+        comboTimer.setTimer(2.5f, true, createExecutor(createFunctor(&Invader::comboControll, this)));
     }
 
@@ -85,4 +91,13 @@
 
         newPawn->setPosition(player->getPosition() + Vector3(1000, 0, 0)); // BUG: 
+    }
+
+    void Invader::comboControll()
+    {
+        if (b_combo)
+            multiplier++;
+        else
+            multiplier = 1;
+        b_combo = false;
     }
 
Index: code/branches/invaders/src/modules/invader/Invader.h
===================================================================
--- code/branches/invaders/src/modules/invader/Invader.h	(revision 9828)
+++ code/branches/invaders/src/modules/invader/Invader.h	(revision 9829)
@@ -66,4 +66,9 @@
             int getLevel(){return this->level;}
             int getPoints(){return this->point;}
+
+            void costLife(){lives--; if (lives == 0) orxout() << "end<<<<<<<<<<<<<<<<<" << endl;};
+            void levelUp(){level++;}
+            void addPoints(int numPoints){point += numPoints * multiplier; b_combo = true;}
+            void comboControll();
         private:
             WeakPtr<InvaderCenterPoint> center_;
@@ -72,8 +77,11 @@
             ConsoleCommand* console_addEnemy;
             Timer enemySpawnTimer;
+            Timer comboTimer;
             //Context* context;
             int lives;
             int level;
             int point;
+            bool b_combo;
+            int multiplier;
     };
 }
Index: code/branches/invaders/src/modules/invader/InvaderEnemy.cc
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderEnemy.cc	(revision 9828)
+++ code/branches/invaders/src/modules/invader/InvaderEnemy.cc	(revision 9829)
@@ -58,3 +58,20 @@
         return false;
     }
+
+    WeakPtr<Invader> InvaderEnemy::getGame()
+    {
+        if (game == NULL)
+        {
+            for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
+                game = *it;
+        }
+        return game;
+    }
+
+    void InvaderEnemy::damage(float damage, float healthdamage, float shielddamage, Pawn* originator)
+    {
+        if (getGame())
+            getGame()->addPoints(42);
+        // SUPER(InvaderEnemy, damage, damage, healthdamage, shielddamage, originator);
+    }
 }
Index: code/branches/invaders/src/modules/invader/InvaderEnemy.h
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderEnemy.h	(revision 9828)
+++ code/branches/invaders/src/modules/invader/InvaderEnemy.h	(revision 9829)
@@ -49,6 +49,9 @@
             virtual void tick(float dt);
             virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
+            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
 
         private:
+            WeakPtr<Invader> getGame();
+            WeakPtr<Invader> game;
             Camera* camera;
             bool isFireing;
Index: code/branches/invaders/src/modules/invader/InvaderShip.cc
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderShip.cc	(revision 9828)
+++ code/branches/invaders/src/modules/invader/InvaderShip.cc	(revision 9829)
@@ -36,4 +36,5 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "Invader.h"
 
 namespace orxonox
@@ -120,4 +121,10 @@
     {
         lastTime = 0;
+        if (getGame())
+        {
+            getGame()->levelUp();
+            // SmartPtr<Invader> game = orxonox_cast<Invader>(getGametype());
+            
+        }
         //level++
     }
@@ -151,4 +158,10 @@
             {
                 orxout() << "DIED!!!! " << endl;
+                if (getGame())
+                {
+                    getGame()->costLife();
+                    // SmartPtr<Invader> game = orxonox_cast<Invader>(getGametype());
+                    
+                }
             }
             return false;
@@ -157,3 +170,13 @@
         // SUPER(InvaderShip, collidesAgainst, otherObject, contactPoint);
     }
+
+    WeakPtr<Invader> InvaderShip::getGame()
+    {
+        if (game == NULL)
+        {
+            for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
+                game = *it;
+        }
+        return game;
+    }
 }
Index: code/branches/invaders/src/modules/invader/InvaderShip.h
===================================================================
--- code/branches/invaders/src/modules/invader/InvaderShip.h	(revision 9828)
+++ code/branches/invaders/src/modules/invader/InvaderShip.h	(revision 9829)
@@ -65,4 +65,7 @@
             virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
         private:
+
+            WeakPtr<Invader> getGame();
+            WeakPtr<Invader> game;
             Camera* camera;
             bool isFireing;
