Index: code/branches/gameimmersion/data/levels/includes/weaponSettingsAssff.oxi
===================================================================
--- code/branches/gameimmersion/data/levels/includes/weaponSettingsAssff.oxi	(revision 8576)
+++ code/branches/gameimmersion/data/levels/includes/weaponSettingsAssff.oxi	(revision 8577)
@@ -26,5 +26,5 @@
           <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
           <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />
-          <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 />
         </Weapon>
         <Weapon>
@@ -36,9 +36,9 @@
           <HsW01 mode=0 munitionpershot=0 delay=0     damage=3.14159 material="Flares/point_lensflare" muzzleoffset=" 1.6, 1.3, -2.0" />
           <HsW01 mode=0 munitionpershot=0 delay=0.125 damage=3.14159 material="Flares/point_lensflare" muzzleoffset="-0.1, 1.6, -2.0" />
-          <LightningGun mode=1 muzzleoffset="0,0,0" damage=23 />
+          <LightningGun mode=1 muzzleoffset="0,0,0" damage=3.14159 shielddamage=20 />
         </Weapon>
         <Weapon>
-          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=50 />
-          <RocketFire mode=3 muzzleoffset="0,0,0" damage=100 />
+          <SimpleRocketFire mode=2 muzzleoffset="0,0,0" damage=30 shielddamage=20 />
+          <RocketFire mode=3 muzzleoffset="0,0,0" damage=30 healthdamage=50 shielddamage=20 />
         </Weapon>
       </WeaponPack>
Index: code/branches/gameimmersion/data/levels/shieldTest.oxw
===================================================================
--- code/branches/gameimmersion/data/levels/shieldTest.oxw	(revision 8577)
+++ code/branches/gameimmersion/data/levels/shieldTest.oxw	(revision 8577)
@@ -0,0 +1,85 @@
+<LevelInfo
+ name = "Shield Testlevel"
+ description = "A simple Level with one shielded drone to shoot at"
+ tags = "test"
+/>
+
+<?lua
+  include("HUDTemplates3.oxo")
+  include("stats.oxo")
+  include("templates/spaceshipImmTest.oxt")
+  include("templates/lodInformation.oxt")
+?>
+
+<Level
+ name         = "shieldTL"
+ description  = "LEVEL-DESCRIPTION"
+>
+
+<templates>
+  <Template link=lodtemplate_default />
+</templates>
+
+<Scene
+   ambientlight = "0.8, 0.5, 0.5"
+   skybox       = "Orxonox/Starbox"
+>
+
+
+
+
+<Drone name="meineDrohne"
+    primarythrust= "80"
+    auxilarythrust= "10"
+    rotationthrust= "10"
+    mass= "50"
+    linearDamping= "0.9"
+    angularDamping= "0.7"
+
+    health= 100
+    maxhealth= 150
+    inithealth= 200
+
+    shieldhealth= 100
+    initialshieldhealth= 200
+    maxshieldhealth= 250
+
+    shieldabsorption= 1
+
+    reloadrate= "10"
+    reloadwaittime= 1
+
+>
+  <attached>
+    <Model scale="4" mesh="drone.mesh"/>
+  </attached>
+  <collisionShapes>
+    <BoxCollisionShape position="0,0,0"      halfExtents="10, 10, 10" />
+  </collisionShapes>
+</Drone>
+
+<Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
+
+
+    <?lua
+      for i = 1, 10, 1 do
+    ?>
+      <SpawnPoint position="<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipimmtest />
+    <?lua end ?>
+
+    <GlobalShader compositor="Bloom" visible=false>
+      <events>
+        <visibility>
+          <DistanceTrigger position="0,0,0" distance=30 target="Spectator" switch=true />
+        </visibility>
+      </events>
+    </GlobalShader>
+    <Model position="0,0,0" scale=8 mesh="ast1.mesh" />
+    <StaticEntity position="0,0,0" collisionType=static>
+      <collisionShapes>
+        <SphereCollisionShape radius="20" />
+      </collisionShapes>
+    </StaticEntity>
+
+  </Scene>
+</Level>
Index: code/branches/gameimmersion/data/levels/templates/spaceshipAssff.oxt
===================================================================
--- code/branches/gameimmersion/data/levels/templates/spaceshipAssff.oxt	(revision 8576)
+++ code/branches/gameimmersion/data/levels/templates/spaceshipAssff.oxt	(revision 8577)
@@ -12,7 +12,22 @@
    initialhealth     = 100
 
