Index: code/branches/fabienHS15/src/modules/weapons/WeaponsPrereqs.h
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/WeaponsPrereqs.h	(revision 10795)
+++ code/branches/fabienHS15/src/modules/weapons/WeaponsPrereqs.h	(revision 10814)
@@ -69,11 +69,15 @@
 {
     class MuzzleFlash;
+    class IceGunFreezer;
+    class RocketController;
 
     // munitions
     class FusionMunition;
     class LaserMunition;
-    class ReplenishingMunition;
     class RocketMunition;
     class GravityBombMuntion;
+    class IceMunition;
+    class LightningMunition;
+    class SplitMunition;
 
     // projectiles
@@ -81,5 +85,8 @@
     class LightningGunProjectile;
     class ParticleProjectile;
+    class IceProjectile;
+    class SplitProjectile;
     class Projectile;
+    class BasicProjectile;
     class Rocket;
     class RocketOld;
@@ -91,4 +98,6 @@
     class FusionFire;
     class HsW01;
+    class IceGun;
+    class SplitGun;
     class LaserFire;
     class LightningGun;
Index: code/branches/fabienHS15/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/projectiles/Rocket.cc	(revision 10795)
+++ code/branches/fabienHS15/src/modules/weapons/projectiles/Rocket.cc	(revision 10814)
@@ -66,5 +66,5 @@
 
         this->localAngularVelocity_ = 0;
-        this->lifetime_ = 100.0f;
+        this->lifetime_ = 20.0f;
 
         if (GameMode::isMaster())
@@ -100,6 +100,4 @@
             this->attachCollisionShape(collisionShape);
 
-            this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this)));
-
             // Add sound
             this->defSndWpnEngine_ = new WorldSound(this->getContext());
@@ -114,4 +112,6 @@
             this->defSndWpnLaunch_->setVolume(1.0f);
             this->attach(defSndWpnLaunch_);
+
+            this->setHudTemplate("rockethud");
         }
         else
@@ -320,3 +320,13 @@
     }
 
+    float Rocket::getFuel() const
+    {
+        return this->destroyTimer_.getRemainingTime();
+    }
+
+    void Rocket::setMaxFuel(float fuel)
+    {
+        this->lifetime_ = fuel;
+        this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&BasicProjectile::destroyObject, this)));
+    }
 }
Index: code/branches/fabienHS15/src/modules/weapons/projectiles/Rocket.h
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/projectiles/Rocket.h	(revision 10795)
+++ code/branches/fabienHS15/src/modules/weapons/projectiles/Rocket.h	(revision 10814)
@@ -118,4 +118,15 @@
             virtual void fired(unsigned int firemode);
 
+            /**
+            @brief Set the maximum lifetime of the rocket.
+            */
+            virtual void setMaxFuel(float fuel);
+            /**
+            @brief Get the maximum lifetime of the rocket.
+            */
+            inline float getMaxFuel() const
+                { return lifetime_; }
+            virtual float getFuel() const;
+
         private:
             Vector3 localAngularVelocity_; //!< Variable to temporarily store accumulated steering command input.
Index: code/branches/fabienHS15/src/modules/weapons/weaponmodes/RocketFire.cc
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/weaponmodes/RocketFire.cc	(revision 10795)
+++ code/branches/fabienHS15/src/modules/weapons/weaponmodes/RocketFire.cc	(revision 10814)
@@ -41,5 +41,5 @@
 #include "weaponsystem/WeaponSystem.h"
 #include "worldentities/pawns/Pawn.h"
-
+#include "core/XMLPort.h"
 #include "weapons/projectiles/Rocket.h"
 
@@ -56,4 +56,5 @@
         this->damage_ = 0.0f;
         this->speed_ = 500.0f;
+        this->fuel_ = 10.0f;
 
         this->setMunitionName("RocketMunition");
@@ -65,4 +66,15 @@
     RocketFire::~RocketFire()
     {
+    }
+
+    /**
+    @brief
+        XMLPort for the RocketFire. You can define the maximum lifetime of the rockets
+    */
+    void RocketFire::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(RocketFire, XMLPort, xmlelement, mode);
+
+        XMLPortParam(RocketFire, "fuel", setFuel, getFuel, xmlelement, mode);
     }
 
@@ -85,4 +97,5 @@
         rocket->setShieldDamage(this->getShieldDamage());
         rocket->setHealthDamage(this->getHealthDamage());
+        rocket->setMaxFuel(this->fuel_);
     }
 }
Index: code/branches/fabienHS15/src/modules/weapons/weaponmodes/RocketFire.h
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/weaponmodes/RocketFire.h	(revision 10795)
+++ code/branches/fabienHS15/src/modules/weapons/weaponmodes/RocketFire.h	(revision 10814)
@@ -54,8 +54,15 @@
             virtual ~RocketFire();
 
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
             virtual void fire();
+            inline void setFuel(float fuel)
+                { this->fuel_ = fuel; }
+            inline float getFuel() const
+                { return this->fuel_; }
 
         private:
             float speed_; //!< The speed of the Rocket.
+            float fuel_; //!< The maximum lifetime of the rocket
     };
 }
Index: code/branches/fabienHS15/src/modules/weapons/weaponmodes/SplitGun.cc
===================================================================
--- code/branches/fabienHS15/src/modules/weapons/weaponmodes/SplitGun.cc	(revision 10795)
+++ code/branches/fabienHS15/src/modules/weapons/weaponmodes/SplitGun.cc	(revision 10814)
@@ -35,5 +35,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"    
+#include "core/XMLPort.h"
 #include "weaponsystem/Weapon.h"
 #include "weaponsystem/WeaponPack.h"
