Index: /branches/proxy/src/defs/class_id.h
===================================================================
--- /branches/proxy/src/defs/class_id.h	(revision 9607)
+++ /branches/proxy/src/defs/class_id.h	(revision 9608)
@@ -234,7 +234,8 @@
   CL_GROUND_TURRET              =    0x000003e5,
   CL_SPACE_TURRET               =    0x000003e6,
-  CL_GUIDED_MISSILE             =    0x000003e7,
-  CL_HYPERBLAST                 =    0x000003e8,
-  CL_BOOMERANG_PROJECTILE       =    0x00000309,
+  CL_NETWORK_TURRET             =    0x000003e7,
+  CL_GUIDED_MISSILE             =    0x000003e8,
+  CL_HYPERBLAST                 =    0x000003e9,
+  CL_BOOMERANG_PROJECTILE       =    0x0000030a,
 
   // NPC's
Index: /branches/proxy/src/world_entities/WorldEntities.am
===================================================================
--- /branches/proxy/src/world_entities/WorldEntities.am	(revision 9607)
+++ /branches/proxy/src/world_entities/WorldEntities.am	(revision 9608)
@@ -5,4 +5,5 @@
                 world_entities/npcs/ground_turret.cc \
                 world_entities/npcs/space_turret.cc \
+                world_entities/npcs/network_turret.cc \
                 world_entities/npcs/generic_npc.cc \
                 world_entities/npcs/door.cc \
@@ -79,4 +80,5 @@
                 npcs/ground_turret.h \
                 npcs/space_turret.h \
+                npcs/network_turret.h \
                 npcs/door.cc \
                 npcs/repair_station.h \
Index: /branches/proxy/src/world_entities/npcs/ground_turret.h
===================================================================
--- /branches/proxy/src/world_entities/npcs/ground_turret.h	(revision 9607)
+++ /branches/proxy/src/world_entities/npcs/ground_turret.h	(revision 9608)
@@ -15,9 +15,8 @@
 {
 
- public:
+public:
   GroundTurret(const TiXmlElement* root = NULL);
   virtual ~GroundTurret();
 
-  void init();
   virtual void loadParams(const TiXmlElement* root);
 
@@ -30,7 +29,11 @@
   virtual void tick(float time);
 
- private:
-   PNode  weaponHolder[2];
-   Weapon *left, *right;
+private:
+  void init();
+
+
+private:
+  PNode  weaponHolder[2];
+  Weapon *left, *right;
 };
 
Index: /branches/proxy/src/world_entities/npcs/network_turret.cc
===================================================================
--- /branches/proxy/src/world_entities/npcs/network_turret.cc	(revision 9608)
+++ /branches/proxy/src/world_entities/npcs/network_turret.cc	(revision 9608)
@@ -0,0 +1,140 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   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, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Manuel Leuenberger
+   co-programmer: ...
+*/
+
+#include "network_turret.h"
+#include "model.h"
+#include "world_entities/weapons/turret.h"
+
+#include "state.h"
+#include "playable.h"
+#include "player.h"
+
+
+#include "util/loading/factory.h"
+#include "network_game_manager.h"
+#include "util/loading/load_param.h"
+
+#include "effects/explosion.h"
+
+#include "weapons/targeting_turret.h"
+
+CREATE_FACTORY(NetworkTurret, CL_NETWORK_TURRET);
+
+
+
+
+/**
+ * constructs and loads a NetworkTurret from a XML-element
+ * @param root the XML-element to load from
+ */
+NetworkTurret::NetworkTurret(const TiXmlElement* root)
+    : NPC(root)
+{
+  this->init();
+  if (root != NULL)
+    this->loadParams(root);
+}
+
+
+/**
+ * standard deconstructor
+ */
+NetworkTurret::~NetworkTurret ()
+{}
+
+
+/**
+ * initializes the NetworkTurret
+ * @todo change this to what you wish
+ */
+void NetworkTurret::init()
+{
+  this->setClassID(CL_NETWORK_TURRET, "NetworkTurret");
+  this->loadModel("models/network_turret_#.obj", 5);
+  this->weapon = new TargetingTurret();
+  this->weapon->loadModel("models/guns/turret2.obj", 10);
+
+  this->setHealthMax(300);
+  this->setHealth(300);
+
+  this->weaponHolder.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT);
+
+  this->weaponHolder.setRelCoor(0,25,0);
+  this->weaponHolder.setParent(this);
+}
+
+
+/**
+ * @brief loads a NetworkTurret from a XML-element
+ * @param root the XML-element to load from
+ * @todo make the class Loadable
+ */
+void NetworkTurret::loadParams(const TiXmlElement* root)
+{
+  // all the clases this Entity is directly derived from must be called in this way, to load all settings.
+  NPC::loadParams(root);
+}
+
+/**
+ * advances the NetworkTurret about time seconds
+ * @param time the Time to step
+ */
+void NetworkTurret::tick(float dt)
+{
+  if(this->getHealth() > 0.0f
+    ) // HACK <--- YOU ARE THE MOTHERFUCKER
+  {
+    if (likely(this->weapon != NULL))
+    {
+      //    this->left->tickW(dt);
+      this->weapon->requestAction(WA_SHOOT);
+    }
+  }
+}
+
+/**
+ * draws this worldEntity
+ */
+void NetworkTurret::draw () const
+{
+  WorldEntity::draw();
+
+  if (this->weapon != NULL)
+    this->weapon->draw();
+}
+
+
+
+/**
+ *
+ *
+ */
+void NetworkTurret::postSpawn ()
+{}
+
+/**
+ *
+ *
+ */
+void NetworkTurret::leftWorld ()
+{}
+
+void NetworkTurret::destroy(WorldEntity* killer)
+{
+  this->setAbsDirSoft(Quaternion(-90, Vector(0,0,1)), 90);
+  Explosion::explode(this, Vector(10,10,10));
+
+  this->toList(OM_DEAD);
+}
Index: /branches/proxy/src/world_entities/npcs/network_turret.h
===================================================================
--- /branches/proxy/src/world_entities/npcs/network_turret.h	(revision 9608)
+++ /branches/proxy/src/world_entities/npcs/network_turret.h	(revision 9608)
@@ -0,0 +1,39 @@
+/*!
+ * @file network_turret.h
+ * @brief description
+*/
+
+#ifndef _NETWORK_TURRET_H
+#define _NETWORK_TURRET_H
+
+#include "npcs/npc.h"
+
+class Weapon;
+
+//! A Class to ...
+class NetworkTurret : public NPC
+{
+
+public:
+  NetworkTurret(const TiXmlElement* root = NULL);
+  virtual ~NetworkTurret();
+
+  virtual void loadParams(const TiXmlElement* root);
+
+  virtual void postSpawn ();
+  virtual void leftWorld ();
+
+  virtual void destroy(WorldEntity* killer);
+
+  virtual void draw() const;
+  virtual void tick(float time);
+
+private:
+  void init();
+
+private:
+  PNode  weaponHolder;
+  Weapon *weapon;
+};
+
+#endif /* _NETWORK_TURRET_H */
