Index: /branches/playability/src/world_entities/projectiles/lbolt.cc
===================================================================
--- /branches/playability/src/world_entities/projectiles/lbolt.cc	(revision 10116)
+++ /branches/playability/src/world_entities/projectiles/lbolt.cc	(revision 10117)
@@ -47,5 +47,5 @@
   this->setMinEnergy(1);
   this->setHealthMax(0);
-  this->lifeSpan = 5.0;
+  this->lifeSpan = 2.0;
 
   this->emitter = new DotEmitter(100, 5, M_2_PI);
Index: /branches/playability/src/world_entities/projectiles/mbolt.cc
===================================================================
--- /branches/playability/src/world_entities/projectiles/mbolt.cc	(revision 10116)
+++ /branches/playability/src/world_entities/projectiles/mbolt.cc	(revision 10117)
@@ -53,5 +53,5 @@
   this->setMinEnergy(4);
   this->setHealthMax(0);
-  this->lifeSpan = 5.0;
+  this->lifeSpan = 3.0;
   this->angle     = 0;
 
@@ -137,7 +137,6 @@
   this->lifeCycle = 0.0;
 
-  //this->toList(OM_NULL);
   this->toList(OM_DEAD);
-  //this->removeNode();
+  this->removeNode();
   MBolt::fastFactory->kill(this);
 }
@@ -146,10 +145,16 @@
 void MBolt::collidesWith(WorldEntity* entity, const Vector& location)
 {
-  PRINTF(0)("MBolt collides pretest\n");
-
-  if( entity == NULL)
+
+  if (this->hitEntity != entity)
+    this->destroy( entity );
+  this->hitEntity = entity;
+  dynamic_cast<SpaceShip*>(entity)->damage(this->getPhysDamage(),this->getElecDamage());
+  this->destroy(this);
+  
+  return;
+
+  if( entity == NULL || dynamic_cast<SpaceShip*>(entity) == NULL)
     return;
 
-  PRINTF(0)("MBolt collides\n");
   dynamic_cast<SpaceShip*>(entity)->damage( this->getPhysDamage(), this->getElecDamage());
   //entity->destroy(this);
@@ -179,4 +184,5 @@
 void MBolt::destroy (WorldEntity* killer)
 {
+  //this->deactivate();
   Projectile::destroy( killer );
   PRINTF(5)("DESTROY MBolt\n");
@@ -211,3 +217,2 @@
 
 }
-
Index: /branches/playability/src/world_entities/projectiles/mbolt.h
===================================================================
--- /branches/playability/src/world_entities/projectiles/mbolt.h	(revision 10116)
+++ /branches/playability/src/world_entities/projectiles/mbolt.h	(revision 10117)
@@ -35,5 +35,4 @@
     virtual void draw () const;
 
-
   private:
     static FastFactory*               fastFactory;
Index: /branches/playability/src/world_entities/projectiles/swarm_projectile.cc
===================================================================
--- /branches/playability/src/world_entities/projectiles/swarm_projectile.cc	(revision 10116)
+++ /branches/playability/src/world_entities/projectiles/swarm_projectile.cc	(revision 10117)
@@ -136,5 +136,5 @@
     this->destroy( entity );
   this->hitEntity = entity;
-  dynamic_cast<SpaceShip*>(entity)->damage(this->getPhysDamage(),this->getElecDamage());
+  //dynamic_cast<SpaceShip*>(entity)->damage(this->getPhysDamage(),this->getElecDamage());
   this->destroy(this);
 }
Index: /branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10116)
+++ /branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10117)
@@ -147,26 +147,26 @@
   Weapon* wpRight1 = new LightBlaster ();
   wpRight1->setName( "LightBlaster");
-  wpRight1->setParent( this);
+  //wpRight1->setParent( this);
   Weapon* wpLeft1 = new LightBlaster ();
   wpLeft1->setName( "LightBlaster");
-  wpLeft1->setParent( this);
+  //wpLeft1->setParent( this);
 
   Weapon* wpRight2 = new MediumBlaster ();
   wpRight2->setName( "MediumBlaster");
-  wpRight2->setParent( this);
+  //wpRight2->setParent( this);
   Weapon* wpLeft2 = new MediumBlaster ();
   wpLeft2->setName( "MediumBlaster");
