Index: code/branches/dynamicmatch/src/orxonox/gametypes/Dynamicmatch.cc
===================================================================
--- code/branches/dynamicmatch/src/orxonox/gametypes/Dynamicmatch.cc	(revision 6692)
+++ code/branches/dynamicmatch/src/orxonox/gametypes/Dynamicmatch.cc	(revision 6697)
@@ -34,8 +34,10 @@
 #include "infos/PlayerInfo.h"
 #include "worldentities/pawns/Pawn.h"
+#include "worldentities/pawns/SpaceShip.h"
 #include "core/ConfigValueIncludes.h"
 #include "interfaces/TeamColourable.h"
-//#include "Engine.h"
-//timer mit new erstellen
+#include "items/Engine.h"
+#include "tools/Timer.h"
+
 namespace orxonox
 {
@@ -55,4 +57,19 @@
     }
 
+    void Dynamicmatch::setConfigValues()
+    {
+        SetConfigValue(gameTime_, 180);//just for test cases
+	SetConfigValue(friendlyfire, true);
+	static ColourValue colours[] =
+        {
+	    ColourValue(0.3f, 0.3f, 1.0f),
+            ColourValue(1.0f, 0.3f, 0.3f)
+            
+        };
+        static std::vector<ColourValue> defaultcolours(colours, colours + sizeof(colours) / sizeof(ColourValue));
+
+        SetConfigValue(partyColours_, defaultcolours);
+    }
+
 void Dynamicmatch::setPlayerColour(PlayerInfo* player) // not sure if this is the right place - helper function
 {
@@ -81,20 +98,4 @@
 }
 
-
-
-void Dynamicmatch::setConfigValues()
-    {
-        SetConfigValue(gameTime_, 180);//just for test cases
-	SetConfigValue(friendlyfire, true);
-	static ColourValue colours[] =
-        {
-	    ColourValue(0.3f, 0.3f, 1.0f),
-            ColourValue(1.0f, 0.3f, 0.3f)
-            
-        };
-        static std::vector<ColourValue> defaultcolours(colours, colours + sizeof(colours) / sizeof(ColourValue));
-
-        SetConfigValue(partyColours_, defaultcolours);
-    }
 
 bool Dynamicmatch::allowPawnDamage(Pawn* victim, Pawn* originator)//tested - works fine
@@ -120,8 +121,18 @@
         		COUT(0) << messageVictim << std::endl;
 			Host::Broadcast(messageVictim);
-		//party switch -> colour switch
-		
-		setPlayerColour(victim->getPlayer()); //victim colour
-		setPlayerColour(originator->getPlayer());//orginator colour
+
+			//party switch -> colour switch		
+			setPlayerColour(victim->getPlayer()); //victim colour
+			setPlayerColour(originator->getPlayer());//orginator colour
+
+			//Give new pig boost
+			SpaceShip* spaceship = dynamic_cast<SpaceShip*>(victim);
+			if (spaceship && spaceship->getEngine())
+			{
+				spaceship->getEngine()->setSpeedFactor(5);
+				WeakPtr<Engine>* ptr = new WeakPtr<Engine>(spaceship->getEngine());
+				new Timer(10, false, &createExecutor(createFunctor(&Dynamicmatch::resetSpeedFactor, this))->setDefaultValue(0, ptr), true);
+			}
+
 		}
 		//Case 3: there are only chasers -> new piggy is needed
@@ -131,6 +142,15 @@
 			onlyChasers=false;
 			setPlayerColour(victim->getPlayer()); //victim colour
-		//victim - Boost ueber setBoostFactor(float factor) //vermutlich muss victim gecastet werden
-		// timer aufrufen - nach 5 Sekunden wieder auf normalgeschwindigkeit setzen
+
+			//Give new pig boost
+			SpaceShip* spaceship = dynamic_cast<SpaceShip*>(victim);
+			if (spaceship && spaceship->getEngine())
+			{
+				spaceship->getEngine()->setSpeedFactor(5);
+				WeakPtr<Engine>* ptr = new WeakPtr<Engine>(spaceship->getEngine());
+				new Timer(10, false, &createExecutor(createFunctor(&Dynamicmatch::resetSpeedFactor, this))->setDefaultValue(0, ptr), true);
+			}
+
+
 		std::string message("First victim.");
         	COUT(0) << message << std::endl;
@@ -150,6 +170,12 @@
     }
 
-        
-    
+void Dynamicmatch::resetSpeedFactor(WeakPtr<Engine>* ptr)
+{
+	if (*ptr)
+	{
+		(*ptr)->setSpeedFactor(1.0f);
+	}
+	delete ptr;
+}
 
 bool Dynamicmatch::allowPawnDeath(Pawn* victim, Pawn* originator)//
@@ -192,7 +218,6 @@
         if (!player)
             return;
-	playerParty_[player]=chaser;//playerparty
-	// Set the playercolour
- 	Dynamicmatch::setPlayerColour(player);
+	playerParty_[player]=chaser;//playerparty	
+ 	Dynamicmatch::setPlayerColour(player); //Set playercolour
     }
 
Index: code/branches/dynamicmatch/src/orxonox/gametypes/Dynamicmatch.h
===================================================================
--- code/branches/dynamicmatch/src/orxonox/gametypes/Dynamicmatch.h	(revision 6692)
+++ code/branches/dynamicmatch/src/orxonox/gametypes/Dynamicmatch.h	(revision 6697)
@@ -58,4 +58,6 @@
             virtual bool playerLeft(PlayerInfo* player);//ToDo: extract the player's party record - done?
             virtual bool playerChangedName(PlayerInfo* player);//unchanged
+
+		void resetSpeedFactor(WeakPtr<Engine>* ptr);
 	
             
