Index: code/branches/weaponFS15/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/weaponFS15/data/levels/emptyLevel.oxw	(revision 10600)
+++ code/branches/weaponFS15/data/levels/emptyLevel.oxw	(revision 10601)
@@ -13,5 +13,5 @@
 
 <?lua
-  include("templates/spaceshipAssff.oxt")
+  include("templates/spaceshipAssff2.oxt")
   include("templates/spaceshipPirate.oxt")
   include("templates/spaceshipEscort.oxt")
@@ -30,5 +30,5 @@
 
     <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
-    <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
+    <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
     
   </Scene>
Index: code/branches/weaponFS15/data/levels/includes/weaponSettingsAssff.oxi
===================================================================
--- code/branches/weaponFS15/data/levels/includes/weaponSettingsAssff.oxi	(revision 10600)
+++ code/branches/weaponFS15/data/levels/includes/weaponSettingsAssff.oxi	(revision 10601)
@@ -11,5 +11,4 @@
     </weaponsets>
     <weapons>
-	 
       <WeaponPack>
         <links>
@@ -52,5 +51,5 @@
         </links>
         <Weapon>
-          <!EnergyDrink mode=3 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" /-->
+          <!--EnergyDrink mode=3 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" /-->
         </Weapon>
       </WeaponPack>
Index: code/branches/weaponFS15/src/modules/objects/ForceField.h
===================================================================
--- code/branches/weaponFS15/src/modules/objects/ForceField.h	(revision 10600)
+++ code/branches/weaponFS15/src/modules/objects/ForceField.h	(revision 10601)
@@ -161,9 +161,9 @@
 
             static const std::string modeTube_s;
-			static const std::string modeSphere_s;
-			static const std::string modeInvertedSphere_s;
-			static const std::string modeNewtonianGravity_s;
+            static const std::string modeSphere_s;
+            static const std::string modeInvertedSphere_s;
+            static const std::string modeNewtonianGravity_s;
 
-			static const std::string modeHomogen_s;
+            static const std::string modeHomogen_s;
 
         private:
Index: code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.cc	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.cc	(revision 10601)
@@ -12,17 +12,17 @@
 RegisterClass(GravityBombMunition);
 
-	GravityBombMunition::GravityBombMunition(Context* context) : Munition(context)
-	{
-		RegisterObject(GravityBombMunition);
-		this->maxMunitionPerMagazine_ = 1;
-		this->maxMagazines_ = 30;
-		this->magazines_ = 15;
+    GravityBombMunition::GravityBombMunition(Context* context) : Munition(context)
+    {
+        RegisterObject(GravityBombMunition);
+        this->maxMunitionPerMagazine_ = 1;
+        this->maxMagazines_ = 30;
+        this->magazines_ = 15;
 
-		this->bUseSeparateMagazines_ = false;
-		this->bStackMunition_ = true;
+        this->bUseSeparateMagazines_ = false;
+        this->bStackMunition_ = true;
 
-		this->bAllowMunitionRefilling_ = true;
-		this->bAllowMultiMunitionRemovementUnderflow_ = false;
-	}
+        this->bAllowMunitionRefilling_ = true;
+        this->bAllowMultiMunitionRemovementUnderflow_ = false;
+    }
 
 }
