Index: code/trunk/src/modules/weapons/weaponmodes/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/CMakeLists.txt	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/CMakeLists.txt	(revision 11052)
@@ -11,3 +11,4 @@
   SimpleRocketFire.cc
   GravityBombFire.cc
+  MineGun.cc
 )
Index: code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.cc	(revision 11052)
@@ -63,4 +63,6 @@
         this->delayTimer_.setTimer(1.0f, false, createExecutor(createFunctor(&EnergyDrink::shot, this)));
         this->delayTimer_.stopTimer();
+
+        hudImageString_ = "Orxonox/WSHUD_WM_EnergyDrink";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/FusionFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/FusionFire.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/FusionFire.cc	(revision 11052)
@@ -58,4 +58,6 @@
 
         this->setMunitionName("FusionMunition");
+
+        hudImageString_ = "Orxonox/WSHUD_WM_FusionFire";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/GravityBombFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/GravityBombFire.cc	(revision 11052)
@@ -31,4 +31,6 @@
         this->setMunitionName("GravityBombMunition");
         this->setDefaultSoundWithVolume("sounds/Rocket_launch.ogg",0.8);    ///< sets sound of the bomb as it is fired.
+
+        hudImageString_ = "Orxonox/WSHUD_WM_GravityBombFire";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/HsW01.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/HsW01.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/HsW01.cc	(revision 11052)
@@ -69,4 +69,6 @@
 
         this->setDefaultSound(this->sound_);
+
+        hudImageString_ = "Orxonox/WSHUD_WM_HsW01";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/IceGun.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/IceGun.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/IceGun.cc	(revision 11052)
@@ -59,6 +59,8 @@
         this->setFreezeFactor(0.5);
 
-        this->setMunitionName("LaserMunition");
+        this->setMunitionName("IceMunition");
         this->setDefaultSound("sounds/Weapon_LightningGun.ogg");
+
+        hudImageString_ = "Orxonox/WSHUD_WM_IceGun";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/LaserFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LaserFire.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/LaserFire.cc	(revision 11052)
@@ -56,4 +56,6 @@
 
         this->setMunitionName("LaserMunition");
+
+        hudImageString_ = "Orxonox/WSHUD_WM_LaserFire";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/LightningGun.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LightningGun.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/LightningGun.cc	(revision 11052)
@@ -54,6 +54,8 @@
         this->speed_ = 750.0f;
 
-        this->setMunitionName("LaserMunition");
+        this->setMunitionName("LightningMunition");
         this->setDefaultSound("sounds/Weapon_LightningGun.ogg");
+
+        hudImageString_ = "Orxonox/WSHUD_WM_LightningGun";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/MineGun.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/MineGun.cc	(revision 11052)
+++ code/trunk/src/modules/weapons/weaponmodes/MineGun.cc	(revision 11052)
@@ -0,0 +1,101 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineGun.cc
+    @brief Implementation of the MineGun class.
+*/
+
+#include "MineGun.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"    
+#include "weaponsystem/Weapon.h"
+#include "weaponsystem/WeaponPack.h"
+#include "weaponsystem/WeaponSystem.h"
+#include "worldentities/pawns/Pawn.h"
+
+#include "weapons/projectiles/MineProjectile.h"
+
+namespace orxonox
+{
+    RegisterClass(MineGun);
+
+    MineGun::MineGun(Context* context) : WeaponMode(context)
+    {
+        RegisterObject(MineGun);
+
+        this->speed_ = 1000.0f;
+        this->reloadTime_ = 1.0f;
+        this->damage_ = 0.0f;
+        this->maxTimeUntilExplosion_ = 0.0f;
+
+        this->setMunitionName("MineMunition");
+        this->setDefaultSound("sounds/mineactivate.ogg");
+
+        hudImageString_ = "Orxonox/WSHUD_WM_MineGun";
+    }
+
+    MineGun::~MineGun()
+    {
+    }
+
+    /**
+    @brief
+        XMLPort for the MineGun.
+    */
+    void MineGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(MineGun, XMLPort, xmlelement, mode);
+
+        XMLPortParam(MineGun, "maxtimeuntilexplosion", setMaxTimeUntilExplosion, getMaxTimeUntilExplosion, xmlelement, mode).defaultValues(10.0f);
+        XMLPortParam(MineGun, "timeuntilactivation", setTimeUntilActivation, getTimeUntilActivation, xmlelement, mode).defaultValues(3.0f);
+    }
+
+    /**
+    @brief
+        Fires the weapon. Creates a projectile and fires it.
+    */
+    void MineGun::fire()
+    {
+        MineProjectile* projectile = new MineProjectile(this->getContext());
+
+        this->computeMuzzleParameters(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn()->getAimPosition());
+        projectile->setOrientation(this->getMuzzleOrientation());
+        projectile->setPosition(this->getMuzzlePosition());
+        projectile->setVelocity(this->getMuzzleDirection() * this->speed_);
+
+        projectile->setMaxTimeUntilExplosion(getMaxTimeUntilExplosion());
+        projectile->setTimeUntilActivation(getTimeUntilActivation());
+
+        projectile->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
+        projectile->setDamage(this->getDamage());
+        projectile->setShieldDamage(this->getShieldDamage());
+        projectile->setHealthDamage(this->getHealthDamage());
+    }
+}
Index: code/trunk/src/modules/weapons/weaponmodes/MineGun.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/MineGun.h	(revision 11052)
+++ code/trunk/src/modules/weapons/weaponmodes/MineGun.h	(revision 11052)
@@ -0,0 +1,80 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *      Jannis Holzer
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MineGun.h
+    @brief
+
+    Mine is a weapon that explodes if a spaceship goes bellow the mines trigger radius. The mine deals damage too all
+    spaceships within the damageradius.
+
+    The activation time regulates when the mine is live and ready to explode.
+    The mine destroys itself after it exceeds a certain life time.
+*/
+
+#ifndef _MineGun_H__
+#define _MineGun_H__
+
+#include "weapons/WeaponsPrereqs.h"
+#include "weaponsystem/WeaponMode.h"
+
+namespace orxonox
+{
+
+    /**
+    @brief
+        A Weapon that drops mines to space.
+    @ingroup WeaponsWeaponModes
+    */
+    class _WeaponsExport MineGun : public WeaponMode
+    {
+        public:
+            MineGun(Context* context);
+            virtual ~MineGun();
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void fire();
+
+            inline float getMaxTimeUntilExplosion() const
+                { return this->maxTimeUntilExplosion_; }
+            inline float getTimeUntilActivation() const
+                { return this->timeUntilActivation_; }
+        protected:
+            inline void setMaxTimeUntilExplosion(float maxTimeUntilExplosion)
+                { this->maxTimeUntilExplosion_ = maxTimeUntilExplosion; }
+            inline void setTimeUntilActivation(float timeUntilActivation)
+                { this->timeUntilActivation_ = timeUntilActivation; }
+        private:
+            float speed_; //The speed of the fired projectile.
+            float maxTimeUntilExplosion_;
+            float timeUntilActivation_;
+    };
+}
+
+#endif /* _MineGun_H__ */
Index: code/trunk/src/modules/weapons/weaponmodes/RocketFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFire.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFire.cc	(revision 11052)
@@ -41,5 +41,5 @@
 #include "weaponsystem/WeaponSystem.h"
 #include "worldentities/pawns/Pawn.h"
