Index: code/branches/weaponFS15/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/weaponFS15/data/levels/emptyLevel.oxw	(revision 10368)
+++ code/branches/weaponFS15/data/levels/emptyLevel.oxw	(revision 10369)
@@ -13,5 +13,5 @@
 
 <?lua
-  include("templates/spaceshipAssff2.oxt")
+  include("templates/spaceshipAssff.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=spaceshipescort />
+    <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
     
   </Scene>
Index: code/branches/weaponFS15/data/levels/includes/weaponSettingsAssff.oxi
===================================================================
--- code/branches/weaponFS15/data/levels/includes/weaponSettingsAssff.oxi	(revision 10368)
+++ code/branches/weaponFS15/data/levels/includes/weaponSettingsAssff.oxi	(revision 10369)
@@ -40,5 +40,5 @@
         </Weapon>
         <Weapon>
-          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
+          <GravityBombFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
           <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />
         </Weapon>
Index: code/branches/weaponFS15/src/modules/weapons/WeaponsPrereqs.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/WeaponsPrereqs.h	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/WeaponsPrereqs.h	(revision 10369)
@@ -75,4 +75,5 @@
     class ReplenishingMunition;
     class RocketMunition;
+    class GravityBombMuntion;
 
     // projectiles
@@ -93,4 +94,5 @@
     class RocketFire;
     class SimpleRocketFire;
+    class GravityBombFire;
 }
 
Index: code/branches/weaponFS15/src/modules/weapons/munitions/CMakeLists.txt
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/munitions/CMakeLists.txt	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/munitions/CMakeLists.txt	(revision 10369)
@@ -4,3 +4,4 @@
   FusionMunition.cc
   RocketMunition.cc
+  GravityBombMunition.cc
 )
Index: code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.cc	(revision 10369)
+++ code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.cc	(revision 10369)
@@ -0,0 +1,32 @@
+/*
+ * GravityBombMunition.cc
+ *
+ *  Created on: Apr 16, 2015
+ *      Author: meggiman
+ */
+#include "GravityBombMunition.h"
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+RegisterClass(GravityBombMunition);
+
+	GravityBombMunition::GravityBombMunition(Context* context) : Munition(context)
+	{
+		RegisterObject(GravityBombMunition);
+		this->maxMunitionPerMagazine_ = 1;
+		this->maxMagazines_ = 30;
+		this->magazines_ = 10;
+
+		this->bUseSeparateMagazines_ = false;
+		this->bStackMunition_ = true;
+
+		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 10369)
+++ code/branches/weaponFS15/src/modules/weapons/munitions/GravityBombMunition.h	(revision 10369)
@@ -0,0 +1,27 @@
+/*
+ * GravityBombMunition.h
+ *
+ *  Created on: Apr 16, 2015
+ *      Author: meggiman
+ */
+
+#ifndef GRAVITYBOMBMUNITION_H_
+#define GRAVITYBOMBMUNITION_H_
+
+#include "weapons/WeaponsPrereqs.h"
+#include "weaponsystem/Munition.h"
+
+namespace orxonox
+{
+
+	class _WeaponsExport GravityBombMunition : public Munition
+    {
+        public:
+			GravityBombMunition(Context* context);
+            virtual ~GravityBombMunition() {}
+    };
+
+}
+
+
+#endif /* GRAVITYBOMBMUNITION_H_ */
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.cc	(revision 10369)
@@ -6,11 +6,9 @@
  */
 #include "GravityBomb.h"
+#include "graphics/Model.h"
 
 
 namespace orxonox{
 	RegisterClass(GravityBomb);
-
-	const float GravityBomb::INITIAL_VELOCITY = 20;
-	const float GravityBomb::SLOW_DOWN_RATIO = 2;
 
 	GravityBomb::GravityBomb(Context* context):
@@ -24,18 +22,20 @@
 			if (GameMode::isMaster())
 			{
-				//Define movement of the bomb
-				this->setVelocity(this->getOrientation()*WorldEntity::FRONT*INITIAL_VELOCITY);
-				this->velocityAtLastTick_=INITIAL_VELOCITY;
-				this->setAcceleration(this->getOrientation()*WorldEntity::BACK*SLOW_DOWN_RATIO);
-				this->setCollisionType(WorldEntity::Dynamic);
+				//Define CollisionType of the bomb
+				this->velocityAtLastTick_= 1000;
+				this->setCollisionResponse(false);
+				this->setCollisionType(WorldEntity::Kinematic);
 				this->enableCollisionCallback();
 
 				//Add Collision Shape
 				SphereCollisionShape* collisionShape = new SphereCollisionShape(context);
-				collisionShape->setRadius(5.0);
+				collisionShape->setRadius(1.0);
 				this->attachCollisionShape(collisionShape);
 
 				//Create Bomb Model
-
+	            Model* model = new Model(this->getContext());
+	            model->setMeshSource("rocket.mesh"); //Demo Model from SimpleRocket
+	            model->scale(0.7f);
+	            this->attach(model);
 
 			}
@@ -46,18 +46,29 @@
 	void GravityBomb::tick(float dt)
 	{
+			velocityAtLastTick_=getVelocity().length();
+			SUPER(GravityBomb,tick,dt);
 			if(velocityAtLastTick_ < this->getVelocity().length())
 			{
+				orxout(debug_output) << "bomb has stoped moving" <<endl;
 				setVelocity(Vector3::ZERO);
 				setAcceleration(Vector3::ZERO);
 				velocityAtLastTick_=0;
 				detonate();
+				orxout(debug_output) << "denoting" <<endl;
 			}
-			velocityAtLastTick_=getVelocity().length();
+			else
+			{
+				velocityAtLastTick_=getVelocity().length();
+				orxout(debug_output)<< velocityAtLastTick_ <<endl;
+				orxout(debug_output) << "acceleration" << getAcceleration().length() <<endl;
+				destroyCheck();
+			}
 	}
 
 	bool GravityBomb::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint)
 	{
-		detonate();
+		orxout(debug_output) << "collides" << endl;
 		processCollision(otherObject, contactPoint,cs);
+		//detonate();
 		return true;
 	}