-   primaryThrust     = 100;
-   auxilaryThrust    = 30;
-   rotationThrust    = 25;
+   shieldhealth        = 30
+   initialshieldhealth = 30
+   maxshieldhealth     = 50
+   shieldabsorption    = 0.8
+   reloadrate          = 1
+   reloadwaittime      = 1
+
+   primaryThrust     = 100
+   auxilaryThrust    = 30
+   rotationThrust    = 25
+
+   boostPower            = 15
+   boostPowerRate        = 1
+   boostRate             = 5
+   boostCooldownDuration = 10
+
+   shakeFrequency = 15
+   shakeAmplitude = 7
 
    collisionType     = "dynamic"
Index: code/branches/gameimmersion/data/levels/test-immersion-shield-01.oxw
===================================================================
--- code/branches/gameimmersion/data/levels/test-immersion-shield-01.oxw	(revision 8576)
+++ 	(revision )
@@ -1,84 +1,0 @@
-<LevelInfo
- name = "shield-test-level"
- description = "A simple Level with one shielded drone to shoot at"
-/>
-
-<?lua
-  include("HUDTemplates3.oxo")
-  include("stats.oxo")
-  include("templates/spaceshipImmTest.oxt")
-  include("templates/lodInformation.oxt")
-?>
-
-<Level
- name         = "shieldTL"
- description  = "LEVEL-DESCRIPTION"
->
-
-<templates>
-  <Template link=lodtemplate_default />
-</templates>
-
-<Scene
-   ambientlight = "0.8, 0.5, 0.5"
-   skybox       = "Orxonox/Starbox"
->
-
-
-
-
-<Drone name="meineDrohne"
-	primarythrust=		"80"
-	auxilarythrust=		"10"
-	rotationthrust=		"10"
-	mass=			"50"
-	linearDamping=		"0.9"
-	angularDamping=		"0.7"
-
-	health=			100
-	maxhealth=		150
-	inithealth=		200
-
-	shieldhealth=		100
-	initialshieldhealth=	200
-	maxshieldhealth=	250
-
-	shieldabsorption=	1
-
-	reloadrate=		"10"
-	reloadwaittime=		1
-
->
-  <attached>
-    <Model scale="4" mesh="drone.mesh"/>
-  </attached>
-  <collisionShapes>
-    <BoxCollisionShape position="0,0,0"      halfExtents="10, 10, 10" />
-  </collisionShapes>
-</Drone>
-
-<Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
-
-
-    <?lua
-      for i = 1, 10, 1 do
-    ?>
-      <SpawnPoint position="<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipimmtest />
-    <?lua end ?>
-
-    <GlobalShader compositor="Bloom" visible=false>
-      <events>
-        <visibility>
-          <DistanceTrigger position="0,0,0" distance=30 target="Spectator" switch=true />
-        </visibility>
-      </events>
-    </GlobalShader>
-    <Model position="0,0,0" scale=8 mesh="ast1.mesh" />
-    <StaticEntity position="0,0,0" collisionType=static>
-      <collisionShapes>
-        <SphereCollisionShape radius="20" />
-      </collisionShapes>
-    </StaticEntity>
-
-  </Scene>
-</Level>
Index: code/branches/gameimmersion/src/orxonox/graphics/Camera.cc
===================================================================
--- code/branches/gameimmersion/src/orxonox/graphics/Camera.cc	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/graphics/Camera.cc	(revision 8577)
@@ -48,5 +48,4 @@
     CreateFactory(Camera);
 