-
+#include "core/XMLPort.h"
 #include "weapons/projectiles/Rocket.h"
 
@@ -56,11 +56,25 @@
         this->damage_ = 0.0f;
         this->speed_ = 500.0f;
+        this->fuel_ = 10.0f;
 
         this->setMunitionName("RocketMunition");
         // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning)
+
+        hudImageString_ = "Orxonox/WSHUD_WM_RocketFire";
     }
 
     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);
     }
 
@@ -77,5 +91,5 @@
         rocket->setPosition(this->getMuzzlePosition());
         rocket->setVelocity(this->getMuzzleDirection() * this->speed_);
-        rocket->scale(2);
+        rocket->scale(1.0f);
 
         rocket->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
@@ -83,4 +97,5 @@
         rocket->setShieldDamage(this->getShieldDamage());
         rocket->setHealthDamage(this->getHealthDamage());
+        rocket->setMaxFuel(this->fuel_);
     }
 }
Index: code/trunk/src/modules/weapons/weaponmodes/RocketFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFire.h	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFire.h	(revision 11052)
@@ -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/trunk/src/modules/weapons/weaponmodes/RocketFireOld.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFireOld.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFireOld.cc	(revision 11052)
@@ -59,4 +59,6 @@
         this->setMunitionName("RocketMunition");
         // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning)
+
+        hudImageString_ = "Orxonox/WSHUD_WM_SimpleRocketFire";
     }
 
Index: code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.cc	(revision 11052)
@@ -64,4 +64,6 @@
         this->setDefaultSoundWithVolume("sounds/Rocket_launch.ogg",0.4f);
         // The firing sound of the Rocket is played in Rocket.cc (because of OpenAl sound positioning)
+
+        hudImageString_ = "Orxonox/WSHUD_WM_SimpleRocketFire";
     }
 
@@ -83,4 +85,5 @@
         rocket->setVelocity(this->getMuzzleDirection()*this->speed_);
         rocket->setShooter(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn());
+        rocket->scale(1.0f);
 
         rocket->setDamage(this->damage_);
@@ -89,5 +92,6 @@
 
         WorldEntity* pawn = static_cast<ControllableEntity*>(this->getWeapon()->getWeaponPack()->getWeaponSystem()->getPawn())->getTarget();
-        if (pawn) controller->setTarget(pawn);
+        if (pawn)
+            controller->setTarget(pawn);
     }
 }
Index: code/trunk/src/modules/weapons/weaponmodes/SplitGun.cc
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/SplitGun.cc	(revision 10629)
+++ code/trunk/src/modules/weapons/weaponmodes/SplitGun.cc	(revision 11052)
@@ -35,5 +35,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"    
+#include "core/XMLPort.h"
 #include "weaponsystem/Weapon.h"
 #include "weaponsystem/WeaponPack.h"
@@ -62,4 +62,6 @@
         this->setMunitionName("SplitMunition");
         this->setDefaultSound("sounds/Weapon_LightningGun.ogg");
+
+        hudImageString_ = "Orxonox/WSHUD_WM_SplitGun";
     }
 