@@ -66,4 +77,6 @@
 	{
 		GravityBombField* field = new GravityBombField(this->getContext());
+		orxout(debug_output) << "denoting" <<endl;
+		this->destroy();
 	}
 }
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBomb.h	(revision 10369)
@@ -66,6 +66,4 @@
 
 		private:
-		static const float INITIAL_VELOCITY;
-		static const float SLOW_DOWN_RATIO;
 
 		float velocityAtLastTick_; //Used to check wether the Object is already accelarating in the oposite direction to detect the time to detonate it.
Index: code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/projectiles/GravityBombField.cc	(revision 10369)
@@ -11,10 +11,11 @@
 	RegisterClass(GravityBombField);
 
-	const float GravityBombField::FORCE_FIELD_LIFETIME = 10;
-	const float GravityBombField::FORCE_SPHERE_START_RADIUS = 50;
-	const float GravityBombField::FORCE_SPHERE_START_STRENGTH = -300;
+	const float GravityBombField::FORCE_FIELD_LIFETIME = 5;
+	const float GravityBombField::FORCE_SPHERE_START_RADIUS = 100;
+	const float GravityBombField::FORCE_SPHERE_START_STRENGTH = -1000;
 
 	GravityBombField::GravityBombField(Context* context) : ForceField(context)
 	{
+		RegisterObject(GravityBombField);
 		lifetime_=FORCE_FIELD_LIFETIME;
 		setVelocity(FORCE_SPHERE_START_STRENGTH);
@@ -27,4 +28,5 @@
 	void GravityBombField::tick(float dt)
 	{
+		SUPER(GravityBombField,tick,dt);
 		lifetime_-=dt;
 		if(lifetime_ < 0)
@@ -37,5 +39,5 @@
 	{
 		//Animation
-		//SUPER(GravityBombField,destroy);
+		ForceField::destroy();
 	}
 
Index: code/branches/weaponFS15/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/weaponmodes/CMakeLists.txt	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/weaponmodes/CMakeLists.txt	(revision 10369)
@@ -7,3 +7,4 @@
   RocketFire.cc
   SimpleRocketFire.cc
+  GravityBombFire.cc
 )
Index: code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10369)
+++ code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10369)
@@ -0,0 +1,55 @@
+/*
+ * GravityBombFire.cc
+ *
+ *  Created on: Apr 16, 2015
+ *      Author: meggiman
+ */
+#include "GravityBombFire.h"
+
+#include "core/CoreIncludes.h"
+#include "weaponsystem/Weapon.h"
+#include "weaponsystem/WeaponPack.h"
+#include "weaponsystem/WeaponSystem.h"
+#include "worldentities/pawns/Pawn.h"
+
+#include "weapons/projectiles/GravityBomb.h"
+
+namespace orxonox
+{
+	RegisterClass(GravityBombFire);
+
+	GravityBombFire::GravityBombFire(Context* context) : WeaponMode(context)
+	{
+		RegisterObject(GravityBombFire);
+
+		this->reloadTime_ = 0.50f;
+		this->bParallelReload_ = false;
+		this->damage_ = 0.0f;
+		this->speed_ = 200.0f;
+		this->slowDownRate_ = -10.0f;
+
+		this->setMunitionName("GravityBombMunition");
+		// The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning)
+	}
+
+	GravityBombFire::~GravityBombFire(){};
+
+	void GravityBombFire::fire()
+	{
+		GravityBomb* bomb = new GravityBomb(this->getContext());
+        this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
+        bomb->setOrientation(this->getMuzzleOrientation());
+        bomb->setPosition(this->getMuzzlePosition());
+        bomb->setVelocity(this->getMuzzleDirection() * this->speed_);
+        bomb->setAcceleration(this->getMuzzleDirection()* this->slowDownRate_);
+
+        bomb->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
+		bomb->setDamage(this->getDamage());
+		bomb->setShieldDamage(this->getShieldDamage());
+		bomb->setHealthDamage(this->getHealthDamage());
+	}
+
+
+}
+
+
Index: code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.h
===================================================================
--- code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.h	(revision 10368)
+++ code/branches/weaponFS15/src/modules/weapons/weaponmodes/GravityBombFire.h	(revision 10369)
@@ -58,4 +58,5 @@
         private:
             float speed_; //!< The initial speed of the bomb when it is launched.
+            float slowDownRate_;
     };
 }
