Index: code/branches/gamecontent/src/modules/pong/Pong.cc
===================================================================
--- code/branches/gamecontent/src/modules/pong/Pong.cc	(revision 8901)
+++ code/branches/gamecontent/src/modules/pong/Pong.cc	(revision 8904)
@@ -293,5 +293,4 @@
             std::string message(name1 + " has won!");
             ChatManager::message(message);
-this->tick(0);
             this->end();
         }
@@ -301,5 +300,4 @@
              std::string message2(name2 + " has won!");
              ChatManager::message(message2);
-this->tick(0);
              this->end();
         }
Index: code/branches/gamecontent/src/orxonox/controllers/WaypointPatrolController.cc
===================================================================
--- code/branches/gamecontent/src/orxonox/controllers/WaypointPatrolController.cc	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/controllers/WaypointPatrolController.cc	(revision 8904)
@@ -42,5 +42,4 @@
         RegisterObject(WaypointPatrolController);
 
-        //this->team_ = 0;
         this->alertnessradius_ = 500;
 
@@ -53,5 +52,4 @@
 
         XMLPortParam(WaypointPatrolController, "alertnessradius", setAlertnessRadius, getAlertnessRadius, xmlelement, mode).defaultValues(500.0f);
-//        XMLPortParam(WaypointPatrolController, "team", setTeam, getTeam, xmlelement, mode).defaultValues(0);
     }
 
Index: code/branches/gamecontent/src/orxonox/controllers/WaypointPatrolController.h
===================================================================
--- code/branches/gamecontent/src/orxonox/controllers/WaypointPatrolController.h	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/controllers/WaypointPatrolController.h	(revision 8904)
@@ -46,9 +46,4 @@
             virtual void tick(float dt);
 
-           /* inline void setTeam(int team)
-                { this->team_ = team; }
-            inline int getTeam() const
-                { return this->team_; } */
-
             inline void setAlertnessRadius(float radius)
                 { this->alertnessradius_ = radius; }
@@ -59,5 +54,4 @@
             void searchEnemy();
 
-            //int team_;
             float alertnessradius_;
             Timer patrolTimer_;
Index: code/branches/gamecontent/src/orxonox/gametypes/CMakeLists.txt
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/CMakeLists.txt	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/gametypes/CMakeLists.txt	(revision 8904)
@@ -10,3 +10,4 @@
   LastTeamStanding.cc
   TeamGametype.cc
+  Mission.cc
 )
Index: code/branches/gamecontent/src/orxonox/gametypes/Gametype.h
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/Gametype.h	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/gametypes/Gametype.h	(revision 8904)
@@ -123,5 +123,5 @@
                 { return this->gtinfo_->getHUDTemplate(); }
 
-            void addBots(unsigned int amount);
+            virtual void addBots(unsigned int amount);
             void killBots(unsigned int amount = 0);
 
Index: code/branches/gamecontent/src/orxonox/gametypes/Mission.cc
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/Mission.cc	(revision 8904)
+++ code/branches/gamecontent/src/orxonox/gametypes/Mission.cc	(revision 8904)
@@ -0,0 +1,87 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Johannes Ritz
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "Mission.h"
+//#inclued "TeamGametype.h"
+
+#include "core/CoreIncludes.h"
+#include "network/Host.h"
+#include "worldentities/pawns/Pawn.h"
+
+namespace orxonox
+{
+    CreateUnloadableFactory(Mission);
+
+    Mission::Mission(BaseObject* creator) : TeamGametype(creator)
+    {
+        RegisterObject(Mission);
+        this->missionAccomplished_ = false;
+        this->lives_ = 10; // should be 1 as default value
+        this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
+    }
+
+    void Mission::tick(float dt)
+    {
+        SUPER(Mission, tick, dt);
+
+        if (missionAccomplished_)
+        {
+            this->gtinfo_->sendAnnounceMessage("Mission accomplished!");
+            this->end();
+        }
+    }
+
+    void Mission::pawnKilled(Pawn* victim, Pawn* killer)
+    {
+        if (victim && victim->getPlayer() && this->lives_ == 1)
+        {
+            this->missionAccomplished_ = false;
+	    this->end();
+        }
+    }
+
+    void Mission::start()
+    {
+        Gametype::start();
+
+
+        this->gtinfo_->sendAnnounceMessage("Your mission has started!");
+    }
+
+    //void Mission::addBots(unsigned int amount)
+
+    void Mission::end()
+    {
+        Gametype::end();
+	/*if (this->missionAccomplished_) 
+            this->gtinfo_->sendAnnounceMessage("Mission accomplished!");
+	else
+            this->gtinfo_->sendAnnounceMessage("Mission failed!");
+	 * */
+    }
+}
Index: code/branches/gamecontent/src/orxonox/gametypes/Mission.h
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/Mission.h	(revision 8904)
+++ code/branches/gamecontent/src/orxonox/gametypes/Mission.h	(revision 8904)
@@ -0,0 +1,63 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Johannes Ritz
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _Mission_H__
+#define _Mission_H__
+
+#include "OrxonoxPrereqs.h"
+//#include "Gametype.h"
+#include "TeamGametype.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport Mission : public TeamGametype
+    {
+        public:
+            Mission(BaseObject* creator);
+            virtual ~Mission() {}
+
+            virtual void tick(float dt);
+
+            virtual void start();
+            virtual void end();
+            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+            inline void setLives(unsigned int amount)
+                {this->lives_ = amount;}
+	    inline unsigned int getLives()
+                {return this->lives_;}
+
+        protected:
+            virtual void pawnKilled(Pawn* victim, Pawn* killer = 0);
+            bool missionAccomplished_; //<! indicates if player successfully finsihed the mission;
+            int lives_; //<! amount of player's lives <-> nr. of retries
+
+    };
+}
+
+#endif /* _Mission_H__ */
+
Index: code/branches/gamecontent/src/orxonox/gametypes/TeamDeathmatch.h
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/TeamDeathmatch.h	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/gametypes/TeamDeathmatch.h	(revision 8904)
@@ -56,5 +56,4 @@
 
             int getTeam(PlayerInfo* player);
-
             inline const ColourValue& getTeamColour(int teamnr) const
                 { return this->teamcolours_[teamnr]; }
Index: code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc	(revision 8904)
@@ -67,6 +67,10 @@
     {
         Gametype::playerEntered(player);
-
-        std::vector<unsigned int> playersperteam(this->teams_, 0);
+        this->findAndSetTeam(player);
+    }
+
+    void TeamGametype::findAndSetTeam(PlayerInfo* player)
+    {
+         std::vector<unsigned int> playersperteam(this->teams_, 0);
 
         for (std::map<PlayerInfo*, int>::iterator it = this->teamnumbers_.begin(); it != this->teamnumbers_.end(); ++it)
@@ -86,4 +90,5 @@
 
         this->teamnumbers_[player] = minplayersteam;
+
     }
 
Index: code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h
===================================================================
--- code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h	(revision 8904)
@@ -47,4 +47,5 @@
 
             virtual void playerEntered(PlayerInfo* player);
+            virtual void findAndSetTeam(PlayerInfo* player);
             virtual bool playerLeft(PlayerInfo* player);
 
Index: code/branches/gamecontent/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/gamecontent/src/orxonox/worldentities/pawns/Pawn.cc	(revision 8901)
+++ code/branches/gamecontent/src/orxonox/worldentities/pawns/Pawn.cc	(revision 8904)
@@ -455,5 +455,5 @@
         SUPER(Pawn, changedActivity);
 
-        this->setRadarVisibility(this->isActive());
+        this->setRadarVisibility(this->isVisible());
     }
 