Index: code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.h	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.h	(revision 10601)
@@ -14,17 +14,17 @@
 namespace orxonox
 {
-	/**
-	 * @class	GravityBombMunition
-	 *
-	 * @brief	This class is used to set the behaviour of various 
-	 * 			munition specific attributes of the GravityBomb like max count of munition per magazine.
-	 *
-	 * @author	Manuel
-	 * @date	23.05.2015
-	 */
-	class _WeaponsExport GravityBombMunition : public Munition
+    /**
+     * @class   GravityBombMunition
+     *
+     * @brief   This class is used to set the behaviour of various 
+     *          munition specific attributes of the GravityBomb like max count of munition per magazine.
+     *
+     * @author  Manuel
+     * @date    23.05.2015
+     */
+    class _WeaponsExport GravityBombMunition : public Munition
     {
         public:
-			GravityBombMunition(Context* context);
+            GravityBombMunition(Context* context);
             virtual ~GravityBombMunition() {}
     };
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc	(revision 10601)
@@ -10,92 +10,92 @@
 
 namespace orxonox{
-	RegisterClass(GravityBomb);
+    RegisterClass(GravityBomb);
 
-	const float GravityBomb::LIFETIME = 2.5;  ///< The gravity bomb lifetime in seconds.
+    const float GravityBomb::LIFETIME = 2.5;  ///< The gravity bomb lifetime in seconds.
 
-	GravityBomb::GravityBomb(Context* context):
-				BasicProjectile(),
-				MovableEntity(context),
-				RadarViewable(this,static_cast<WorldEntity*>(this))
-		{
-			RegisterObject(GravityBomb);
+    GravityBomb::GravityBomb(Context* context):
+                BasicProjectile(),
+                MovableEntity(context),
+                RadarViewable(this,static_cast<WorldEntity*>(this))
+        {
+            RegisterObject(GravityBomb);
 
-			this->setMass(10.0);
-			this->hasCollided_ = false;
-			if (GameMode::isMaster())
-			{
-				//Define CollisionType of the bomb
-				this->timeToLife_= LIFETIME;
-				this->setCollisionResponse(false);
-				this->setCollisionType(WorldEntity::Dynamic);
-				this->enableCollisionCallback();
+            this->setMass(10.0);
+            this->hasCollided_ = false;
+            if (GameMode::isMaster())
+            {
+                //Define CollisionType of the bomb
+                this->timeToLife_= LIFETIME;
+                this->setCollisionResponse(false);
+                this->setCollisionType(WorldEntity::Dynamic);
+                this->enableCollisionCallback();
 
-				//Add Collision Shape
-				SphereCollisionShape* collisionShape = new SphereCollisionShape(context);
-				collisionShape->setRadius(1.0);
-				this->attachCollisionShape(collisionShape);
+                //Add Collision Shape
+                SphereCollisionShape* collisionShape = new SphereCollisionShape(context);
+                collisionShape->setRadius(1.0);
+                this->attachCollisionShape(collisionShape);
 
-				//Create Bomb Model
-	            Model* rocketModel = new Model(this->getContext());
-	            rocketModel->setMeshSource("GravityBombRocket.mesh"); //Demo Model from SimpleRocket
-	            rocketModel->scale(3.0f);
-	            this->attach(rocketModel);
-				//Add second model because the bomb consists of the bomb and attached rockets (2 separate models)
-	            Model* bombModel =  new Model(this->getContext());
-	            bombModel->setMeshSource("GravityBomb.mesh"); //Demo Model from SimpleRocket
-				bombModel->scale(3.0f);
-				this->attach(bombModel);
+                //Create Bomb Model
+                Model* rocketModel = new Model(this->getContext());
+                rocketModel->setMeshSource("GravityBombRocket.mesh"); //Demo Model from SimpleRocket
+                rocketModel->scale(3.0f);
+                this->attach(rocketModel);
+                //Add second model because the bomb consists of the bomb and attached rockets (2 separate models)
+                Model* bombModel =  new Model(this->getContext());
+                bombModel->setMeshSource("GravityBomb.mesh"); //Demo Model from SimpleRocket
+                bombModel->scale(3.0f);
+                this->attach(bombModel);
 
-				//Add particle effect to the flying rockets.
-				ParticleEmitter* fire = new ParticleEmitter(this->getContext());
-				fire->setOrientation(this->getOrientation());
-				fire->setSource("Orxonox/simplerocketfire");
-				this->attach(fire);
+                //Add particle effect to the flying rockets.
+                ParticleEmitter* fire = new ParticleEmitter(this->getContext());
+                fire->setOrientation(this->getOrientation());
+                fire->setSource("Orxonox/simplerocketfire");
+                this->attach(fire);
 
-				//Add sound effect while the bomb is flying.
-				WorldSound* bombSound = new WorldSound(context);
-				bombSound->setSource("sounds/GravityBombFlight.ogg");
-				bombSound->setLooping(true);
-				bombSound->setVolume(1.0);
-				this->attach(bombSound);
-				bombSound->play();
-			}
-		}
+                //Add sound effect while the bomb is flying.
+                WorldSound* bombSound = new WorldSound(context);
+                bombSound->setSource("sounds/GravityBombFlight.ogg");
+                bombSound->setLooping(true);
+                bombSound->setVolume(1.0);
+                this->attach(bombSound);
+                bombSound->play();
+            }
+        }
 
-	GravityBomb::~GravityBomb(){}
+    GravityBomb::~GravityBomb(){}
 
-	void GravityBomb::tick(float dt)
-	{
-		SUPER(GravityBomb, tick, dt);
-		timeToLife_ -= dt;
-		if (timeToLife_ < 0)
-		{
-			//orxout(debug_output) << "bomb has stoped moving" <<endl;
-			setVelocity(Vector3::ZERO); //Stop the bomb.
-			detonate();
-			this->destroy();
-		}
-		else 
-		{
-			if (hasCollided_) detonate();
-			destroyCheck(); //Bomb is going to be destroyed by destroyCheck(). As written in BasicProectile, this Method should be called by every Projectile.
-		}
-	}
+    void GravityBomb::tick(float dt)
+    {
+        SUPER(GravityBomb, tick, dt);
+        timeToLife_ -= dt;
+        if (timeToLife_ < 0)
+        {
+            //orxout(debug_output) << "bomb has stoped moving" <<endl;
+            setVelocity(Vector3::ZERO); //Stop the bomb.
+            detonate();
+            this->destroy();
+        }
+        else 
+        {
+            if (hasCollided_) detonate();
+            destroyCheck(); //Bomb is going to be destroyed by destroyCheck(). As written in BasicProectile, this Method should be called by every Projectile.
+        }
+    }
 
-	bool GravityBomb::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
-	{
-		hasCollided_ = processCollision(otherObject, contactPoint, cs);
-		return hasCollided_;
-	}
+    bool GravityBomb::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
+    {
+        hasCollided_ = processCollision(otherObject, contactPoint, cs);
+        return hasCollided_;
+    }
 
-	void GravityBomb::detonate()
-	{
-		//Create the GravityBombField and destroy the Projectil.
-		GravityBombField* field = new GravityBombField(this->getContext());
-		field->setShooter(this->getShooter());
-		field->setPosition(getPosition());
-		//orxout(debug_output) << "detonating. Creating GravityBombField." <<endl;
-		//orxout(debug_output) << "Field is at Position: " << getPosition() << endl;
-	}
+    void GravityBomb::detonate()
+    {
+        //Create the GravityBombField and destroy the Projectil.
+        GravityBombField* field = new GravityBombField(this->getContext());
+        field->setShooter(this->getShooter());
+        field->setPosition(getPosition());
+        //orxout(debug_output) << "detonating. Creating GravityBombField." <<endl;
+        //orxout(debug_output) << "Field is at Position: " << getPosition() << endl;
+    }
 }
 
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h	(revision 10601)
@@ -26,30 +26,30 @@
 namespace orxonox
 {
-	/**
-	 * @class	GravityBomb
-	 *
-	 * @brief	This class implements how long the bomb flies before it places the GravityField at it's last possition.
-	 * 			The field will be created either because the timelimit of the bomb expired or it hit something. After creation of the field,
-	 * 			the projectile (this object) is destroyed.
-	 *
-	 * @author	Manuel Eggimann
-	 * @date	23.05.2015
-	 */
-	class _WeaponsExport GravityBomb : public BasicProjectile , public MovableEntity, public RadarViewable
-	{
-		public:
-			GravityBomb(Context* context);
-			virtual ~GravityBomb();
-			virtual void tick(float dt);
+    /**
+     * @class   GravityBomb
+     *
+     * @brief   This class implements how long the bomb flies before it places the GravityField at it's last possition.
+     *          The field will be created either because the timelimit of the bomb expired or it hit something. After creation of the field,
+     *          the projectile (this object) is destroyed.
+     *
+     * @author  Manuel Eggimann
+     * @date    23.05.2015
+     */
+    class _WeaponsExport GravityBomb : public BasicProjectile , public MovableEntity, public RadarViewable
+    {
+        public:
+            GravityBomb(Context* context);
+            virtual ~GravityBomb();
+            virtual void tick(float dt);
 
-			virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
-			void detonate();
-		private:
-		static const float LIFETIME;
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
+            void detonate();
+        private:
+        static const float LIFETIME;
 
-		bool hasCollided_;
-		float timeToLife_; //Time the bomb flies before it explodes.
-		WorldSound* bombSound_;
-	};
+        bool hasCollided_;
+        float timeToLife_; //Time the bomb flies before it explodes.
+        WorldSound* bombSound_;
+    };
 }
 #endif /* GravityBOMB_H_ */
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc	(revision 10601)
@@ -10,168 +10,168 @@
 
 namespace orxonox{
-	RegisterClass(GravityBombField);
+    RegisterClass(GravityBombField);
 
-	//Change these constants to alter the behaviour of the field.
-	
-	const float GravityBombField::FORCE_FIELD_LIFETIME = 15;
-	const float GravityBombField::FORCE_SPHERE_START_RADIUS = 250;
-	const float GravityBombField::FORCE_SPHERE_START_STRENGTH = -700;
-	const float GravityBombField::PEAK_EXPLOSION_FORCE = 5e4;
-	const float GravityBombField::FORCE_FIELD_EXPLOSION_DAMMAGE = 100;
-	const float GravityBombField::EXPLOSION_DURATION = 1;
-	const float GravityBombField::EXPLOSION_RADIUS = 600;
-	const float GravityBombField::PEAK_ANGULAR_VELOCITY = 20;
-	const float GravityBombField::CENTRE_MODEL_END_SIZE = 1.5;
+    //Change these constants to alter the behaviour of the field.
+    
+    const float GravityBombField::FORCE_FIELD_LIFETIME = 15;
+    const float GravityBombField::FORCE_SPHERE_START_RADIUS = 250;
+    const float GravityBombField::FORCE_SPHERE_START_STRENGTH = -700;
+    const float GravityBombField::PEAK_EXPLOSION_FORCE = 5e4;
+    const float GravityBombField::FORCE_FIELD_EXPLOSION_DAMMAGE = 100;
+    const float GravityBombField::EXPLOSION_DURATION = 1;
+    const float GravityBombField::EXPLOSION_RADIUS = 600;
+    const float GravityBombField::PEAK_ANGULAR_VELOCITY = 20;
+    const float GravityBombField::CENTRE_MODEL_END_SIZE = 1.5;
 
-	GravityBombField::GravityBombField(Context* context) : ForceField(context),RadarViewable(this, static_cast<WorldEntity*>(this))
-	{
-		RegisterObject(GravityBombField);
-		//Initialize variable with their initial values.
-		lifetime_=FORCE_FIELD_LIFETIME;
-		forceStrength_ = FORCE_SPHERE_START_STRENGTH;
-		forceSphereRadius_ = FORCE_SPHERE_START_RADIUS;
-		modelScaling_ = 1;
-		fieldExploded_ = false;
+    GravityBombField::GravityBombField(Context* context) : ForceField(context),RadarViewable(this, static_cast<WorldEntity*>(this))
+    {
+        RegisterObject(GravityBombField);
+        //Initialize variable with their initial values.
+        lifetime_=FORCE_FIELD_LIFETIME;
+        forceStrength_ = FORCE_SPHERE_START_STRENGTH;
+        forceSphereRadius_ = FORCE_SPHERE_START_RADIUS;
+        modelScaling_ = 1;
+        fieldExploded_ = false;
 
-		setVelocity(FORCE_SPHERE_START_STRENGTH);
-		setDiameter(2*FORCE_SPHERE_START_RADIUS);
-		setMode(modeSphere_s);
-		setCollisionResponse(false);
+        setVelocity(FORCE_SPHERE_START_STRENGTH);
+        setDiameter(2*FORCE_SPHERE_START_RADIUS);
+        setMode(modeSphere_s);
+        setCollisionResponse(false);
 
-		//Make the Field visible on Radar and minimap.
-		this->setRadarObjectColour(ColourValue(1.0, 0.0, 0.2,1)); // Red
-		this->setRadarObjectShape(RadarViewable::Dot);
-		this->setRadarObjectScale(1.0f);
-		
+        //Make the Field visible on Radar and minimap.
+        this->setRadarObjectColour(ColourValue(1.0, 0.0, 0.2,1)); // Red
+        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectScale(1.0f);
+        
 
-		//Attach Model
-		Model* model = new Model(this->getContext());
-		model->setMeshSource("GravityBomb.mesh"); //Demo Model from SimpleRocket
-		model->scale(2.5f);
-		bombModel_ = new MovableEntity(context);
-		bombModel_->attach(model);
-		this->attach(bombModel_);
+        //Attach Model
+        Model* model = new Model(this->getContext());
+        model->setMeshSource("GravityBomb.mesh"); //Demo Model from SimpleRocket
+        model->scale(2.5f);
+        bombModel_ = new MovableEntity(context);
+        bombModel_->attach(model);
+        this->attach(bombModel_);
 
-		//Add a Backlight to the centre.
-		centreLight_ = new Backlight(context);
-		centreLight_->setColour(ColourValue(0.2,0.9,0.2,1));
-		centreLight_->setScale(0.3);
-		centreLight_->setTrailMaterial("Trail/backlighttrail");
-		centreLight_->setMaterial("Examples/Flare");
-		centreLight_->setLifetime(20);
-		bombModel_->attach(centreLight_);
+        //Add a Backlight to the centre.
+        centreLight_ = new Backlight(context);
+        centreLight_->setColour(ColourValue(0.2,0.9,0.2,1));
+        centreLight_->setScale(0.3);
+        centreLight_->setTrailMaterial("Trail/backlighttrail");
+        centreLight_->setMaterial("Examples/Flare");
+        centreLight_->setLifetime(20);
+        bombModel_->attach(centreLight_);
 
-		//Let the Bomb Modell in the centre rotate in a random direction.
-		Vector3 randomRotation;
-		srand(time(NULL));
-		randomRotation.x = rand();
-		randomRotation.y = rand();
-		randomRotation.y = rand();
-		randomRotation.normalise();
-		bombModel_->setAngularAcceleration(randomRotation*(PEAK_ANGULAR_VELOCITY/FORCE_FIELD_LIFETIME));
+        //Let the Bomb Modell in the centre rotate in a random direction.
+        Vector3 randomRotation;
+        srand(time(NULL));
+        randomRotation.x = rand();
+        randomRotation.y = rand();
+        randomRotation.y = rand();
+        randomRotation.normalise();
+        bombModel_->setAngularAcceleration(randomRotation*(PEAK_ANGULAR_VELOCITY/FORCE_FIELD_LIFETIME));
 
-		//Add Collision Shape
-		SphereCollisionShape* collisionShape = new SphereCollisionShape(context);
-		collisionShape->setRadius(10.0);
-		this->attachCollisionShape(collisionShape);
+        //Add Collision Shape
+        SphereCollisionShape* collisionShape = new SphereCollisionShape(context);
+        collisionShape->setRadius(10.0);
+        this->attachCollisionShape(collisionShape);
 
-		//Add particle effect to visualize the force field.
-		this->particleSphere_ = new ParticleEmitter(this->getContext());
-		this->attach(this->particleSphere_);
-		particleSphere_->setSource("Orxonox/GravityBombField");
+        //Add particle effect to visualize the force field.
+        this->particleSphere_ = new ParticleEmitter(this->getContext());
+        this->attach(this->particleSphere_);
+        particleSphere_->setSource("Orxonox/GravityBombField");
 
-		//Add a sound effect to the field.
-		WorldSound* fieldSound = new WorldSound(context);
-		fieldSound->setSource("sounds/GravityField.ogg");
-		fieldSound->setLooping(true);
-		fieldSound->setVolume(1.0);
-		this->attach(fieldSound);
-		fieldSound->play();
-	}
+        //Add a sound effect to the field.
+        WorldSound* fieldSound = new WorldSound(context);
+        fieldSound->setSource("sounds/GravityField.ogg");
+        fieldSound->setLooping(true);
+        fieldSound->setVolume(1.0);
+        this->attach(fieldSound);
+        fieldSound->play();
+    }
 
-	GravityBombField::~GravityBombField(){}
+    GravityBombField::~GravityBombField(){}
 
-	
-	void GravityBombField::tick(float dt)
-	{
-		SUPER(GravityBombField,tick,dt);
-		lifetime_-=dt;
+    
+    void GravityBombField::tick(float dt)
+    {
+        SUPER(GravityBombField,tick,dt);
+        lifetime_-=dt;
 
-		if(lifetime_ > EXPLOSION_DURATION)//If field is still alive, make it smaller and stronger.
-		{
-			modelScaling_ += ((CENTRE_MODEL_END_SIZE-1) / FORCE_FIELD_LIFETIME)*dt;
-			forceStrength_ *= (1+dt/10);
-			forceSphereRadius_ = FORCE_SPHERE_START_RADIUS*(1-((FORCE_FIELD_LIFETIME-lifetime_)/FORCE_FIELD_LIFETIME)*((FORCE_FIELD_LIFETIME-lifetime_)/FORCE_FIELD_LIFETIME)*((FORCE_FIELD_LIFETIME-lifetime_)/FORCE_FIELD_LIFETIME));
-		}
-		else if(lifetime_ > 0)
-		{
-			if (!fieldExploded_) // Start the field explosion if it has not been started yet.
-			{
-				forceStrength_ = pow((EXPLOSION_DURATION + lifetime_),4)/EXPLOSION_DURATION * PEAK_EXPLOSION_FORCE;
-				fieldExploded_ = true;
+        if(lifetime_ > EXPLOSION_DURATION)//If field is still alive, make it smaller and stronger.
+        {
+            modelScaling_ += ((CENTRE_MODEL_END_SIZE-1) / FORCE_FIELD_LIFETIME)*dt;
+            forceStrength_ *= (1+dt/10);
+            forceSphereRadius_ = FORCE_SPHERE_START_RADIUS*(1-((FORCE_FIELD_LIFETIME-lifetime_)/FORCE_FIELD_LIFETIME)*((FORCE_FIELD_LIFETIME-lifetime_)/FORCE_FIELD_LIFETIME)*((FORCE_FIELD_LIFETIME-lifetime_)/FORCE_FIELD_LIFETIME));
+        }
+        else if(lifetime_ > 0)
+        {
+            if (!fieldExploded_) // Start the field explosion if it has not been started yet.
+            {
+                forceStrength_ = pow((EXPLOSION_DURATION + lifetime_),4)/EXPLOSION_DURATION * PEAK_EXPLOSION_FORCE;
+                fieldExploded_ = true;
 
-				//Add particle effect to visualize explosion
-				explosionCross_ = new ParticleEmitter(this->getContext());
-				explosionCross_->setSource("Orxonox/FieldExplosion");
-				explosionCross_->setOrientation(rand(), rand(), rand(), rand());
-				explosionCross_->setScale(0.7);
-				this->attach(explosionCross_);
+                //Add particle effect to visualize explosion
+                explosionCross_ = new ParticleEmitter(this->getContext());
+                explosionCross_->setSource("Orxonox/FieldExplosion");
+                explosionCross_->setOrientation(rand(), rand(), rand(), rand());
+                explosionCross_->setScale(0.7);
+                this->attach(explosionCross_);
 
-				//Add explosion sound effect.
-				explosionSound_ = new WorldSound(getContext());
-				explosionSound_->setSource("sounds/GravityFieldExplosion.ogg");
-				explosionSound_->setVolume(1.0);
-				explosionSound_->play();
-			}
+                //Add explosion sound effect.
+                explosionSound_ = new WorldSound(getContext());
+                explosionSound_->setSource("sounds/GravityFieldExplosion.ogg");
+                explosionSound_->setVolume(1.0);
+                explosionSound_->play();
+            }
 
-			//Check if any pawn is inside the shockwave and hit it with dammage proportional to the distance between explosion centre and pawn. Make sure, the same pawn is damaged only once.
-			for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
-			{
-				Vector3 distanceVector = it->getWorldPosition()-this->getWorldPosition();
-				 //orxout(debug_output) << "Found Pawn:" << it->getWorldPosition() << endl;
-				if(distanceVector.length()< forceSphereRadius_)
-				 {
-					 //orxout(debug_output) << "Force sphere radius is: " << forceSphereRadius_ << " Distance to Pawn is: " << distanceVector.length();
-					 if (std::find(victimsAlreadyDamaged_.begin(),victimsAlreadyDamaged_.end(),*it) == victimsAlreadyDamaged_.end())
-					 {
-						 //orxout(debug_output) << "Found Pawn to damage: " << it->getWorldPosition() << endl;
-						 float damage = FORCE_FIELD_EXPLOSION_DAMMAGE*(1-distanceVector.length()/EXPLOSION_RADIUS);
-						 //orxout(debug_output) << "Damage: " << damage << endl;
-						 it->hit(shooter_, it->getWorldPosition(), NULL, damage, 0,0);
-						 victimsAlreadyDamaged_.push_back(*it);
-					 }
-				 }
-			}
+            //Check if any pawn is inside the shockwave and hit it with dammage proportional to the distance between explosion centre and pawn. Make sure, the same pawn is damaged only once.
+            for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+            {
+                Vector3 distanceVector = it->getWorldPosition()-this->getWorldPosition();
+                 //orxout(debug_output) << "Found Pawn:" << it->getWorldPosition() << endl;
+                if(distanceVector.length()< forceSphereRadius_)
+                {
+                    //orxout(debug_output) << "Force sphere radius is: " << forceSphereRadius_ << " Distance to Pawn is: " << distanceVector.length();
+                    if (std::find(victimsAlreadyDamaged_.begin(),victimsAlreadyDamaged_.end(),*it) == victimsAlreadyDamaged_.end())
+                    {
+                        //orxout(debug_output) << "Found Pawn to damage: " << it->getWorldPosition() << endl;
+                        float damage = FORCE_FIELD_EXPLOSION_DAMMAGE*(1-distanceVector.length()/EXPLOSION_RADIUS);
+                        //orxout(debug_output) << "Damage: " << damage << endl;
+                        it->hit(shooter_, it->getWorldPosition(), NULL, damage, 0,0);
+                        victimsAlreadyDamaged_.push_back(*it);
+                    }
+                }
+            }
 
-			forceSphereRadius_ = EXPLOSION_RADIUS*(1-lifetime_/EXPLOSION_DURATION);
-			explosionCross_->setScale(forceSphereRadius_/FORCE_SPHERE_START_RADIUS);
-		}
-		else if (lifetime_ > -6) //The field has to exist for 6 more seconds for the particles of the particle effect to vanish smoothly.
-		{
-			//Make the bomb model invisible, let the strength of the field be zero and remove all particle emitters so the particle effect will slowly vanish.
-			bombModel_->setVisible(false);
-			this->setRadarVisibility(false);
-			forceStrength_ = 0;
-			forceSphereRadius_ = 0.00001;
-			particleSphere_->getParticleInterface()->removeAllEmitters();
-			explosionCross_->getParticleInterface()->removeAllEmitters();
-		}
-		
-		setDiameter(forceSphereRadius_*2);
-		setVelocity(forceStrength_);
-		if(lifetime_>0) particleSphere_->setScale(forceSphereRadius_/FORCE_SPHERE_START_RADIUS);
-		bombModel_->setScale(modelScaling_);
+            forceSphereRadius_ = EXPLOSION_RADIUS*(1-lifetime_/EXPLOSION_DURATION);
+            explosionCross_->setScale(forceSphereRadius_/FORCE_SPHERE_START_RADIUS);
+        }
+        else if (lifetime_ > -6) //The field has to exist for 6 more seconds for the particles of the particle effect to vanish smoothly.
+        {
+            //Make the bomb model invisible, let the strength of the field be zero and remove all particle emitters so the particle effect will slowly vanish.
+            bombModel_->setVisible(false);
+            this->setRadarVisibility(false);
+            forceStrength_ = 0;
+            forceSphereRadius_ = 0.00001;
+            particleSphere_->getParticleInterface()->removeAllEmitters();
+            explosionCross_->getParticleInterface()->removeAllEmitters();
+        }
+        
+        setDiameter(forceSphereRadius_*2);
+        setVelocity(forceStrength_);
+        if(lifetime_>0) particleSphere_->setScale(forceSphereRadius_/FORCE_SPHERE_START_RADIUS);
+        bombModel_->setScale(modelScaling_);
 
-		if (lifetime_ <= -4)
-		{
-			orxout(debug_output) << "Timeout. Destroying field." << endl;
-			this->destroy();
-		}
-	}
+        if (lifetime_ <= -4)
+        {
+            orxout(debug_output) << "Timeout. Destroying field." << endl;
+            this->destroy();
+        }
+    }
 
-	void GravityBombField::destroy()
-	{
-		ForceField::destroy();
-	}
+    void GravityBombField::destroy()
+    {
+        ForceField::destroy();
+    }
 
 }
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.h	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.h	(revision 10601)
@@ -27,61 +27,61 @@
 
 /**
- * @class	GravityBombField
+ * @class   GravityBombField
  *
- * @brief	This class is used by GravityBomb to place the ForceField and Visual effect to the environment.
- * 			The field has a maximum lifetime and gets smaller and stronger the more time passes. In the end, the field explodes and damages all pawns nearby.
+ * @brief   This class is used by GravityBomb to place the ForceField and Visual effect to the environment.
+ *          The field has a maximum lifetime and gets smaller and stronger the more time passes. In the end, the field explodes and damages all pawns nearby.
  *
- * @author	Manuel Eggimann
- * @date	23.05.2015
+ * @author  Manuel Eggimann
+ * @date    23.05.2015
  */
 class GravityBombField: public ForceField, public RadarViewable {
 public:
-	GravityBombField(Context* context);
-	virtual ~GravityBombField();
-	virtual void tick(float dt);
-	virtual void destroy();
+    GravityBombField(Context* context);
+    virtual ~GravityBombField();
+    virtual void tick(float dt);
+    virtual void destroy();
 
-	/**
-	 * @fn	void GravityBombField::setShooter(Pawn* shooter)
-	 *
-	 * @brief	This function is used to determine save the pawn who created the field and is used inside the GravityBomb class.
-	 *
-	 * @author	Manuel Eggimann
-	 * @date	23.05.2015
-	 *
-	 * @param [in,out]	the Pawn that created the field.
-	 */
-	void setShooter(Pawn* shooter)
-	{ this->shooter_ = shooter; }
+    /**
+     * @fn  void GravityBombField::setShooter(Pawn* shooter)
+     *
+     * @brief   This function is used to determine save the pawn who created the field and is used inside the GravityBomb class.
+     *
+     * @author  Manuel Eggimann
+     * @date    23.05.2015
+     *
+     * @param [in,out]  the Pawn that created the field.
+     */
+    void setShooter(Pawn* shooter)
+    { this->shooter_ = shooter; }
 
-	Pawn* getShooter()
-	{ return this->shooter_; }
+    Pawn* getShooter()
+    { return this->shooter_; }
 
 private:
-	//Set these constants inside GravityBombField.cc to alter the behaviour of the field.
-	
-	static const float FORCE_FIELD_LIFETIME;	///< The lifetime of the ForceField in seconds. After lifetime seconds, has already exploded and the particle effects will start to vanish. 
-	static const float FORCE_SPHERE_START_RADIUS;   ///< The initial sphere radius of the Force Field. The forcefield gets smaller by time.
-	static const float FORCE_SPHERE_START_STRENGTH; ///< The initial Force the Field exerts on every object with non-zero mass.
-	static const float FORCE_FIELD_EXPLOSION_DAMMAGE;   ///< The maximum dammage a pawn gets nearby an exploding field. The farer away from explosion center the smaller the dammage.
-	static const float EXPLOSION_DURATION;  ///< Determines how fast the shockwave of the Explosion expands. It takes GravityBombField::EXPLOSION_DURATION seconds for the field to expand from 0 radius to GravityBombField::EXPLOSION_RADIUS.
-	static const float EXPLOSION_RADIUS;	///< How far does the shockwave reach. All pawns which outside of a sphere witch this radius rest unharmed by the explosion.
-	static const float PEAK_ANGULAR_VELOCITY;   ///< The model of the bomb in the center of the Field does rotate faster and faster as time passes until it reaches PEAK_ANGULAR_VELOCITY at the fields end of life.
-	static const float PEAK_EXPLOSION_FORCE;	///< The peak force the explosion exerts on the pawns nearby.
-	static const float CENTRE_MODEL_END_SIZE;   ///< Size of the 3d-model of the bomb in the fields centre.
+    //Set these constants inside GravityBombField.cc to alter the behaviour of the field.
+    
+    static const float FORCE_FIELD_LIFETIME;    ///< The lifetime of the ForceField in seconds. After lifetime seconds, has already exploded and the particle effects will start to vanish. 
+    static const float FORCE_SPHERE_START_RADIUS;   ///< The initial sphere radius of the Force Field. The forcefield gets smaller by time.
+    static const float FORCE_SPHERE_START_STRENGTH; ///< The initial Force the Field exerts on every object with non-zero mass.
+    static const float FORCE_FIELD_EXPLOSION_DAMMAGE;   ///< The maximum dammage a pawn gets nearby an exploding field. The farer away from explosion center the smaller the dammage.
+    static const float EXPLOSION_DURATION;  ///< Determines how fast the shockwave of the Explosion expands. It takes GravityBombField::EXPLOSION_DURATION seconds for the field to expand from 0 radius to GravityBombField::EXPLOSION_RADIUS.
+    static const float EXPLOSION_RADIUS;    ///< How far does the shockwave reach. All pawns which outside of a sphere witch this radius rest unharmed by the explosion.
+    static const float PEAK_ANGULAR_VELOCITY;   ///< The model of the bomb in the center of the Field does rotate faster and faster as time passes until it reaches PEAK_ANGULAR_VELOCITY at the fields end of life.
+    static const float PEAK_EXPLOSION_FORCE;    ///< The peak force the explosion exerts on the pawns nearby.
+    static const float CENTRE_MODEL_END_SIZE;   ///< Size of the 3d-model of the bomb in the fields centre.
 
-	float forceSphereRadius_;
-	float forceStrength_;
-	float lifetime_;
-	float modelScaling_;
-	Vector3 rotationVector_;
-	bool fieldExploded_;
-	ParticleEmitter * particleSphere_;
-	ParticleEmitter * explosionCross_;
-	std::vector<Pawn*> victimsAlreadyDamaged_;
-	MovableEntity * bombModel_;
-	Pawn* shooter_;
-	Backlight* centreLight_;
-	WorldSound* explosionSound_;
+    float forceSphereRadius_;
+    float forceStrength_;
+    float lifetime_;
+    float modelScaling_;
+    Vector3 rotationVector_;
+    bool fieldExploded_;
+    ParticleEmitter * particleSphere_;
+    ParticleEmitter * explosionCross_;
+    std::vector<Pawn*> victimsAlreadyDamaged_;
+    MovableEntity * bombModel_;
+    Pawn* shooter_;
+    Backlight* centreLight_;
+    WorldSound* explosionSound_;
 };
 
Index: code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10600)
+++ code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10601)
@@ -17,37 +17,37 @@
 namespace orxonox
 {
-	RegisterClass(GravityBombFire);
+    RegisterClass(GravityBombFire);
 
-	const float GravityBombFire::BOMB_VELOCITY = 600.0; ///< The velocity of the bomb after launch
+    const float GravityBombFire::BOMB_VELOCITY = 600.0; ///< The velocity of the bomb after launch
 
-	GravityBombFire::GravityBombFire(Context* context) : WeaponMode(context)
-	{
-		RegisterObject(GravityBombFire);
+    GravityBombFire::GravityBombFire(Context* context) : WeaponMode(context)
+    {
+        RegisterObject(GravityBombFire);
 
-		this->reloadTime_ = 0.50f; 
-		this->bParallelReload_ = false;
-		this->damage_ = 20.0f;  ///< The damage of the Bomb if it hits a pawn.
+        this->reloadTime_ = 0.50f; 
+        this->bParallelReload_ = false;
+        this->damage_ = 20.0f;  ///< The damage of the Bomb if it hits a pawn.
 
-		this->setMunitionName("GravityBombMunition");
-		this->setDefaultSoundWithVolume("sounds/Rocket_launch.ogg",0.8);	///< sets sound of the bomb as it is fired.
-	}
+        this->setMunitionName("GravityBombMunition");
+        this->setDefaultSoundWithVolume("sounds/Rocket_launch.ogg",0.8);    ///< sets sound of the bomb as it is fired.
+    }
 
-	GravityBombFire::~GravityBombFire(){};
+    GravityBombFire::~GravityBombFire(){};
 
-	void GravityBombFire::fire()
-	{
-		GravityBomb* bomb = new GravityBomb(this->getContext());
+    void GravityBombFire::fire()
+    {
+        GravityBomb* bomb = new GravityBomb(this->getContext());
         //Create a new Bomb in 3D-Space and set the right direction speed and orientation.
-		this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
+        this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
         bomb->setOrientation(this->getMuzzleOrientation());
         bomb->setPosition(this->getMuzzlePosition());
         bomb->setVelocity(this->getMuzzleDirection() * (this->BOMB_VELOCITY+this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getVelocity().length()));
 
-		//Set the shooter of the bomb so it is possible to determine the pawn that killed another one and define damage to shield and healt the bomb does.
+        //Set the shooter of the bomb so it is possible to determine the pawn that killed another one and define damage to shield and healt the bomb does.
         bomb->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
-		bomb->setDamage(this->getDamage());
-		bomb->setShieldDamage(this->getShieldDamage());
-		bomb->setHealthDamage(this->getHealthDamage());
-	}
+        bomb->setDamage(this->getDamage());
+        bomb->setShieldDamage(this->getShieldDamage());
+        bomb->setHealthDamage(this->getHealthDamage());
+    }
 
 
