Index: /orxonox/trunk/src/defs/debug.h
===================================================================
--- /orxonox/trunk/src/defs/debug.h	(revision 3684)
+++ /orxonox/trunk/src/defs/debug.h	(revision 3685)
@@ -58,10 +58,10 @@
 // DEFINE MODULES \\
 #define DEBUG_MODULE_ORXONOX            0
-#define DEBUG_MODULE_WORLD              2
+#define DEBUG_MODULE_WORLD              3
 #define DEBUG_MODULE_PNODE              0
 #define DEBUG_MODULE_WORLD_ENTITY       0
 #define DEBUG_MODULE_COMMAND_NODE       0
 #define DEBUG_MODULE_GRAPHICS           0
-#define DEBUG_MODULE_LOAD               1
+#define DEBUG_MODULE_LOAD               0
 
 #define DEBUG_MODULE_IMPORTER           0
Index: /orxonox/trunk/src/garbage_collector.cc
===================================================================
--- /orxonox/trunk/src/garbage_collector.cc	(revision 3684)
+++ /orxonox/trunk/src/garbage_collector.cc	(revision 3685)
@@ -39,5 +39,5 @@
    this->setClassName ("GarbageCollection");
    this->time = 0;
-   this->delay = 3.0f; /* clean up all 5.0 seconds */
+   this->delay = 1.5f; /* clean up all 5.0 seconds */
 }
 
Index: /orxonox/trunk/src/world_entities/player.cc
===================================================================
--- /orxonox/trunk/src/world_entities/player.cc	(revision 3684)
+++ /orxonox/trunk/src/world_entities/player.cc	(revision 3685)
@@ -156,4 +156,6 @@
 void Player::tick (float time)
 {
+  /* link tick to weapon */
+  this->activeWeapon->tick(time);
   // player controlled movement
   this->move(time);
Index: /orxonox/trunk/src/world_entities/projectile.cc
===================================================================
--- /orxonox/trunk/src/world_entities/projectile.cc	(revision 3684)
+++ /orxonox/trunk/src/world_entities/projectile.cc	(revision 3685)
@@ -37,5 +37,5 @@
   this->flightDirection = NULL;
   this->currentLifeTime = 0.0f;
-  this->ttl = 1.0f;
+  this->ttl = 0.75f; /* sec */
   this->speed = 2.0f;
 }
@@ -89,6 +89,6 @@
 void Projectile::setSpeed(float speed)
 {
-  this->speed = speed * 5;
-  printf("Projectile::setting speed to: %f\n", this->speed);
+  this->speed = speed * 3;
+  PRINTF(4)("Projectile::setting speed to: %f\n", this->speed);
 }
 
@@ -99,11 +99,16 @@
 void Projectile::tick (float time) 
 {
-  this->speed = this->weapon->getSpeed() * 5;  
+  this->speed = this->weapon->getSpeed() * 3;  
   this->shiftCoor(*this->flightDirection * this->speed * time);
-  printf("current speed is: %f\n", this->speed);
+  //printf("current speed is: %f\n", this->speed);
 
   this->currentLifeTime += time;
-  if( this->ttl > this->currentLifeTime)
-    this->finalize();
+  if( this->ttl < this->currentLifeTime)
+    {
+      PRINTF(5)("FINALIZE=============================================================\n");
+      PRINTF(5)("current life time is: %f/%f\n", this->currentLifeTime, this->ttl);
+      PRINTF(5)("FINALIZE=============================================================\n");
+      this->finalize();
+    }
 }
 
Index: /orxonox/trunk/src/world_entities/test_gun.cc
===================================================================
--- /orxonox/trunk/src/world_entities/test_gun.cc	(revision 3684)
+++ /orxonox/trunk/src/world_entities/test_gun.cc	(revision 3685)
@@ -42,4 +42,5 @@
   :  Weapon (parent, coordinate, direction) 
 {
+  this->idleTime = 0.2f;
 }
 
@@ -83,5 +84,7 @@
 void TestGun::fire()
 {
-  //printf("TestGun::fire() - firing weapon now ---------------------------\n");
+  if( this->localTime < this->idleTime)
+    return;
+
   Projectile* pj = new Projectile(this);
 
@@ -96,7 +99,6 @@
   pj->setSpeed(this->getSpeed());
 
-
-
   this->worldEntities->add(pj);
+  this->localTime = 0;
 }
 
@@ -128,5 +130,7 @@
 */
 void TestGun::tick (float time) 
-{}
+{
+  this->localTime += time;
+}
 
 
Index: /orxonox/trunk/src/world_entities/weapon.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapon.cc	(revision 3684)
+++ /orxonox/trunk/src/world_entities/weapon.cc	(revision 3685)
@@ -154,5 +154,7 @@
 */
 void Weapon::setWeaponIdleTime(float time)
-{}
+{
+  this->idleTime = time;
+}
 
 /**
@@ -164,5 +166,7 @@
 */
 float Weapon::getWeaponIdleTime(void)
-{}
+{
+  return this->idleTime;
+}
 
 /**
@@ -174,5 +178,7 @@
 */
 bool Weapon::hasWeaponIdleTimeElapsed(void)
-{}
+{
+  return (this->localTime>this->idleTime)?true:false;
+}
 
 
Index: /orxonox/trunk/src/world_entities/weapon.h
===================================================================
--- /orxonox/trunk/src/world_entities/weapon.h	(revision 3684)
+++ /orxonox/trunk/src/world_entities/weapon.h	(revision 3685)
@@ -71,9 +71,10 @@
  protected:
   tList<WorldEntity>* worldEntities;
+  float localTime;
+  float idleTime;
+  float slowDownFactor;
 
  private:
   bool enabled;
-  float localTime;
-  float slowDownFactor;
   Projectile* projectile;
   //WeaponSound sound;
