Index: code/branches/tgidronFS16/data/levels/Hover.oxw
===================================================================
--- code/branches/tgidronFS16/data/levels/Hover.oxw	(revision 11167)
+++ code/branches/tgidronFS16/data/levels/Hover.oxw	(revision 11168)
@@ -3,5 +3,5 @@
  description = "Level for Minigame Hover"
  tags = "minigame"
- screenshot = "emptylevel.png"
+ screenshot = "Hover.png"
 />
 
@@ -25,4 +25,9 @@
 ?>
 
+<?lua
+    include("templates/pickupRepresentationTemplates.oxt") 
+    include("includes/pickups.oxi") 
+ ?>
+
 <Template name=destroyhoverpickupRepresentation>
     <PickupRepresentation>
@@ -39,4 +44,8 @@
         </spawner-representation>
     </PickupRepresentation>
+</Template>
+
+<Template name=destroymetapickup baseclass=MetaPickup>
+  <MetaPickup representation="destroy" metaType="destroy" />
 </Template>
 
@@ -74,4 +83,6 @@
           cellSize="<?lua print(MAZE_CELL_SIZE)?>"
           cellHeight="<?lua print(MAZE_CELL_HEIGHT)?>"
+          pickuptemplate=destroyhoverpickupRepresentation
+          pickupbase=destroymetapickup
         />
         <Model
Index: code/branches/tgidronFS16/data/levels/includes/weaponSettingsHover.oxi
===================================================================
--- code/branches/tgidronFS16/data/levels/includes/weaponSettingsHover.oxi	(revision 11167)
+++ code/branches/tgidronFS16/data/levels/includes/weaponSettingsHover.oxi	(revision 11168)
@@ -14,8 +14,8 @@
     </links>
     <Weapon>
-      <IceGun mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" projectileMesh="LaserBeam2.mesh" />
+      <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1, 1,-18 " projectileMesh="LaserBeam2.mesh" />
     </Weapon>
     <Weapon>
-      <IceGun mode=0 munitionpershot=0 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" projectileMesh="LaserBeam2.mesh" />
+      <EnergyDrink mode=0 munitionpershot=0 delay=0     damage=9.3 material="Flares/point_lensflare" muzzleoffset=" 0.8, 1, -18.0" projectileMesh="LaserBeam2.mesh" />
     </Weapon>
   </WeaponPack>
@@ -27,4 +27,5 @@
 </weaponpacks>  
 <munition>
-  <IceMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
+  <LaserMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
+  <FusionMunition initialmagazines=1 maxmagazines=1 munitionpermagazine=10/>
 </munition>
Index: code/branches/tgidronFS16/data/levels/templates/spaceshipHover.oxt
===================================================================
--- code/branches/tgidronFS16/data/levels/templates/spaceshipHover.oxt	(revision 11167)
+++ code/branches/tgidronFS16/data/levels/templates/spaceshipHover.oxt	(revision 11168)
@@ -18,9 +18,9 @@
    reloadwaittime      = 0.5
 
-   primaryThrust     = 100
+   primaryThrust     = 200
    auxilaryThrust    = 1
-   rotationThrust    = 40
+   rotationThrust    = 45
 
-   jumpBoost = 120
+   jumpBoost = 110
 
    lift = 1;
Index: code/branches/tgidronFS16/data/overlays/HoverHUD.oxo
===================================================================
--- code/branches/tgidronFS16/data/overlays/HoverHUD.oxo	(revision 11167)
+++ code/branches/tgidronFS16/data/overlays/HoverHUD.oxo	(revision 11168)
@@ -55,4 +55,35 @@
     />
 
+
+    <OverlayText
+     position  = "0.02, 0.02"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+     caption   = "Total Flags: "
+    />
+
+    <TotalFlagsHUD
+     position  = "0.14, 0.02"
+     pickpoint = "0.0, 0.0"
+     font      = "ShareTechMono"
+     textsize  = 0.04
+     colour    = "1.0, 1.0, 1.0, 1.0"
+     align     = "left"
+
+     showpoints     = true
+    />
+
+    
+  </OverlayGroup>
+
  </OverlayGroup>
+
+
 </Template>
+
+
+  
+
Index: code/branches/tgidronFS16/src/modules/hover/CMakeLists.txt
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/CMakeLists.txt	(revision 11167)
+++ code/branches/tgidronFS16/src/modules/hover/CMakeLists.txt	(revision 11168)
@@ -17,4 +17,5 @@
     objects
     overlays
+    pickup
   SOURCE_FILES ${Hover_SRC_FILES}
 )