-  wpLeft2->setParent( this);
+  //wpLeft2->setParent( this);
   
   Weapon* wpRight3 = new HeavyBlaster ();
   wpRight3->setName( "HeavyBlaster");
-  wpRight3->setParent( this);
+  //wpRight3->setParent( this);
   Weapon* wpLeft3 = new HeavyBlaster ();
   wpLeft3->setName( "HeavyBlaster");
-  wpLeft3->setParent( this);
+  //wpLeft3->setParent( this);
 
   Weapon* cannon = new SwarmLauncher();
   cannon->setName( "SwarmLauncher");
-  cannon->setParent( this);
+  //cannon->setParent( this);
 
 
@@ -180,5 +180,5 @@
   this->secWeaponMan.addWeapon( cannon, 0, 0);
 
-
+/*
   wpRight1->requestAction(WA_ACTIVATE);
   wpLeft1->requestAction(WA_ACTIVATE);
@@ -190,5 +190,5 @@
 
   cannon->requestAction(WA_ACTIVATE);
-
+*/
   
   this->weaponMan.changeWeaponConfig(1);
@@ -418,5 +418,4 @@
 void SpaceShip::collidesWith(WorldEntity* entity, const Vector& location)
 {
-  PRINTF(0)("SPACESHIP COLLIDED WITH %s\n",entity->getCName());
 }
 
@@ -669,5 +668,5 @@
 
 void SpaceShip::damage(float pDamage, float eDamage){
-  PRINTF(0)("ship hit for (%f,%f) \n",pDamage,eDamage);
+  PRINTF(5)("ship hit for (%f,%f) \n",pDamage,eDamage);
 
   if( this->shieldActive) {
@@ -968,7 +967,6 @@
 void SpaceShip::nextWeaponConfig()
 {
-  
-  this->curWeaponPrimary    = (curWeaponPrimary + 1) % 3;
-  this->weaponMan.changeWeaponConfig(this->curWeaponPrimary);
+  PRINTF(0)("Requested next weapon config!\n");
+  this->weaponMan.nextWeaponConfig();
   Playable::weaponConfigChanged();
 }
@@ -979,6 +977,13 @@
 void SpaceShip::previousWeaponConfig()
 {
-  this->curWeaponPrimary    = (curWeaponPrimary + 1) % 3;
+  this->curWeaponPrimary    = (this->curWeaponPrimary + 1) % 3;
   this->weaponMan.changeWeaponConfig(this->curWeaponPrimary);
   Playable::weaponConfigChanged();
 }
+
+void SpaceShip::hit(float damage, WorldEntity* killer)
+{
+  this->damage(killer->getDamage(),0);
+  killer->collidesWith( this, this->getAbsCoor());
+  //this->collidesWith(killer, this->getAbsCoor());
+}
Index: /branches/playability/src/world_entities/space_ships/space_ship.h
===================================================================
--- /branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10116)
+++ /branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10117)
@@ -82,5 +82,5 @@
     void previousWeaponConfig();
 
-    inline void hit(float damage, WorldEntity* killer) { this->collidesWith(killer, this->getAbsCoor()); killer->collidesWith(this, this->getAbsCoor()); } ;
+    virtual void hit(float damage, WorldEntity* killer);
 
   private:
Index: /branches/playability/src/world_entities/weapons/medium_blaster.cc
===================================================================
--- /branches/playability/src/world_entities/weapons/medium_blaster.cc	(revision 10116)
+++ /branches/playability/src/world_entities/weapons/medium_blaster.cc	(revision 10117)
@@ -11,4 +11,6 @@
 #include "loading/fast_factory.h"
 
+//#include "class_id_DEPRECATED.h"
+//ObjectListDefinition(MediumBlaster);
 CREATE_FACTORY(MediumBlaster);
 /**
@@ -67,5 +69,5 @@
   this->setCapability(WTYPE_ALLDIRS | WTYPE_DIRECTIONAL | WTYPE_LIGHT);
   this->setProjectileTypeC("MBolt");   // FIXME temp project type until the blaste class exist
-  this->prepareProjectiles(20);
+  this->prepareProjectiles(100);
 
   Animation3D* animation2 = this->getAnimation(WS_ACTIVATING, this);
@@ -100,5 +102,4 @@
   pj->setAbsCoor(this->getEmissionPoint());
   pj->setAbsDir(this->getAbsDir());
-  pj->toList(OM_GROUP_01_PROJ);
   pj->activate();
 }
