Index: /code/branches/dockingsystem/data/levels/docking.oxw
===================================================================
--- /code/branches/dockingsystem/data/levels/docking.oxw	(revision 8150)
+++ /code/branches/dockingsystem/data/levels/docking.oxw	(revision 8151)
@@ -1,5 +1,5 @@
 <LevelInfo
  name = "Transporter"
- description = "Level with moving Transporter."
+ description = "Level with a Transporter. Demostrates the docking system."
  tags = ""
 />
@@ -14,5 +14,5 @@
 <Level
  name         = "Transporter"
- description  = "Level with Transporter :)"
+ description  = "Docking example level"
 >
   <templates>
@@ -48,4 +48,7 @@
 
 		<Dock>
+			<effects>
+				<DockToShip />
+			</effects>
             <events>
                 <execute>
@@ -54,5 +57,5 @@
             </events>
             <attached>
-                <PlayerTrigger name="dockMe" /> //A PlayerTrigger triggering the execution of the QuestEffectBeacon.
+                <DistanceTrigger position="0,0,0" distance=2 target="ControllableEntity" name="dockMe" />
             </attached>
         </Dock>
Index: /code/branches/dockingsystem/src/modules/docking/CMakeLists.txt
===================================================================
--- /code/branches/dockingsystem/src/modules/docking/CMakeLists.txt	(revision 8150)
+++ /code/branches/dockingsystem/src/modules/docking/CMakeLists.txt	(revision 8151)
@@ -1,3 +1,5 @@
 SET_SOURCE_FILES(DOCKING_SRC_FILES
+  DockingEffect.cc
+  DockToShip.cc
   Dock.cc
 )
Index: /code/branches/dockingsystem/src/modules/docking/Dock.cc
===================================================================
--- /code/branches/dockingsystem/src/modules/docking/Dock.cc	(revision 8150)
+++ /code/branches/dockingsystem/src/modules/docking/Dock.cc	(revision 8151)
@@ -38,5 +38,4 @@
 {
 
-
 	CreateFactory(Dock);
 
@@ -56,5 +55,5 @@
         SUPER(Dock, XMLPort, xmlelement, mode);
 
-        // TODO: Something similar to XMLPortObject(Dock, QuestEffect, "effects", addEffect, getEffect, xmlelement, mode);
+        XMLPortObject(Dock, DockingEffect, "effects", addEffect, getEffect, xmlelement, mode);
         XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
 
@@ -77,3 +76,21 @@
 
 
+	bool Dock::addEffect(DockingEffect* effect) {
+		assert(effect);
+		effects_.push_back(effect);
+		return true;
+	}
+    
+	const DockingEffect* Dock::getEffect(unsigned int index) const {
+		int i = index;
+        for (std::list<DockingEffect*>::const_iterator effect = this->effects_.begin(); effect != this->effects_.end(); ++effect)
+        {
+            if(i == 0)
+               return *effect;
+
+            i--;
+        }
+        return NULL;
+	}
+
 }
Index: /code/branches/dockingsystem/src/modules/docking/Dock.h
===================================================================
--- /code/branches/dockingsystem/src/modules/docking/Dock.h	(revision 8150)
+++ /code/branches/dockingsystem/src/modules/docking/Dock.h	(revision 8151)
@@ -41,4 +41,5 @@
 
 #include "worldentities/StaticEntity.h"
+#include "DockingEffect.h"
 #include "DockingPrereqs.h"
 
@@ -55,4 +56,10 @@
 
         bool execute(bool bTriggered, BaseObject* trigger);
+
+	private:
+		std::list<DockingEffect*> effects_; //!< The list of DockingEffects to be executed when a player docks.
+
+        bool addEffect(DockingEffect* effect); //!< Add a DockingEffect to the Dock.
+        const DockingEffect* getEffect(unsigned int index) const; //!< Get the DockingEffect at a given index.
 	};
 
Index: /code/branches/dockingsystem/src/modules/docking/DockingEffect.cc
===================================================================
--- /code/branches/dockingsystem/src/modules/docking/DockingEffect.cc	(revision 8151)
+++ /code/branches/dockingsystem/src/modules/docking/DockingEffect.cc	(revision 8151)
@@ -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:
+ *      Damian 'Mozork' Frick
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file DockingEffect.cc
+    @brief Implementation of the DockingEffect class.
+*/
+
+#include "DockingEffect.h"
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+    DockingEffect::DockingEffect(BaseObject* creator) : BaseObject(creator)
+    {
+        RegisterObject(DockingEffect);
+    }
+
+    DockingEffect::~DockingEffect()
+    {
+
+    }
+
+    bool DockingEffect::invokeEffects(PlayerInfo* player, std::list<DockingEffect*> & effects)
+    {
+        bool check = true;
+
+        COUT(4) << "Invoking DockingEffects on player: " << player << " ."  << std::endl;
+
+        for (std::list<DockingEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
+            check = check	;// && (*effect)->invoke(player);
+
+        return check;
+    }
+}
Index: /code/branches/dockingsystem/src/modules/docking/DockingEffect.h
===================================================================
--- /code/branches/dockingsystem/src/modules/docking/DockingEffect.h	(revision 8151)
+++ /code/branches/dockingsystem/src/modules/docking/DockingEffect.h	(revision 8151)
@@ -0,0 +1,70 @@
+/*
+ *   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:
+ *      Sven Stucki 
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file DockingEffect.h
+    @brief Definition of the DockingEffect class.
+    @ingroup Docking
+*/
+
+#ifndef _DockingEffect_H__
+#define _DockingEffect_H__
+
+#include "DockingPrereqs.h"
+
+#include <list>
+#include "core/BaseObject.h"
+
+namespace orxonox
+{
+
+    /**
+    @brief
+        Handles DockingEffects for @ref orxonox::Docking "Docks".
+
+    @author
+        Sven Stucki
+
+    @ingroup Docking
+    */
+    class _DockingExport DockingEffect : public BaseObject
+    {
+        public:
+            DockingEffect(BaseObject* creator);
+            virtual ~DockingEffect();
+
+            virtual bool docking(PlayerInfo* player) = 0; //!< Called when docking starts
+			virtual bool attach(PlayerInfo* player) = 0; //!< Called after docking animation
+			virtual bool release(PlayerInfo* player) = 0; //!< Called when player wants undock
+
+            static bool invokeEffects(PlayerInfo* player, std::list<DockingEffect*> & effects); //!< Invokes all DockingEffects in the list.
+    };
+
+}
+
+#endif /* _DockingEffect_H__ */
Index: /code/branches/dockingsystem/src/modules/docking/DockingPrereqs.h
===================================================================
--- /code/branches/dockingsystem/src/modules/docking/DockingPrereqs.h	(revision 8150)
+++ /code/branches/dockingsystem/src/modules/docking/DockingPrereqs.h	(revision 8151)
@@ -66,4 +66,5 @@
 {
     class Dock;
+	class DockingEffect;
 }
 