-    //Camera::Camera(BaseObject* creator) : StaticEntity(creator)
     Camera::Camera(BaseObject* creator) : MovableEntity(creator)
     {
Index: code/branches/gameimmersion/src/orxonox/graphics/Camera.h
===================================================================
--- code/branches/gameimmersion/src/orxonox/graphics/Camera.h	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/graphics/Camera.h	(revision 8577)
@@ -36,10 +36,9 @@
 #include "tools/interfaces/Tickable.h"
 #include "tools/interfaces/TimeFactorListener.h"
-//#include "worldentities/StaticEntity.h"
 #include "worldentities/MovableEntity.h"
 
 namespace orxonox
 {
-    //class _OrxonoxExport Camera : public StaticEntity, public Tickable, public TimeFactorListener, public WindowEventListener
+
     class _OrxonoxExport Camera : public MovableEntity, public TimeFactorListener, public WindowEventListener
     {
Index: code/branches/gameimmersion/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/branches/gameimmersion/src/orxonox/weaponsystem/WeaponMode.cc	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/weaponsystem/WeaponMode.cc	(revision 8577)
@@ -66,8 +66,7 @@
 
         this->damage_ = 0;
-///////////////////me
         this->healthdamage_ = 0;
         this->shielddamage_ = 0;
-///////////////////end me
+
         this->muzzleOffset_ = Vector3::ZERO;
         this->muzzlePosition_ = Vector3::ZERO;
@@ -109,8 +108,6 @@
 
         XMLPortParam(WeaponMode, "damage",           setDamage,           getDamage,           xmlelement, mode);
-//////////me
         XMLPortParam(WeaponMode, "healthdamage",     setHealthDamage,     getHealthDamage,     xmlelement, mode);
         XMLPortParam(WeaponMode, "shielddamage",     setShieldDamage,     getShieldDamage,     xmlelement, mode);
-/////////end me
         XMLPortParam(WeaponMode, "muzzleoffset",     setMuzzleOffset,     getMuzzleOffset,     xmlelement, mode);
     }
Index: code/branches/gameimmersion/src/orxonox/weaponsystem/WeaponMode.h
===================================================================
--- code/branches/gameimmersion/src/orxonox/weaponsystem/WeaponMode.h	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/weaponsystem/WeaponMode.h	(revision 8577)
@@ -107,6 +107,4 @@
             inline float getDamage() const
                 { return this->damage_; }
-////////////////////me, copied to projectile.cc
-
             inline void setHealthDamage(float healthdamage)
                 { this->healthdamage_ = healthdamage; }
@@ -119,5 +117,4 @@
                 { return this->shielddamage_; }
 
-///////////////////end me
             inline void setMuzzleOffset(const Vector3& offset)
                 { this->muzzleOffset_ = offset; }
Index: code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.cc	(revision 8577)
@@ -130,6 +130,4 @@
         XMLPortParam(Pawn, "reloadrate", setReloadRate, getReloadRate, xmlelement, mode).defaultValues(0);
         XMLPortParam(Pawn, "reloadwaittime", setReloadWaitTime, getReloadWaitTime, xmlelement, mode).defaultValues(1.0f);
-
-        //TODO: DEFINES fuer defaultwerte (hier und weiter oben dieselben)
     }
 
@@ -227,38 +225,4 @@
     }
 
-    /* Old damage function.
-     * For effects causing only damage not specifically to shield or health
-     */
-    void Pawn::damage(float damage, Pawn* originator)
-    {
-        if (this->getGametype() && this->getGametype()->allowPawnDamage(this, originator))
-        {
-            //share the dealt damage to the shield and the Pawn.
-            float shielddamage = damage*this->shieldAbsorption_;
-            float healthdamage = damage*(1-this->shieldAbsorption_);
-
-            // In case the shield can not take all the shield damage.
-            if (shielddamage > this->getShieldHealth())
-            {
-                healthdamage += shielddamage-this->getShieldHealth();
-                this->setShieldHealth(0);
-            }
-
-            this->setHealth(this->health_ - healthdamage);
-
-            if (this->getShieldHealth() > 0)
-            {
-                this->setShieldHealth(this->shieldHealth_ - shielddamage);
-            }
-
-            this->lastHitOriginator_ = originator;
-
-            // play damage effect
-        }
-    }
-
-    /* Does damage to the pawn, splits it up to shield and health.
-     * Sets lastHitOriginator.
-     */
     void Pawn::damage(float damage, float healthdamage, float shielddamage, Pawn* originator)
     {
@@ -284,10 +248,8 @@
 
             this->lastHitOriginator_ = originator;
-
-            // play damage effect
-        }
-    }
-
-
+        }
+    }
+
+// TODO: Still valid?
 /* HIT-Funktionen
     Die hit-Funktionen muessen auch in src/orxonox/controllers/Controller.h angepasst werden! (Visuelle Effekte)
@@ -295,19 +257,4 @@
 */
 
