Index: code/branches/presentation3/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/branches/presentation3/src/modules/weapons/projectiles/Rocket.cc	(revision 6964)
+++ code/branches/presentation3/src/modules/weapons/projectiles/Rocket.cc	(revision 7018)
@@ -87,4 +87,5 @@
             this->defSndWpnEngine_->setLooping(true);
             this->defSndWpnEngine_->setSource("sounds/Rocket_engine.ogg");
+            this->defSndWpnEngine_->setVolume(100);
             this->attach(defSndWpnEngine_);
 
@@ -92,4 +93,5 @@
             this->defSndWpnLaunch_->setLooping(false);
             this->defSndWpnLaunch_->setSource("sounds/Rocket_launch.ogg");
+            this->defSndWpnLaunch_->setVolume(100);
             this->attach(defSndWpnLaunch_);
         }
Index: code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 6964)
+++ code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 7018)
@@ -58,12 +58,13 @@
         this->localAngularVelocity_ = 0;
         this->bDestroy_ = false;
-        this->lifetime_ = 100;
+        this->lifetime_ = 120;
+        this->setMass(15);
         COUT(4) << "simplerocket constructed\n";
-
+        this->maxLife_=90;
 
         if (GameMode::isMaster())
        {
-           this->setCollisionType(WorldEntity::Kinematic);
-            this->setVelocity(0,0,100);
+            this->setCollisionType(WorldEntity::Kinematic);
+            this->fuel_=true;
 
             Model* model = new Model(this);
@@ -72,9 +73,9 @@
             this->attach(model);
 
-            ParticleEmitter* fire = new ParticleEmitter(this);
-            this->attach(fire);
-            fire->setOrientation(this->getOrientation());
-            fire->setSource("Orxonox/rocketfire2");
-
+            this->fire_ = new ParticleEmitter(this);
+            this->attach(this->fire_);
+           
+            this->fire_->setOrientation(this->getOrientation());
+            this->fire_->setSource("Orxonox/simplerocketfire");
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
@@ -83,16 +84,22 @@
             // TODO: fix the orientation and size of this collision shape to match the rocket
             ConeCollisionShape* collisionShape = new ConeCollisionShape(this);
-            collisionShape->setRadius(3);
+            collisionShape->setOrientation(this->getOrientation());
+            collisionShape->setRadius(1.5f);
             collisionShape->setHeight(5);
             this->attachCollisionShape(collisionShape);
-
             this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&SimpleRocket::destroyObject, this)));
         }
 
     }
-    
+   
+
+
+
     void SimpleRocket::tick(float dt)
     {
+
         SUPER(SimpleRocket, tick, dt);
+        if (this->getVelocity().squaredLength() >130000) this->maxLife_-=dt; //if Velocity bigger than about 360, uses a lot more "fuel" :)
+        
 
             this->setAngularVelocity(this->getOrientation() * this->localAngularVelocity_);
@@ -100,7 +107,19 @@
             this->localAngularVelocity_ = 0;
 
+            
+            if (this->fuel_) {
+                if (this->destroyTimer_.getRemainingTime()<  this->lifetime_-this->maxLife_ ) 
+                    this->fuel_=false;
+            } else this->disableFire();
+
             if( this->bDestroy_ )
                 this->destroy();
-        
+                
+    }
+
+    void SimpleRocket::disableFire(){
+        this->setAcceleration(0,0,0);        
+        this->fire_->detachFromParent();
+
     }
 
@@ -134,4 +153,5 @@
         this->player_ = this->owner_->getPlayer();
     }
+
 
 
@@ -185,9 +205,4 @@
     }
     
-    void SimpleRocket::setDestroy()
-    {
-        this->bDestroy_=true;
-        CCOUT(4)<<"trying to destroy";
-    }
 
     void SimpleRocket::fired(unsigned int firemode)
Index: code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.h
===================================================================
--- code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.h	(revision 6964)
+++ code/branches/presentation3/src/modules/weapons/projectiles/SimpleRocket.h	(revision 7018)
@@ -34,4 +34,5 @@
 #include "tools/Timer.h"
 #include "worldentities/ControllableEntity.h"
+#include "graphics/ParticleSpawner.h"
 
 namespace orxonox
@@ -56,4 +57,6 @@
             virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
             void destroyObject();
+
+            void disableFire();
 
             virtual void moveFrontBack(const Vector2& value){}
@@ -96,5 +99,5 @@
             */
             inline void rotatePitch(float value)
-            {   COUT(0)<<"rotated rocket yaw";
+            {   
 				this->rotatePitch(Vector2(value, 0)); }
             /**
@@ -104,5 +107,4 @@
             inline void rotateRoll(float value)
             { 
-				COUT(0)<<"rotated rocket roll";
 				this->rotateRoll(Vector2(value, 0)); }
 
@@ -110,4 +112,9 @@
             inline Pawn* getOwner() const
                 { return this->owner_; }
+            inline bool hasFuel()
+            { return this->fuel_;}
+
+            inline void fuelRefill()
+            {this->fuel_=true;}
 
             inline void setDamage(float damage)
@@ -123,4 +130,5 @@
             float damage_;
             bool bDestroy_;
+            bool fuel_;
 
 
@@ -128,4 +136,10 @@
             Timer destroyTimer_;
             float lifetime_;
+            float maxLife_;
+
+            ParticleEmitter* fire_;
+
+
+
 
     };
