Index: code/branches/fabienHS15/data/levels/pickups.oxw
===================================================================
--- code/branches/fabienHS15/data/levels/pickups.oxw	(revision 10739)
+++ code/branches/fabienHS15/data/levels/pickups.oxw	(revision 10746)
@@ -87,20 +87,4 @@
 
     <!-- Meta pickups -->
-
-    <Template name=usemetapickup baseclass=MetaPickup>
-      <MetaPickup representation="use" metaType="use" />
-    </Template>
-    
-    <Template name=dropmetapickup baseclass=MetaPickup>
-      <MetaPickup representation="drop" metaType="drop" />
-    </Template>
-    
-    <Template name=destroymetapickup baseclass=MetaPickup>
-      <MetaPickup representation="destroy" metaType="destroy" />
-    </Template>
-    
-    <Template name=destroycarriermetapickup baseclass=MetaPickup>
-      <MetaPickup representation="destroycarrier" metaType="destroyCarrier" />
-    </Template>
     
     <PickupSpawner pickup=usemetapickup position="-25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" />
@@ -115,5 +99,5 @@
     <!-- Drone pickup -->
     
-    <PickupSpawner pickup=dronepickup position="-50,50,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
+    <PickupSpawner pickup=dronepickup position="-25,100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" />
     
     <!-- Other pickups -->
Index: code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt
===================================================================
--- code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt	(revision 10739)
+++ code/branches/fabienHS15/data/levels/templates/pickupRepresentationTemplates.oxt	(revision 10746)
@@ -381,4 +381,8 @@
 </Template>
 
+<Template name=usemetapickup baseclass=MetaPickup>
+  <MetaPickup representation="use" metaType="use" />
+</Template>
+
 <Template name=droppickupRepresentation>
     <PickupRepresentation>
@@ -397,4 +401,8 @@
 </Template>
 
+<Template name=dropmetapickup baseclass=MetaPickup>
+  <MetaPickup representation="drop" metaType="drop" />
+</Template>
+
 <Template name=destroypickupRepresentation>
     <PickupRepresentation>
@@ -413,4 +421,8 @@
 </Template>
 
+<Template name=destroymetapickup baseclass=MetaPickup>
+  <MetaPickup representation="destroy" metaType="destroy" />
+</Template>
+
 <Template name=destroycarrierpickupRepresentation>
     <PickupRepresentation>
@@ -427,4 +439,8 @@
         </spawner-representation>
     </PickupRepresentation>
+</Template>
+
+<Template name=destroycarriermetapickup baseclass=MetaPickup>
+  <MetaPickup representation="destroycarrier" metaType="destroyCarrier" />
 </Template>
 
Index: code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo	(revision 10739)
+++ code/branches/fabienHS15/data/overlays/HUDTemplates3.oxo	(revision 10746)
@@ -35,5 +35,5 @@
      background        = "Orxonox/HealthBarBackground"
      size              = "0.40, 0.08"
-     position          = "0.0 , 0.9 "
+     position          = "0.0 , 0.85 "
      pickpoint         = "0, 1"
      bartexture        = "healthbar_bar.png"
@@ -51,4 +51,18 @@
       <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
     </HUDHealthBar>
+
+    <HUDShieldBar
+     name          = "ShieldBar1"
+     background    = "Orxonox/BarBackground"
+     size          = "0.40, 0.04"
+     position      = "0.0 , 0.9 "
+     pickpoint     = "0, 1"
+     correctaspect = true
+     iconmaterial  = "Orxonox/BarIconShield"
+    >
+      <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+      <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+      <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+    </HUDShieldBar>    
 
     <HUDSpeedBar
Index: code/branches/fabienHS15/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/CMakeLists.txt	(revision 10739)
+++ code/branches/fabienHS15/src/modules/overlays/hud/CMakeLists.txt	(revision 10746)
@@ -5,4 +5,5 @@
   HUDSpeedBar.cc
   HUDBoostBar.cc
+  HUDShieldBar.cc
   HUDHealthBar.cc
   HUDTimer.cc
