Index: code/branches/gameimmersion/src/modules/weapons/projectiles/Projectile.cc
===================================================================
--- code/branches/gameimmersion/src/modules/weapons/projectiles/Projectile.cc	(revision 8152)
+++ code/branches/gameimmersion/src/modules/weapons/projectiles/Projectile.cc	(revision 8183)
@@ -94,4 +94,5 @@
     }
 
+//////////////////////////me edit
     bool Projectile::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
     {
@@ -103,9 +104,9 @@
             this->bDestroy_ = true;
 
-            Pawn* victim = orxonox_cast<Pawn*>(otherObject);
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject); //if otherObject isn't a Pawn, then victim is NULL
 
             if (this->owner_)
             {
-                if (victim && !victim->hasShield())
+                if (!victim || (victim && !victim->hasShield())) //same like below
                 {
                     ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
@@ -116,5 +117,5 @@
                     effect->setLifetime(2.0f);
                 }
-                if (victim && !victim->hasShield())
+                if (!victim || (victim && !victim->hasShield())) //same like above
                 {
                     ParticleSpawner* effect = new ParticleSpawner(this->owner_->getCreator());
@@ -137,8 +138,12 @@
 
             if (victim)
+            {
                 victim->hit(this->owner_, contactPoint, this->damage_);
+                victim->startReloadCountdown();
+            }
         }
         return false;
     }
+//////////////////////////////////////////////////////////////////////end edit
 
     void Projectile::setOwner(Pawn* owner)
Index: code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc	(revision 8152)
+++ code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc	(revision 8183)
@@ -68,4 +68,9 @@
         this->shieldHealth_ = 0;
         this->shieldAbsorption_ = 0.5;
+////////////////////////me
+        this->reloadRate_ = 0;
+        this->reloadWaitTime_ = 1.0f;
+        this->reloadWaitCountdown_ = 0;
+////////////////////////end me
 
         this->lastHitOriginator_ = 0;
@@ -121,4 +126,5 @@
 /////// me
         XMLPortParam(Pawn, "reloadrate", setReloadRate, getReloadRate, xmlelement, mode).defaultValues(0);
+        XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f);
 
 /////// end me
@@ -144,5 +150,14 @@
 
 ////////me
-        this->addShieldHealth(this->getReloadRate() * dt);
+        if(this->reloadWaitCountdown_ > 0)
+        {
+            this->decreaseReloadCountdownTime(dt);
+        }
+        else
+        {
+            this->addShieldHealth(this->getReloadRate() * dt);
+            this->resetReloadCountdown();
+        }
+
 	// TODO max. shield hinzufuegen
 ////////end me
@@ -185,4 +200,15 @@
     }
 
+    void Pawn::setReloadWaitTime(float reloadwaittime)
+    {
+        this->reloadWaitTime_ = reloadwaittime;
+        COUT(2) << "RELOAD WAIT TIME SET TO " << this->reloadWaitTime_ << endl;
+    }
+
+    void Pawn::decreaseReloadCountdownTime(float dt)
+    {
+        this->reloadWaitCountdown_ -= dt;
+    }
+
 
 ///////////////end me
Index: code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h	(revision 8152)
+++ code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h	(revision 8183)
@@ -64,4 +64,16 @@
             inline bool hasShield()
             { return (this->getShieldHealth() > 0); }
+
+            virtual void setReloadWaitTime(float reloadwaittime);
+            inline float getReloadWaitTime() const
+                { return this->reloadWaitTime_; }
+
+            inline void resetReloadCountdown()
+            { this->reloadWaitCountdown_ = 0; }
+
+            inline void startReloadCountdown()
+            { this->reloadWaitCountdown_ = this->getReloadWaitTime(); } //in projectile.cc einbauen!!!!!!1111!!111!
+
+            virtual void decreaseReloadCountdownTime(float dt);
 
 ///////////////////////////////// end me
@@ -166,4 +178,6 @@
 /////////////////////////// me
             float reloadRate_;
+            float reloadWaitTime_;
+            float reloadWaitCountdown_;
 
 ////////////////////////// end me