Index: code/branches/tgidronFS16/src/modules/hover/Hover.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/Hover.cc	(revision 11167)
+++ code/branches/tgidronFS16/src/modules/hover/Hover.cc	(revision 11168)
@@ -62,4 +62,6 @@
         cellHeight = 0;
 
+        totFlags = 0;
+
         this->setHUDTemplate("HoverHUD");
 
@@ -115,12 +117,18 @@
             
 
-            //Generate 10 Pickups randomly
-            for (int i = 0; i<10; i++)
+            //Generate 5 PickupSpawners randomly
+            for (int i = 0; i<5; i++)
             {
                 PickupSpawner* pickup = new PickupSpawner(origin_->getContext());
-                //PickupSpawner(this->getContext());
-                //pickup->createDroppedPickup(this->getContext(), pickup , this, 10);
+                pickup->setPosition(rand()%numCells, rand()%numCells, cellSize);
+                //pickup->setPickupTemplateName(origin_->getPickupMeta());
+                //pickup->setPickupTemplateName("destroymetapickup");
+                pickup->setMaxSpawnedItems(5);
+                pickup->setRespawnTime(30);
+                pickup->setTriggerDistance(5);
+                //pickup->createDroppedPickup(this->getContext(), pickup , this, 5);
                 pickups_.push_back(pickup);
             }
+
 
         } 
@@ -138,4 +146,13 @@
             }
 
+        //Generate 5 PickupSpawners randomly
+            for (int i = 0; i<5; i++)
+            {
+                PickupSpawner* pickup = new PickupSpawner(origin_->getContext());
+                //PickupSpawner->setPosition(rand()%numCells, rand()%numCells, cellSize);
+                //pickup->createDroppedPickup(this->getContext(), pickup , this, 5);
+                pickups_.push_back(pickup);
+            }
+
     }
 
@@ -150,4 +167,5 @@
                 flags_[i]->destroyLater();
                 flags_.erase (flags_.begin()+i);
+                totFlags++;
                 if(flags_.size()<=0){
                     ChatManager::message("Level Up!");
Index: code/branches/tgidronFS16/src/modules/hover/Hover.h
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/Hover.h	(revision 11167)
+++ code/branches/tgidronFS16/src/modules/hover/Hover.h	(revision 11168)
@@ -79,4 +79,6 @@
             int numCells;
 
+            int totFlags;
+
             std::vector<PickupSpawner*> pickups_;
     };
Index: code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc	(revision 11167)
+++ code/branches/tgidronFS16/src/modules/hover/HoverOrigin.cc	(revision 11168)
@@ -54,4 +54,6 @@
         XMLPortParam(HoverOrigin, "cellSize", setCellSize, getCellSize, xmlelement, mode);
         XMLPortParam(HoverOrigin, "cellHeight", setCellHeight, getCellHeight, xmlelement, mode);
+        XMLPortParam(HoverOrigin, "pickuptemplate", setPickup, getPickup, xmlelement, mode);
+        XMLPortParam(HoverOrigin, "pickupbase", setPickupMeta, getPickupMeta, xmlelement, mode);
     }
 
Index: code/branches/tgidronFS16/src/modules/hover/HoverOrigin.h
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/HoverOrigin.h	(revision 11167)
+++ code/branches/tgidronFS16/src/modules/hover/HoverOrigin.h	(revision 11168)
@@ -66,4 +66,14 @@
                 { return this->cellHeight_; }
 
+            inline void setPickup(std::string pickuptemplate)
+                { this->pickupTemplate_ = pickuptemplate; }
+            inline std::string getPickup() const
+                { return this->pickupTemplate_; }
+
+            inline void setPickupMeta(std::string pickupbase)
+                { this->pickupMeta_ = pickupbase; }
+            inline std::string getPickupMeta() const
+                { return this->pickupMeta_; }
+
         private:
             void checkGametype();
@@ -72,4 +82,6 @@
             int cellSize_;
             int cellHeight_;
+            std::string pickupTemplate_;
+            std::string pickupMeta_;
     };
 }