Index: code/branches/fabienHS15/src/modules/overlays/hud/HUDShieldBar.cc
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDShieldBar.cc	(revision 10746)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDShieldBar.cc	(revision 10746)
@@ -0,0 +1,77 @@
+/*
+ *   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:
+ *      ...
+ *
+ */
+
+#include "HUDShieldBar.h"
+
+#include "core/CoreIncludes.h"
+#include "worldentities/pawns/Pawn.h"
+
+namespace orxonox
+{
+    RegisterClass(HUDShieldBar);
+
+    HUDShieldBar::HUDShieldBar(Context* context)
+        : HUDBar(context)
+    {
+        RegisterObject(HUDShieldBar);
+
+        this->owner_ = NULL;
+    }
+
+    HUDShieldBar::~HUDShieldBar()
+    {
+    }
+
+    void HUDShieldBar::tick(float dt)
+    {
+        SUPER(HUDShieldBar, tick, dt);
+
+        if (this->owner_)
+        {
+            float maxShieldHealth = this->owner_->getShieldHealth();
+            float shieldHealth = this->owner_->getShieldHealth();
+
+            if (maxShieldHealth > 0.0f)
+            {
+                this->setValue(shieldHealth/maxShieldHealth);
+            }
+            else
+            {
+                this->setValue(0.0f);
+            }
+        }
+    }
+
+    void HUDShieldBar::changedOwner()
+    {
+        SUPER(HUDShieldBar, changedOwner);
+
+        this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
+    }
+}
+
Index: code/branches/fabienHS15/src/modules/overlays/hud/HUDShieldBar.h
===================================================================
--- code/branches/fabienHS15/src/modules/overlays/hud/HUDShieldBar.h	(revision 10746)
+++ code/branches/fabienHS15/src/modules/overlays/hud/HUDShieldBar.h	(revision 10746)
@@ -0,0 +1,58 @@
+/*
+ *   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:
+ *      ...
+ *
+ */
+
+#ifndef _HUDShieldBar_H__
+#define _HUDShieldBar_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include "tools/interfaces/Tickable.h"
+#include "HUDBar.h"
+
+namespace orxonox
+{
+    /**
+    @brief
+        The HUDShieldBar displays the the status of the shield of its owner (a @ref Pawn).
+        The length of the bar is given by the ratio of the shield health and the maximal shield health of the @ref Pawn.
+    */
+
+    class _OverlaysExport HUDShieldBar : public HUDBar, public Tickable
+    {
+    public:
+        HUDShieldBar(Context* context);
+        virtual ~HUDShieldBar();
+
+        virtual void tick(float dt);
+        virtual void changedOwner();
+
+    private:
+        Pawn* owner_;
+    };
+}
+#endif /* _HUDShieldBar_H__ */
Index: code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.h
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.h	(revision 10739)
+++ code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.h	(revision 10746)
@@ -48,5 +48,8 @@
 namespace orxonox
 {
-
+    /**
+    @brief
+        The MunitionPickup gives munition to the user (a @ref Pawn).
+    */
     class _PickupExport MunitionPickup : public Pickup
     {
Index: code/branches/fabienHS15/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/fabienHS15/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10739)
+++ code/branches/fabienHS15/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10746)
@@ -61,5 +61,4 @@
 
         this->bAlive_ = true;
-        this->bShieldRecharging_ = false;
 
         this->health_ = 0;
@@ -71,5 +70,4 @@
         this->maxShieldHealth_ = 100; //otherwise shield might increase to float_max
         this->shieldAbsorption_ = 0.5;
-
         this->shieldRechargeRate_ = 0;
         this->shieldRechargeWaitTime_ = 1.0f;
@@ -153,12 +151,11 @@
     void Pawn::registerVariables()
     {
-        registerVariable(this->bAlive_,           VariableDirection::ToClient);
-        registerVariable(this->health_,           VariableDirection::ToClient);
-        registerVariable(this->maxHealth_,        VariableDirection::ToClient);
-        registerVariable(this->shieldHealth_,     VariableDirection::ToClient);
-        registerVariable(this->maxShieldHealth_,  VariableDirection::ToClient);
-        registerVariable(this->shieldAbsorption_, VariableDirection::ToClient);
-        registerVariable(this->bShieldRecharging_,          VariableDirection::ToServer);
-        registerVariable(this->aimPosition_,      VariableDirection::ToServer);  // For the moment this variable gets only transfered to the server
+        registerVariable(this->bAlive_,            VariableDirection::ToClient);
+        registerVariable(this->health_,            VariableDirection::ToClient);
+        registerVariable(this->maxHealth_,         VariableDirection::ToClient);
+        registerVariable(this->shieldHealth_,      VariableDirection::ToClient);
+        registerVariable(this->maxShieldHealth_,   VariableDirection::ToClient);
+        registerVariable(this->shieldAbsorption_,  VariableDirection::ToClient);
+        registerVariable(this->aimPosition_,       VariableDirection::ToServer);  // For the moment this variable gets only transfered to the server
     }
 
