Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc	(revision 10390)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc	(revision 10391)
@@ -19,11 +19,12 @@
 			RegisterObject(GravityBomb);
 
-			this->setMass(15.0);
+			this->setMass(10.0);
+			this->isDetonated_ = false;
 			if (GameMode::isMaster())
 			{
 				//Define CollisionType of the bomb
-				this->velocityAtLastTick_= 1000;
+				this->timeToLife_= 5;
 				this->setCollisionResponse(false);
-				this->setCollisionType(WorldEntity::Kinematic);
+				this->setCollisionType(WorldEntity::Dynamic);
 				this->enableCollisionCallback();
 
@@ -46,30 +47,34 @@
 	void GravityBomb::tick(float dt)
 	{
-			velocityAtLastTick_=getVelocity().length();
 			SUPER(GravityBomb,tick,dt);
-			if(velocityAtLastTick_ < this->getVelocity().length())
+			timeToLife_ -= dt;
+			if(timeToLife_ < 0)
 			{
 				orxout(debug_output) << "bomb has stoped moving" <<endl;
 				setVelocity(Vector3::ZERO);
 				setAcceleration(Vector3::ZERO);
-				velocityAtLastTick_=0;
 				detonate();
-				orxout(debug_output) << "denoting" <<endl;
 			}
 			else
 			{
-				velocityAtLastTick_=getVelocity().length();
-				orxout(debug_output)<< velocityAtLastTick_ <<endl;
-				orxout(debug_output) << "acceleration" << getAcceleration().length() <<endl;
+				orxout(debug_output)<< "Time to live:" << timeToLife_ <<endl;
 				destroyCheck();
 			}
+			if(isDetonated_) detonate();
 	}
 
 	bool GravityBomb::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
 	{
-		orxout(debug_output) << "collides" << endl;
-		processCollision(otherObject, contactPoint,cs);
-		//detonate();
-		return true;
+		if(otherObject != getShooter())
+		{
+			orxout(debug_output) << "collides" << endl;
+			processCollision(otherObject, contactPoint,cs);
+			isDetonated_ = true;
+			return true;
+		}
+		else{
+			orxout(debug_output) << "collided with shooter. Has no effect..." << endl;
+			return false;
+		}
 	}
 
@@ -77,5 +82,7 @@
 	{
 		GravityBombField* field = new GravityBombField(this->getContext());
-		orxout(debug_output) << "denoting" <<endl;
+		field->setPosition(getPosition());
+		orxout(debug_output) << "detonating. Creating GravityBombField." <<endl;
+		orxout(debug_output) << "Field is at Position: " << getPosition() << endl;
 		this->destroy();
 	}
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h	(revision 10390)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h	(revision 10391)
@@ -64,8 +64,7 @@
 			virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
 			void detonate();
-
 		private:
-
-		float velocityAtLastTick_; //Used to check wether the Object is already accelarating in the oposite direction to detect the time to detonate it.
+		bool isDetonated_; //Used to check whether the Bomb has to be destroyed during next tick.
+		float timeToLife_; //Time the bomb flies before it explodes.
 
 	};
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc	(revision 10390)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc	(revision 10391)
@@ -7,11 +7,12 @@
 
 #include "GravityBombField.h"
+#include "graphics/Model.h"
 
 namespace orxonox{
 	RegisterClass(GravityBombField);
 
-	const float GravityBombField::FORCE_FIELD_LIFETIME = 5;
-	const float GravityBombField::FORCE_SPHERE_START_RADIUS = 100;
-	const float GravityBombField::FORCE_SPHERE_START_STRENGTH = -1000;
+	const float GravityBombField::FORCE_FIELD_LIFETIME = 100;
+	const float GravityBombField::FORCE_SPHERE_START_RADIUS = 500;
+	const float GravityBombField::FORCE_SPHERE_START_STRENGTH = -500;
 
 	GravityBombField::GravityBombField(Context* context) : ForceField(context)
@@ -22,4 +23,11 @@
 		setDiameter(FORCE_SPHERE_START_RADIUS);
 		setMode(modeInvertedSphere_s);
+		setCollisionResponse(false);
+
+		//Attach Demo Model for debuging.
+			Model* model = new Model(this->getContext());
+			model->setMeshSource("rocket.mesh"); //Demo Model from SimpleRocket
+			model->scale(0.7f);
+			this->attach(model);
 	}
 
@@ -32,4 +40,5 @@
 		if(lifetime_ < 0)
 		{
+			orxout(debug_output) << "Timeout. Destroying field." << endl;
 			this->destroy();
 		}
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/LightningGunProjectile.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/LightningGunProjectile.cc	(revision 10390)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/LightningGunProjectile.cc	(revision 10391)
@@ -47,4 +47,6 @@
 
         this->textureIndex_ = 1;
+        this->setMass(2);
+        this->setCollisionType(Dynamic);
         this->maxTextureIndex_ = 8;
         this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&LightningGunProjectile::changeTexture, this)));
Index: code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10390)
+++ code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10391)
@@ -26,6 +26,5 @@
 		this->bParallelReload_ = false;
 		this->damage_ = 0.0f;
-		this->speed_ = 200.0f;
-		this->slowDownRate_ = -10.0f;
+		this->speed_ = 100.0f;
 
 		this->setMunitionName("GravityBombMunition");
@@ -41,6 +40,5 @@
         bomb->setOrientation(this->getMuzzleOrientation());
         bomb->setPosition(this->getMuzzlePosition());
-        bomb->setVelocity(this->getMuzzleDirection() * this->speed_);
-        bomb->setAcceleration(this->getMuzzleDirection()* this->slowDownRate_);
+        bomb->setVelocity(this->getMuzzleDirection() * (this->speed_+this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getVelocity().length()));
 
         bomb->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
Index: code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.h	(revision 10390)
+++ code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.h	(revision 10391)
@@ -58,5 +58,4 @@
         private:
             float speed_; //!< The initial speed of the bomb when it is launched.
-            float slowDownRate_;
     };
 }