Index: code/branches/tgidronFS16/src/modules/hover/TotFlagsHUD.cc
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/TotFlagsHUD.cc	(revision 11168)
+++ code/branches/tgidronFS16/src/modules/hover/TotFlagsHUD.cc	(revision 11168)
@@ -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:
+ *      Tomer Gidron
+ *
+ */
+
+#include "TotFlagsHUD.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Convert.h"
+
+namespace orxonox
+{
+    RegisterClass(TotFlagsHUD);
+
+    TotFlagsHUD::TotFlagsHUD(Context* context) : OverlayText(context)
+    {
+        RegisterObject(TotFlagsHUD);
+
+        this->hoverGame_ = nullptr;
+        this->totFlags_ = 0;
+    }
+
+    void TotFlagsHUD::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(TotFlagsHUD, XMLPort, xmlelement, mode);
+
+        XMLPortParam(TotFlagsHUD,"showPoints", setShowTot, getShowTot, xmlelement, mode);
+    }
+
+    void TotFlagsHUD::tick(float dt)
+    {
+        SUPER(TotFlagsHUD, tick, dt);
+
+            const std::string& points = multi_cast<std::string>(this->DodgeRaceGame->getPoints());
+                setTextSize(0.04);
+                setPosition(Vector2(0.14, 0.02));
+                this->setColour(ColourValue(1, 1, 1, 1));
+                this->setCaption(points);
+            
+    }
+
+    void TotFlagsHUD::changedOwner()
+    {
+        SUPER(TotFlagsHUD, changedOwner);
+
+        if (this->getOwner() && this->getOwner()->getGametype())
+        {
+            this->TotFlagsHUD = orxonox_cast<Hover*>(this->getOwner()->getGametype());
+        }
+        else
+        {
+            this->DodgeRaceGame = nullptr;
+        }
+    }
+}
Index: code/branches/tgidronFS16/src/modules/hover/TotFlagsHUD.h
===================================================================
--- code/branches/tgidronFS16/src/modules/hover/TotFlagsHUD.h	(revision 11168)
+++ code/branches/tgidronFS16/src/modules/hover/TotFlagsHUD.h	(revision 11168)
@@ -0,0 +1,61 @@
+/*
+ *   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:
+ *      Cyrill Burgener
+ *
+ */
+
+ /**
+    @file TimeHUD.h
+    @brief Declaration of the TimeHUD class.
+*/
+
+#include "HoverPrereqs.h"
+
+#include "tools/interfaces/Tickable.h"
+#include "overlays/OverlayText.h"
+
+namespace orxonox
+{
+    class _HoverExport TotFlagsHUD : public OverlayText, public Tickable
+    {
+        public:
+            TotFlagsHUD(Context* context);
+
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
+
+            /// sets TOTAL flags taken
+            inline void setShowTot(int totFlags)
+                { this->totFlags_ = totFlags; }
+            /// returns total flags >=0
+            inline int getShowTot() const
+                { return this->totFlags_; }
+
+
+        private:
+            Hover* hoverGame_;
+            int totFlags_;
+    };
+}
+#endif /* _TimeHUD_H__ */
Index: code/branches/tgidronFS16/src/modules/pickup/PickupSpawner.h
===================================================================
--- code/branches/tgidronFS16/src/modules/pickup/PickupSpawner.h	(revision 11167)
+++ code/branches/tgidronFS16/src/modules/pickup/PickupSpawner.h	(revision 11168)
@@ -114,4 +114,24 @@
                 {return this->pickupTemplate_; }
 
+
+            void setPickupTemplateName(const std::string& name);
+            void setPickupTemplate(Template* temp);
+
+
+/**
+            @brief Set the distance in which to trigger.
+            @param value The new distance in which to trigger.
+            */
+            inline void setTriggerDistance(float value)
+                { this->triggerDistance_ = value; }
+            /**
+            @brief Set the time to respawn.
+            @param time New time after which this gets re-actived.
+            */
+            inline void setRespawnTime(float time)
+                { this->respawnTime_ = time; }
+
+            void setMaxSpawnedItems(int items); //!< Sets the maximum number of spawned items.
+
         private:
             void initialize(void);
@@ -131,21 +151,7 @@
                 { this->blocked_.insert(std::pair<PickupCarrier*, std::time_t>(carrier, std::time(0)+time)); }
 
-            /**
-            @brief Set the distance in which to trigger.
-            @param value The new distance in which to trigger.
-            */
-            inline void setTriggerDistance(float value)
-                { this->triggerDistance_ = value; }
-            /**
-            @brief Set the time to respawn.
-            @param time New time after which this gets re-actived.
-            */
-            inline void setRespawnTime(float time)
-                { this->respawnTime_ = time; }
+            
+            
 
-            void setMaxSpawnedItems(int items); //!< Sets the maximum number of spawned items.
-
-            void setPickupTemplateName(const std::string& name);
-            void setPickupTemplate(Template* temp);
 
             Pickupable* createPickup(void); //!< Creates a new Pickupable.