@@ -167,6 +164,5 @@
         SUPER(Pawn, tick, dt);
 
-        this->bShieldRecharging_ = false;
-
+        // Recharge the shield
         // TODO: use the existing timer functions instead
         if(this->shieldRechargeWaitCountdown_ > 0)
@@ -252,4 +248,8 @@
         if (this->getGametype() && this->getGametype()->allowPawnDamage(this, originator))
         {
+            // Health-damage cannot be absorbed by shields.
+            // Shield-damage only reduces shield health. 
+            // Normal damage can be (partially) absorbed by shields.
+
             if (shielddamage >= this->getShieldHealth())
             {
@@ -480,9 +480,4 @@
     }
 
-    void Pawn::reload()
-    {
-        this->bShieldRecharging_ = true;
-    }
-
     void Pawn::postSpawn()
     {
Index: code/branches/fabienHS15/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/fabienHS15/src/orxonox/worldentities/pawns/Pawn.h	(revision 10739)
+++ code/branches/fabienHS15/src/orxonox/worldentities/pawns/Pawn.h	(revision 10746)
@@ -42,5 +42,5 @@
     /**
     @brief
-        Everything in Orxonoy that has a health attribute is a Pawn. After a Pawn is spawned its health is set to
+        Everything in Orxonox that has a health attribute is a Pawn. After a Pawn is spawned its health is set to
         its initial health. In every call of the Pawns tick function the game checks whether the pawns health is at
         or below zero. If it is, the pawn gets killed.
@@ -141,5 +141,4 @@
 
             virtual void fired(unsigned int firemode);
-            virtual void reload();
             virtual void postSpawn();
 
@@ -234,5 +233,4 @@
 
             WeaponSystem* weaponSystem_;
-            bool bShieldRecharging_;
 
             std::string spawnparticlesource_;
Index: code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h
===================================================================
--- code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h	(revision 10739)
+++ code/branches/fabienHS15/src/orxonox/worldentities/pawns/SpaceShip.h	(revision 10746)
@@ -53,5 +53,5 @@
         - The <b>boost</b>, there are quite some parameters pertaining to boosting. The boost is a special move of the SpaceShip, where, for a limited amount of time, it can fly considerably faster than usual. The <b>boostPower</b> is the amount of power available for boosting. The <b>boostPowerRate</b> is the rate at which the boost power is replenished. The <b>boostRate</b> is the rate at which boosting uses power. And the <b>boostCooldownDuration</b> is the time the SpaceShip cannot boost, once all the boost power has been used up. Naturally all of these parameters must be non-negative.
         - The <b>boost shaking</b>, when the SpaceShip boosts, the camera shakes to create a more immersive effect. Two parameters can be used to adjust the effect. The <b>shakeFrequency</b> is the frequency with which the camera shakes. And the <b>shakeAmplitude</b> is the amount with which the camera shakes. Again these parameters must bee non-negative.
-        - The <b>lift</b> creates a more natural flight feeling through the addition of a lift force. There are again tow parameters that can be specified. The <b>lift</b> which is the lift force that is applied. And the <b>stallSpeed</b> which is the forward speed after which no more lift is generated.
+        - The <b>lift</b> creates a more natural flight feeling through the addition of a lift force. There are again two parameters that can be specified. The <b>lift</b> which is the lift force that is applied. And the <b>stallSpeed</b> which is the forward speed after which no more lift is generated.
 
         As mentioned @ref orxonox::Engine Engines can be mounted on the SpaceShip. Here is a (primitive) example of a SpaceShip defined in XML:
@@ -267,5 +267,5 @@
             bool bBoostCooldown_;         //!< Whether the SpaceShip is currently in boost cooldown, during which boosting is impossible.
             float initialBoostPower_;     //!< The initial (and maximal) boost power.
-            float boostPower_;            //!< The current boost power.
+            float boostPower_;            //!< The current boost power. If the boost power is reduced to zero the boost cooldown will start.
             float boostPowerRate_;        //!< The rate at which the boost power is recharged.
             float boostRate_;             //!< The rate at which boost power is used up.
@@ -294,5 +294,5 @@
             std::vector<Engine*> engineList_; //!< The list of all Engines mounted on this SpaceShip.
 
-            Timer timer_;                          //!< Timer for the cooldown duration.
+            Timer timer_;                          //!< Timer for the cooldown of the boost.
             float shakeDt_;                        //!< Temporary variable for the shaking of the camera.
             Vector3 cameraOriginalPosition_;       //!< The original position of the camera before shaking it.