-    /* Old hit function, calls the old damage function and changes velocity vector
-     */
-    void Pawn::hit(Pawn* originator, const Vector3& force, float damage)
-    {
-        if (this->getGametype() && this->getGametype()->allowPawnHit(this, originator) && (!this->getController() || !this->getController()->getGodMode()) )
-        {
-            this->damage(damage, originator);
-            this->setVelocity(this->getVelocity() + force);
-
-            // play hit effect
-        }
-    }
-
-    /* calls the damage function and adds the force that hit the pawn to the velocity vector
-     */
     void Pawn::hit(Pawn* originator, const Vector3& force, float damage, float healthdamage, float shielddamage)
     {
@@ -316,26 +263,8 @@
             this->damage(damage, healthdamage, shielddamage, originator);
             this->setVelocity(this->getVelocity() + force);
-
-            // play hit effect
-        }
-    }
-
-    /* Old hit (2) function, calls the old damage function and hits controller
-     */
-    void Pawn::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage)
-    {
-        if (this->getGametype() && this->getGametype()->allowPawnHit(this, originator) && (!this->getController() || !this->getController()->getGodMode()) )
-        {
-            this->damage(damage, originator);
-
-            if ( this->getController() )
-                this->getController()->hit(originator, contactpoint, damage);
-
-            // play hit effect
-        }
-    }
-
-    /* Hit (2) function, calls the damage function and hits controller
-     */
+        }
+    }
+
+
     void Pawn::hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage, float shielddamage)
     {
@@ -346,6 +275,4 @@
             if ( this->getController() )
                 this->getController()->hit(originator, contactpoint, damage); // changed to damage, why shielddamage?
-
-            // play hit effect
         }
     }
Index: code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/worldentities/pawns/Pawn.h	(revision 8577)
@@ -53,44 +53,4 @@
             inline bool isAlive() const
                 { return this->bAlive_; }
-
-///////////////////////////////// me
-            virtual void setReloadRate(float reloadrate);
-            inline float getReloadRate() const
-                { return this->reloadRate_; }
-
-            inline void addShieldHealth(float amount)
-            { this->setShieldHealth(this->shieldHealth_ + amount); }
-
-            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);
-
-            virtual void setMaxShieldHealth(float maxshieldhealth);
-            inline float getMaxShieldHealth() const
-                { return this->maxShieldHealth_; }
-
-            inline void setInitialShieldHealth(float initialshieldhealth)
-                { this->initialShieldHealth_ = initialshieldhealth; this->setShieldHealth(initialshieldhealth); }
-            inline float getInitialShieldHealth() const
-                { return this->initialShieldHealth_; }
-
-            inline void restoreInitialShieldHealth()
-                { this->setShieldHealth(this->initialShieldHealth_); }
-            inline void restoreMaxShieldHealth()
-                { this->setShieldHealth(this->maxShieldHealth_); }
-
-
-///////////////////////////////// end me
 
             virtual void setHealth(float health);
@@ -117,4 +77,24 @@
             { return this->shieldHealth_; }
 
