Index: code/trunk/src/orxonox/objects/weaponSystem/weapons/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/objects/weaponSystem/weapons/CMakeLists.txt	(revision 2131)
+++ code/trunk/src/orxonox/objects/weaponSystem/weapons/CMakeLists.txt	(revision 2662)
@@ -1,5 +1,6 @@
 SET( SRC_FILES
+  Fusion.cc
   LaserGun.cc
-  Missile.cc
+#  Missile.cc
 )
 
Index: code/trunk/src/orxonox/objects/weaponSystem/weapons/Fusion.cc
===================================================================
--- code/trunk/src/orxonox/objects/weaponSystem/weapons/Fusion.cc	(revision 2662)
+++ code/trunk/src/orxonox/objects/weaponSystem/weapons/Fusion.cc	(revision 2662)
@@ -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:
+ *      Martin Polak
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Debug.h"
+
+#include "Fusion.h"
+
+
+namespace orxonox
+{
+    CreateFactory(Fusion);
+
+    Fusion::Fusion(BaseObject* creator) : Weapon(creator)
+    {
+        RegisterObject(Fusion);
+
+        this->speed_ = 1250;
+
+    }
+
+    Fusion::~Fusion()
+    {
+    }
+
+    void Fusion::takeBullets()
+    {
+//COUT(0) << "Fusion::takeBullets" << std::endl;
+        this->munition_->removeBullets(1);
+        this->bulletTimer(this->bulletLoadingTime_);
+    }
+
+    void Fusion::takeMagazines()
+    {
+        this->munition_->removeMagazines(1);
+        this->magazineTimer(this->magazineLoadingTime_);
+    }
+
+    void Fusion::createProjectile()
+    {
+//COUT(0) << "Fusion::createProjectile" << std::endl;
+        BillboardProjectile* projectile = new ParticleProjectile(this);
+        projectile->setOrientation(this->getWorldOrientation());
+        projectile->setPosition(this->getWorldPosition());
+        projectile->setVelocity(this->getWorldOrientation() * WorldEntity::FRONT * this->speed_);
+        projectile->setOwner(this->getParentWeaponSystem()->getParentPawn());
+    }
+}
Index: code/trunk/src/orxonox/objects/weaponSystem/weapons/Fusion.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponSystem/weapons/Fusion.h	(revision 2662)
+++ code/trunk/src/orxonox/objects/weaponSystem/weapons/Fusion.h	(revision 2662)
@@ -0,0 +1,60 @@
+/*
+ *   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:
+ *      Martin Polak
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _Fusion_H__
+#define _Fusion_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "core/BaseObject.h"
+
+#include "../munitions/LaserGunMunition.h"
+#include "util/Math.h"
+#include "../Weapon.h"
+#include "../projectiles/BillboardProjectile.h"
+#include "../projectiles/ParticleProjectile.h"
+
+namespace orxonox
+{
+    class _OrxonoxExport Fusion : public Weapon
+    {
+        public:
+            Fusion(BaseObject* creator);
+            virtual ~Fusion();
+
+            virtual void takeBullets();
+            virtual void takeMagazines();
+            virtual void createProjectile();
+
+        private:
+            float speed_;
+
+    };
+}
+
+#endif /* _Fusion_H__ */
Index: code/trunk/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc
===================================================================
--- code/trunk/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc	(revision 2131)
+++ code/trunk/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc	(revision 2662)
@@ -34,12 +34,17 @@
 #include "util/Debug.h"
 
+#include "LaserGun.h"
+
 
 namespace orxonox
 {
+    CreateFactory(LaserGun);
+
     LaserGun::LaserGun(BaseObject* creator) : Weapon(creator)
     {
         RegisterObject(LaserGun);
 
-        projectileColor_ = ColourValue(1.0, 1.0, 0.5)
+        this->speed_ = 1250;
+
     }
 
@@ -48,30 +53,25 @@
     }
 
-    LaserGun::fire()
+    void LaserGun::takeBullets()
     {
-            BillboardProjectile* projectile = new ParticleProjectile(this);
-            projectile->setColour(this->projectileColor_);
-            projectile->create();
-            if (projectile->getClassID() == 0)
-            {
-              COUT(3) << "generated projectile with classid 0" <<  std::endl; // TODO: remove this output
-            }
-
-            projectile->setObjectMode(0x3);
+//COUT(0) << "LaserGun::takeBullets" << std::endl;
+        this->munition_->removeBullets(1);
+        this->bulletTimer(this->bulletLoadingTime_);
     }
 
-    LaserGun::addMunition()
+    void LaserGun::takeMagazines()
     {
-        //this->munition_ = ;
+        this->munition_->removeMagazines(1);
+        this->magazineTimer(this->magazineLoadingTime_);
     }
 
-    void LaserGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    void LaserGun::createProjectile()
     {
-
-    }
-
-    ColorValue LaserGun::getProjectileColor()
-    {
-        return projectileColor_;
+//COUT(0) << "LaserGun::createProjectile" << std::endl;
+        BillboardProjectile* projectile = new ParticleProjectile(this);
+        projectile->setOrientation(this->getWorldOrientation());
+        projectile->setPosition(this->getWorldPosition());
+        projectile->setVelocity(this->getWorldOrientation() * WorldEntity::FRONT * this->speed_);
+        projectile->setOwner(this->getParentWeaponSystem()->getParentPawn());
     }
 }
Index: code/trunk/src/orxonox/objects/weaponSystem/weapons/LaserGun.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponSystem/weapons/LaserGun.h	(revision 2131)
+++ code/trunk/src/orxonox/objects/weaponSystem/weapons/LaserGun.h	(revision 2662)
@@ -34,7 +34,9 @@
 #include "core/BaseObject.h"
 
-#include "LaserGunMunition.h"
-#include "tools/BillboardSet.h"
+#include "../munitions/LaserGunMunition.h"
 #include "util/Math.h"
+#include "../Weapon.h"
+#include "../projectiles/BillboardProjectile.h"
+#include "../projectiles/ParticleProjectile.h"
 
 namespace orxonox
@@ -46,12 +48,10 @@
             virtual ~LaserGun();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
-            ColourValue LaserGun::getProjectileColour();
+            virtual void takeBullets();
+            virtual void takeMagazines();
+            virtual void createProjectile();
 
         private:
-            ColorValue projectileColor_;
-
-
+            float speed_;
 
     };
