Index: /trunk/src/world_entities/npcs/npc.cc
===================================================================
--- /trunk/src/world_entities/npcs/npc.cc	(revision 10544)
+++ /trunk/src/world_entities/npcs/npc.cc	(revision 10545)
@@ -73,5 +73,5 @@
                         ->addMethod("setAI", Executor1<NPC, lua_State*, bool>(&NPC::setAI))
                         ->addMethod("setVisibility", Executor1<WorldEntity, lua_State*, bool>(&WorldEntity::setVisibility))
-                        ->addMethod("destroy", Executor0<NPC, lua_State*/*, WorldEntity**/>(&NPC::destroy))
+                        ->addMethod("destroy", Executor0<NPC, lua_State*/*, WorldEntity**/>(&NPC::destroyThis))
                        );
 
@@ -81,5 +81,5 @@
   this->registerObject(this, NPC::_objectList);
 
-  this->toList(OM_GROUP_01);
+  this->toList(OM_GROUP_00);
   this->bAIEnabled = false;
 
@@ -262,5 +262,5 @@
 }
 
-void NPC::destroy( /*WorldEntity* killer*/ )
+void NPC::destroy( WorldEntity* killer )
 {
 
@@ -314,4 +314,9 @@
   //}
 
+  this->toList(OM_NULL);
+  this->setAI( false);
+  this->setAbsCoor(-10000,-10000,-10000);
+  
+
 }
 
@@ -430,4 +435,5 @@
 void NPC::hit( float damage, WorldEntity* killer)
 {
+  this->destroy( killer);
   this->setDamage(killer->getDamage());
 }
Index: /trunk/src/world_entities/npcs/npc.h
===================================================================
--- /trunk/src/world_entities/npcs/npc.h	(revision 10544)
+++ /trunk/src/world_entities/npcs/npc.h	(revision 10545)
@@ -35,7 +35,9 @@
   void setAI(bool activate);
   inline void enableAI(int flag) { this->bAIEnabled = (bool)flag; }
-  void destroy( /*WorldEntity* killer*/ );
+  void destroy( WorldEntity* killer );
 
   void hit( float damage, WorldEntity* killer);
+
+  inline void destroyThis() { this->destroy(NULL);};
 
 private:
Index: /trunk/src/world_entities/projectiles/hbolt.cc
===================================================================
--- /trunk/src/world_entities/projectiles/hbolt.cc	(revision 10544)
+++ /trunk/src/world_entities/projectiles/hbolt.cc	(revision 10545)
@@ -20,4 +20,5 @@
 #include "state.h"
 #include "model.h"
+#include "world_entities/npcs/npc.h"
 
 #include "particles/dot_emitter.h"
@@ -147,9 +148,9 @@
   this->angle += this->rotationSpeed * dt;
 
-  for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
+  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
   {
-    if( ((*eIterator)->getOMListNumber() != (this->origList -1))   && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
+    if( ((*eIterator)->getOMListNumber() != (this->origList -1))  && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
     {
-      (*eIterator)->hit (this->getDamage(),this);
+      (*eIterator)->destroy(this); //hit (this->getDamage(),this);
       this->deactivate();
   PRINTF(0)("HBolt destroyed\n");
Index: /trunk/src/world_entities/projectiles/lbolt.cc
===================================================================
--- /trunk/src/world_entities/projectiles/lbolt.cc	(revision 10544)
+++ /trunk/src/world_entities/projectiles/lbolt.cc	(revision 10545)
@@ -22,4 +22,6 @@
 #include "state.h"
 #include "model.h"
+
+#include "world_entities/npcs/npc.h"
 
 #include "particles/dot_emitter.h"
@@ -148,9 +150,9 @@
   angle += rotationSpeed * dt;
 
-  for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
+  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
   {
-    if( ((*eIterator)->getOMListNumber() != (this->origList -1))   && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
+    if( ((*eIterator)->getOMListNumber() != (this->origList -1))  && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
     {
-      (*eIterator)->hit (this->getDamage(),this);
+      (*eIterator)->destroy(this); //hit (this->getDamage(),this);
       this->deactivate();
   PRINTF(0)("LBolt destroyed\n");
Index: /trunk/src/world_entities/projectiles/mbolt.cc
===================================================================
--- /trunk/src/world_entities/projectiles/mbolt.cc	(revision 10544)
+++ /trunk/src/world_entities/projectiles/mbolt.cc	(revision 10545)
@@ -22,4 +22,6 @@
 #include "state.h"
 #include "model.h"
+
+#include "world_entities/npcs/npc.h"
 
 #include "particles/dot_emitter.h"
@@ -176,9 +178,9 @@
   this->trail->tick(dt);
 
-  for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
+  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
   {
     if( ((*eIterator)->getOMListNumber() != (this->origList -1))  && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
     {
-      (*eIterator)->hit (this->getDamage(),this);
+      (*eIterator)->destroy(this); //hit (this->getDamage(),this);
       this->deactivate();
       PRINTF(0)("MBolt destroyed\n");
Index: /trunk/src/world_entities/projectiles/swarm_projectile.cc
===================================================================
--- /trunk/src/world_entities/projectiles/swarm_projectile.cc	(revision 10544)
+++ /trunk/src/world_entities/projectiles/swarm_projectile.cc	(revision 10545)
@@ -224,5 +224,5 @@
   this->curDir = this->velocity;
 
-  if( this->target != NULL && (this->getAbsCoor() - this->target->getAbsCoor()).len() < 3)   // FIXME  Temp fake workaround for collision :)
+  if( this->target != NULL && (this->getAbsCoor() - this->target->getAbsCoor()).len() < 3)   // HACK  Temp fake workaround for collision :)
   {
     dynamic_cast<WorldEntity*>(target)->destroy(this); //hit(this->getDamage(), this);
Index: /trunk/src/world_entities/weapons/swarm_launcher.cc
===================================================================
--- /trunk/src/world_entities/weapons/swarm_launcher.cc	(revision 10544)
+++ /trunk/src/world_entities/weapons/swarm_launcher.cc	(revision 10545)
@@ -156,5 +156,4 @@
   bool fired  = false;
 
-  PRINTF(0)("fire\n");
   Projectile* pj = NULL;
   for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