+            inline void addShieldHealth(float amount)
+            { this->setShieldHealth(this->shieldHealth_ + amount); }
+
+            inline bool hasShield()
+            { return (this->getShieldHealth() > 0); }
+
+            virtual void setMaxShieldHealth(float maxshieldhealth);
+            inline float getMaxShieldHealth() const
+                { return this->maxShieldHealth_; }
+
+            inline void setInitialShieldHealth(float initialshieldhealth)
+                { this->initialShieldHealth_ = initialshieldhealth; this->setShieldHealth(initialshieldhealth); }
+            inline float getInitialShieldHealth() const
+                { return this->initialShieldHealth_; }
+
+            inline void restoreInitialShieldHealth()
+                { this->setShieldHealth(this->initialShieldHealth_); }
+            inline void restoreMaxShieldHealth()
+                { this->setShieldHealth(this->maxShieldHealth_); }
+
             inline void setShieldAbsorption(float shieldAbsorption)
             { this->shieldAbsorption_ = shieldAbsorption; }
@@ -122,13 +102,29 @@
             { return this->shieldAbsorption_; }
 
+            // TODO: Rename to shieldRechargeRate
+            virtual void setReloadRate(float reloadrate);
+            inline float getReloadRate() const
+                { return this->reloadRate_; }
+
+            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(); } // TODO: Implement in Projectile.cc
+
+            virtual void decreaseReloadCountdownTime(float dt);
+
             inline ControllableEntity* getLastHitOriginator() const
                 { return this->lastHitOriginator_; }
 
-            virtual void hit(Pawn* originator, const Vector3& force, float damage);
-            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
-/////////me
-            virtual void hit(Pawn* originator, const Vector3& force, float damage, float healthdamage, float shielddamage);
-            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage, float shielddamage);
-////////end me
+            //virtual void hit(Pawn* originator, const Vector3& force, float damage);
+            //virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
+            virtual void hit(Pawn* originator, const Vector3& force, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f);
+            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f);
+
             virtual void kill();
 
@@ -186,8 +182,6 @@
             virtual void spawneffect();
 
-            virtual void damage(float damage, Pawn* originator = 0);
-//////////me
-            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
-/////////end me
+            //virtual void damage(float damage, Pawn* originator = 0);
+            virtual void damage(float damage, float healthdamage = 0.0f, float shielddamage = 0.0f, Pawn* originator = NULL);
 
             bool bAlive_;
@@ -198,19 +192,15 @@
                 { return NULL; }
 
-/////////////////////////// me
+            float health_;
+            float maxHealth_;
+            float initialHealth_;
+            
+            float shieldHealth_;
+            float maxShieldHealth_;
+            float initialShieldHealth_;
+            float shieldAbsorption_; // Has to be between 0 and 1
             float reloadRate_;
             float reloadWaitTime_;
             float reloadWaitCountdown_;
-
-            float maxShieldHealth_;
-            float initialShieldHealth_;
-
-////////////////////////// end me
-
-            float health_;
-            float maxHealth_;
-            float initialHealth_;
-            float shieldHealth_;
-            float shieldAbsorption_; // Has to be between 0 and 1
 
             WeakPtr<Pawn> lastHitOriginator_;
Index: code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 8576)
+++ code/branches/gameimmersion/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 8577)
@@ -107,4 +107,5 @@
         XMLPortParamVariable(SpaceShip, "boostCooldownDuration", boostCooldownDuration_, xmlelement, mode);
         XMLPortParamVariable(SpaceShip, "shakeFrequency", shakeFrequency_, xmlelement, mode);
+        XMLPortParamVariable(SpaceShip, "shakeAmplitude", shakeAmplitude_, xmlelement, mode);
     }
 
@@ -114,4 +115,5 @@
         registerVariable(this->auxilaryThrust_, VariableDirection::ToClient);
         registerVariable(this->rotationThrust_, VariableDirection::ToClient);
+        // TODO: Synchronization of boost needed?
         registerVariable(this->boostPower_, VariableDirection::ToClient);
         registerVariable(this->boostPowerRate_, VariableDirection::ToClient);
@@ -119,4 +121,5 @@
         registerVariable(this->boostCooldownDuration_, VariableDirection::ToClient);
         registerVariable(this->shakeFrequency_, VariableDirection::ToClient);
+        registerVariable(this->shakeAmplitude_, VariableDirection::ToClient);
     }
 
