Index: trunk/src/util/object_manager.cc
===================================================================
--- trunk/src/util/object_manager.cc	(revision 5827)
+++ trunk/src/util/object_manager.cc	(revision 5828)
@@ -62,8 +62,6 @@
     list<BaseObject*>::const_iterator node;
     for (node = objectList->begin(); node != objectList->end(); node++)
-    {
       if ((dynamic_cast<PNode*>(*node)->getAbsCoor() - center.getAbsCoor()).len() < radius)
         newList->push_back(dynamic_cast<WorldEntity*>(*node));
-    }
     return newList;
   }
Index: trunk/src/world_entities/weapons/bomb.cc
===================================================================
--- trunk/src/world_entities/weapons/bomb.cc	(revision 5827)
+++ trunk/src/world_entities/weapons/bomb.cc	(revision 5828)
@@ -18,4 +18,6 @@
 #include "state.h"
 #include "model.h"
+#include "primitive_model.h"
+
 #include "fast_factory.h"
 #include "list.h"
@@ -59,4 +61,6 @@
 Bomb::~Bomb ()
 {
+  delete this->detonationSphere;
+  delete this->detonationMaterial;
 
 }
@@ -71,4 +75,9 @@
   this->setClassID(CL_BOMB, "Bomb");
 
+
+  this->detonationSphere = new PrimitiveModel(PRIM_SPHERE);
+  this->detonationMaterial = new Material();
+  this->detonationMaterial->setDiffuse(1, 0, 0);
+  //   this->detonationMaterial->setTransparency(.1);
   /**
    * @todo: Write CL_PROTO_WORLD_ENTITY INTO THE src/defs/class_id.h (your own definition)
@@ -101,8 +110,4 @@
 void Bomb::tick(float time)
 {
-  //Vector v = *this->flightDirection * ( this->speed * time * 1000 + 0.1);
-  Vector v = this->velocity * (time);
-  this->shiftCoor(v);
-
   this->lifeCycle += time/this->lifeSpan;
   if( this->lifeCycle >= 1.0)
@@ -114,6 +119,11 @@
       this->deactivate();
     }
-    if (this->lifeCycle > 0.9f)
-      this->detonate ((this->lifeCycle-.89) *10000.0);
+  else if (this->lifeCycle > 0.9f)
+    this->detonate ((this->lifeCycle-.89) *1000.0);
+  else
+  {
+    Vector v = this->velocity * (time);
+    this->shiftCoor(v);
+  }
 }
 
@@ -135,6 +145,17 @@
   glMultMatrixf((float*)matrix);
 
-  if (model)
-    model->draw();
+  if (this->lifeCycle < .9)
+  {
+    if (model)
+      model->draw();
+  }
+  else
+  {
+    glScalef((this->lifeCycle-.89) *1000.0,
+              (this->lifeCycle-.89) *1000.0,
+              (this->lifeCycle-.89) *1000.0);
+    this->detonationMaterial->select();
+    this->detonationSphere->draw();
+  }
   glPopMatrix();
 }
@@ -147,6 +168,6 @@
 void Bomb::collidesWith (WorldEntity* entity, const Vector& location)
 {
-  if (entity->isA(CL_NPC))
-    this->lifeSpan = 0.9f;
+  if (this->lifeCycle < .9f && entity->isA(CL_NPC))
+    this->lifeCycle = 0.9f;
 }
 
@@ -160,4 +181,5 @@
 {
   State::getWorldEntityList()->remove(this);
+  this->lifeCycle = 0.0f;
   Bomb::fastFactory->kill(this);
 }
@@ -170,5 +192,5 @@
     while( !detonationList->empty() )
     {
-    //detonationList->front()->collidesWith(this, Vector(0,0,0));
+      detonationList->front()->collidesWith(this, Vector(0,0,0));
       detonationList->pop_front();
     }
Index: trunk/src/world_entities/weapons/bomb.h
===================================================================
--- trunk/src/world_entities/weapons/bomb.h	(revision 5827)
+++ trunk/src/world_entities/weapons/bomb.h	(revision 5828)
@@ -8,7 +8,9 @@
 
 #include "projectile.h"
+
 class FastFactory;
 class ParticleSystem;
 class ParticleEmitter;
+class Material;
 
 //! A Class to ...
@@ -41,5 +43,6 @@
 
   ParticleEmitter*                  emitter;
-
+  Model*                            detonationSphere;
+  Material*                         detonationMaterial;
 };
 
Index: trunk/src/world_entities/weapons/cannon.cc
===================================================================
--- trunk/src/world_entities/weapons/cannon.cc	(revision 5827)
+++ trunk/src/world_entities/weapons/cannon.cc	(revision 5828)
@@ -83,6 +83,6 @@
   this->setStateDuration(WS_DEACTIVATING, .4);
 
-  this->setMaximumEnergy(100, 1);
-  this->increaseEnergy(30);
+  this->setMaximumEnergy(100, 20);
+  this->increaseEnergy(100);
   //this->minCharge = 2;
 
