Index: /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRace.cc
===================================================================
--- /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRace.cc	(revision 11985)
+++ /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRace.cc	(revision 11986)
@@ -142,5 +142,5 @@
         }
 
-        std::string message("Use headphones to hear the countdown! Press W for forward acceleration, W+space bar for boost!");
+        std::string message("Use headphones to hear the countdown! Press W for forward acceleration, press W+space for boost!");
 
         this->getGametypeInfo()->sendAnnounceMessage(message);
@@ -191,6 +191,4 @@
         int ms = static_cast<int>(this->clock_.getMilliseconds() - 1000*s);
         std::string message;
-        message = multi_cast<std::string>(s)+"You could not reach the last checkpoint before your opponents. YOU LOOSE!";
-
         if (this->bTimeIsUp_)
         {
@@ -198,4 +196,8 @@
                         + "You loose!";
         }
+       else if(this->bLost){
+            message = multi_cast<std::string>(s)+"You could not reach the last checkpoint before your opponents. YOU LOOSE!";
+
+       }        
        
         else
@@ -207,4 +209,5 @@
         if (!this->hasEnded())
         {
+
             this->getGametypeInfo()->sendAnnounceMessage(message);
             ChatManager::message(message);
@@ -222,10 +225,14 @@
 
        
-    
-        const std::string& message = player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
+        std::string message(player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
+        + " after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds.");
+
+        this->getGametypeInfo()->sendAnnounceMessage(message);
+        ChatManager::message(message);
+      /*  const std::string& message = player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
         + "after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds.";
         this->getGametypeInfo()->sendAnnounceMessage(message);
-        ChatManager::message(message);
-        if(checkpoint->getCheckpointIndex()==20){
+        ChatManager::message(message);*/
+        if(checkpoint->getCheckpointIndex()==19){
              const std::string& message = player->getName() + " reached the checkpoint " + multi_cast<std::string>(checkpoint->getCheckpointIndex() + 1) 
                 + "after " + multi_cast<std::string>(s) + "." + multi_cast<std::string>(ms) + " seconds and WON THE GAME.";
Index: /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRace.h
===================================================================
--- /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRace.h	(revision 11985)
+++ /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRace.h	(revision 11986)
@@ -41,4 +41,5 @@
 
 #include "SpaceRaceManager.h"
+
 
 namespace orxonox
@@ -88,5 +89,5 @@
             virtual bool allowPawnDeath(Pawn* victim, Pawn* originator) override;
             bool countdown_mode = false;
-            float time_passed = 4.0f;
+            float time_passed = 11.0f;
             
             bool bLost=false;
Index: /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRaceController.cc	(revision 11985)
+++ /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRaceController.cc	(revision 11986)
@@ -107,12 +107,13 @@
         return returnVec;
     }
-    /*void SpaceRaceController::endtheGame() const {
+    void SpaceRaceController::endtheGame() const {
         SpaceRace* gametype = orxonox_cast<SpaceRace*>(this->getGametype());
-        assert(gametype);
-        if (!gametype)
+        assert(gametype)
+;        if (!gametype)
         return;
+        gametype->bLost=true;
         gametype->end();
 
-    }*/
+    }
     /*
      * called from 'findStaticCheckpoints'
@@ -176,4 +177,5 @@
         {
             RaceCheckPoint* nextRaceCheckPoint = findCheckpoint(checkpointIndex);
+
             float distance = recCalculateDistance(nextRaceCheckPoint, this->getControllableEntity()->getPosition());
 
@@ -184,7 +186,10 @@
 
             }
-
-        }
-        if(minNextRaceCheckPoint == nullptr) { orxout()<<"nullptr found @181 SpaceRaceController" << endl;}
+            //There is a bug. If the user passes through the 19th checkpoint with the opponents, the game will end immediately
+            if(nextRaceCheckPoint->isLast())
+                endtheGame(); 
+
+        }
+        if(minNextRaceCheckPoint == nullptr) { orxout()<<"nullptr found @192 SpaceRaceController" << endl;}
         return minNextRaceCheckPoint;
     }
Index: /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRaceController.h
===================================================================
--- /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRaceController.h	(revision 11985)
+++ /code/branches/RacingBots_FS18/src/modules/gametypes/SpaceRaceController.h	(revision 11986)
@@ -58,5 +58,5 @@
             RaceCheckPoint* nextPointFind(RaceCheckPoint*);
             RaceCheckPoint* adjustNextPoint();
-            //void endtheGame() const;
+            void endtheGame() const;
 
             std::vector<RaceCheckPoint*> findStaticCheckpoints(RaceCheckPoint*, const std::vector<RaceCheckPoint*>&);
