Index: code/branches/FlappyOrx_HS17/data/levels/FlappyOrx.oxw
===================================================================
--- code/branches/FlappyOrx_HS17/data/levels/FlappyOrx.oxw	(revision 11619)
+++ code/branches/FlappyOrx_HS17/data/levels/FlappyOrx.oxw	(revision 11620)
@@ -36,6 +36,5 @@
  <Light type=directional position="11000, 11000, -7000" lookat="0, 0, 0" diffuse="1, 1, 1, 1" specular="1.0, 0.9, 0.9, 1.0" />
     <SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass=FlappyOrxShip pawndesign=spaceshipFlappyOrx />
-
-    
+  
     <FlappyOrxCenterPoint name=flappyorxcenter />
     
Index: code/branches/FlappyOrx_HS17/data/levels/templates/spaceshipFlappyOrx.oxt
===================================================================
--- code/branches/FlappyOrx_HS17/data/levels/templates/spaceshipFlappyOrx.oxt	(revision 11619)
+++ code/branches/FlappyOrx_HS17/data/levels/templates/spaceshipFlappyOrx.oxt	(revision 11620)
@@ -19,10 +19,15 @@
    angularDamping    = 0.9999999
 
-    collisiondamage = 100
-    enablecollisiondamage = true
+  collisiondamage = 100
+  enablecollisiondamage = true
 
-    
-    UpwardThrust = 200
-    Gravity = 700
+  speedBase = 100
+  speedIncrease = 2
+  tubeDistanceBase = 300
+  tubeDistanceIncrease = -3
+
+  upwardThrust = 200
+  gravity = 500
+
   >
     <engines>
@@ -32,4 +37,6 @@
     <attached>
       <Model position="0,0,0" yaw=180 pitch=90 roll=270 scale=9 mesh="FlappyOrxShip.mesh" />
+
+      <ParticleSpawner source="Orxonox/fire3" startdelay=0  position="0,0,20" visible="true"/>
     
     </attached>
Index: code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrx.cc
===================================================================
--- code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrx.cc	(revision 11619)
+++ code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrx.cc	(revision 11620)
@@ -34,4 +34,6 @@
 #include "Highscore.h"
 #include "core/CoreIncludes.h"
+
+
 #include "core/EventIncludes.h"
 #include "core/command/Executor.h"
@@ -45,6 +47,6 @@
 
 #include "FlappyOrxCenterPoint.h"
+#include "FlappyOrxAsteroid.h"
 #include "FlappyOrxShip.h"
-#include "FlappyOrxAsteroid.h"
 
 #include "core/command/ConsoleCommand.h"
@@ -63,6 +65,6 @@
         bIsDead = true;
         firstGame = true;                   //needed for the HUD
-        speed = 0;
-        spawnDistance=300;                  //distance between tubes
+
+        tubeDistance=200;                  //distance between tubes
         tubeOffsetX=500;                    //tube offset (so that we can't see them spawn)
 
@@ -81,5 +83,5 @@
 
         //Spawn a new Tube when the spawn distance is reached
-        if(this->tubes.size()==0||x-tubes.back()+tubeOffsetX>spawnDistance){
+        if(this->tubes.size()==0||x-tubes.back()+tubeOffsetX>tubeDistance){
             spawnTube();
             this->tubes.push(x+tubeOffsetX);
@@ -101,6 +103,6 @@
     void FlappyOrx::levelUp(){
         point++;
-        spawnDistance = spawnDistance-3*point;            //smaller spawn Distance
-        getPlayer()->setSpeed(this->speed+.5*point);    //increase speed
+        tubeDistance = tubeDistanceBase-tubeDistanceIncrease*point;            //smaller spawn Distance
+        getPlayer()->setSpeed(speedBase+speedIncrease*point);    //increase speed
     }
 
Index: code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrx.h
===================================================================
--- code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrx.h	(revision 11619)
+++ code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrx.h	(revision 11620)
@@ -36,4 +36,5 @@
 
 #include "flappyorx/FlappyOrxPrereqs.h"
+    
 
 #include "gametypes/Deathmatch.h"
@@ -95,12 +96,32 @@
             FlappyOrxShip* getPlayer();
             
+            float speedBase;
+            float speedIncrease;
+
+            int tubeDistanceBase;
+            int tubeDistanceIncrease;
+            int tubeDistance;
+            int tubeOffsetX;
+
+            int upwardThrust;
+            int gravity;
+
+            inline void setSpeedBase(int speedBase){ this-> speedBase =  speedBase;}
+            inline float  getSpeedBase(){ return speedBase;}
+            inline void setSpeedIncrease(int speedIncrease){ this-> speedIncrease =  speedIncrease;}
+            inline float  getSpeedIncrease(){ return speedIncrease;}
+
+            inline void setTubeDistanceBase(int tubeDistanceBase){ this-> tubeDistanceBase =  tubeDistanceBase;}
+            inline int  getTubeDistanceBase(){ return tubeDistanceBase;}
+            inline void setTubeDistanceIncrease(int tubeDistanceIncrease){ this-> tubeDistanceIncrease =  tubeDistanceIncrease;}
+            inline int  getTubeDistanceIncrease(){ return tubeDistanceIncrease;}
+
+            
             bool bEndGame;
             bool bIsDead;
             bool firstGame;
             std::string sDeathMessage;
-            std::queue<int> tubes;
-            std::queue<MovableEntity*> asteroids;
-            int spawnDistance;
-            int tubeOffsetX;
+            std::queue<int> tubes;                  //Saves Position of Tubes
+            std::queue<MovableEntity*> asteroids;   //Stores Asteroids which build up the tubes
             float speed = 100;
             
@@ -136,5 +157,8 @@
                 "Congratulations, you get a medal, a wooden one",
                 "That was flappin bad!",
-                "Well, that was a waste of time"};
+                "Well, that was a waste of time",
+                "You suck!",
+                "Maybe try SuperOrxoBros? That game is not as hard.",
+                "Here's a tip: Try not to fly into these grey thingies."};
             std::vector<std::string> DeathMessage30 = {
                 "Getting better!",
@@ -144,5 +168,6 @@
                 "Flappin average",
                 "Getting closer to something",
-                "That wasn't crap, not bad"};
+                "That wasn't crap, not bad",
+                "Surprisingly not bad."};
             std::vector<std::string> DeathMessage50 = {
                 "Flappin great",
Index: code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxShip.cc
===================================================================
--- code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxShip.cc	(revision 11619)
+++ code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxShip.cc	(revision 11620)
@@ -33,10 +33,8 @@
 
 #include "FlappyOrxShip.h"
-
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
-#include "FlappyOrx.h"
 #include "graphics/Camera.h"
-#include "weapons/projectiles/Projectile.h"
+#include "graphics/ParticleSpawner.h"
 #include <math.h> 
 #include <ctime>
@@ -50,18 +48,25 @@
         RegisterObject(FlappyOrxShip);
 
-        this->UpwardThrust = 1;
-        this->speed = 1;
-        this->gravity = 1;
+        
         isDead = true;
         deathTime = 0;
+
+        particleLifespan = 0.1;
+        particleAge = 0;
+
+        particlespawner_ = NULL;
         
     }
 
     void FlappyOrxShip::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-        {   
-            SUPER(FlappyOrxShip, XMLPort, xmlelement, mode);
-            XMLPortParam(FlappyOrxShip, "Speed", setSpeed, getSpeed, xmlelement, mode);
-            XMLPortParam(FlappyOrxShip, "UpwardThrust", setUpwardThrust, getUpwardThrust, xmlelement, mode);
-            XMLPortParam(FlappyOrxShip, "Gravity", setGravity, getGravity, xmlelement, mode);
+    {   
+        SUPER(FlappyOrxShip, XMLPort, xmlelement, mode);
+        XMLPortParam(FlappyOrxShip,"speedBase", setSpeedBase, getSpeedBase, xmlelement,mode);
+        XMLPortParam(FlappyOrxShip,"speedIncrease", setSpeedIncrease, getSpeedIncrease, xmlelement,mode);
+        XMLPortParam(FlappyOrxShip,"tubeDistanceBase", setTubeDistanceBase, getTubeDistanceBase, xmlelement,mode);
+        XMLPortParam(FlappyOrxShip,"tubeDistanceIncrease", setTubeDistanceIncrease, getTubeDistanceIncrease, xmlelement,mode);
+
+        XMLPortParam(FlappyOrxShip,"upwardThrust", setUpwardthrust, getUpwardthrust, xmlelement,mode);
+        XMLPortParam(FlappyOrxShip,"gravity", setGravity, getGravity, xmlelement,mode);
     }
 
@@ -69,4 +74,20 @@
     {
         SUPER(FlappyOrxShip, tick, dt);
+
+
+        particleAge+=dt;
+        //the particle spawner that generates the fire from the backpack when pressed
+        if (particlespawner_ == NULL) {
+            for (WorldEntity* object : this->getAttachedObjects())
+            {
+                if (object->isA(Class(ParticleSpawner)))
+                particlespawner_ = (ParticleSpawner*) object;
+            }
+        }
+        else if(particleAge>particleLifespan){
+            particlespawner_->setLifetime(1);
+        }
+
+
         //Execute movement
         if (this->hasLocalController())
@@ -87,5 +108,5 @@
                     isFlapping = false;
                     if(pos.z > -150)
-                        velocity.y = -UpwardThrust;
+                        velocity.y = -upwardThrust;
                 }
 
@@ -122,4 +143,7 @@
     void FlappyOrxShip::boost(bool boost){
 
+        if(not isDead){
+            particleAge = 0;
+        }  
     
         if(isDead&&timeUntilRespawn()<=0){
Index: code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxShip.h
===================================================================
--- code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxShip.h	(revision 11619)
+++ code/branches/FlappyOrx_HS17/src/modules/flappyorx/FlappyOrxShip.h	(revision 11620)
@@ -39,4 +39,7 @@
 #include "weapons/WeaponsPrereqs.h"
 #include "worldentities/pawns/SpaceShip.h"
+#include "graphics/ParticleSpawner.h"
+#include "FlappyOrx.h"
+
 
 namespace orxonox
@@ -49,31 +52,33 @@
             virtual void tick(float dt) override;
 
-            
             // Starts or stops fireing
             virtual void boost(bool bBoost) override;
 
-            //no rotation!
-            virtual void rotateYaw(const Vector2& value) override{}; 
-            virtual void rotatePitch(const Vector2& value) override{};
             //return to main menu if game has ended.
-            //virtual void rotateRoll(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
             
-            inline void setSpeed( float speed ){   
-                orxout()<< speed<< endl;
-                this->speed = speed; }
-            inline float getSpeed( )
-                { return this->speed; }
-            inline void setGravity( float gravity )
-                { this->gravity = gravity; }
-            inline float getGravity()
-                { return this->gravity; }
-            inline void setUpwardThrust( float UpwardThrust )
-                { this->UpwardThrust = UpwardThrust; }
-            inline float getUpwardThrust()
-                { return this->UpwardThrust; }
+            inline void  setSpeedBase(int speedBase){ getGame()->setSpeedBase(speedBase);}
+            inline float getSpeedBase(){ return getGame()->getSpeedBase();}
+            inline void  setSpeedIncrease(int speedIncrease){ getGame()->setSpeedIncrease(speedIncrease);}
+            inline float getSpeedIncrease(){ return getGame()->getSpeedIncrease();}
+
+            inline void setTubeDistanceBase(int tubeDistanceBase){ getGame()->setTubeDistanceBase(tubeDistanceBase);}
+            inline int  getTubeDistanceBase(){ return getGame()->getTubeDistanceBase();}
+            inline void setTubeDistanceIncrease(int tubeDistanceIncrease){ getGame()->setTubeDistanceIncrease(tubeDistanceIncrease);}
+            inline int  getTubeDistanceIncrease(){ return getGame()->getTubeDistanceIncrease();}
+
+            inline void  setUpwardthrust( float upwardThrust ){ this->upwardThrust = upwardThrust; }
+            inline float getUpwardthrust(){ return this->upwardThrust; }
+            inline void  setGravity( float gravity ){ this->gravity = gravity; }
+            inline float getGravity(){ return this->gravity; }
+
+            inline void setSpeed( float speed ){ orxout() << "speed set: " << speed << endl; this->speed = speed; }
+            inline float getSpeed( ){ return this->speed; }
+            
    
             virtual int timeUntilRespawn();
             
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
 
         protected:
@@ -83,7 +88,9 @@
             WeakPtr<FlappyOrx> game;
             Camera* camera;
+            ParticleSpawner* particlespawner_;
             bool isFlapping;
             bool isDead;
-            float speed, UpwardThrust, gravity;
+            float speed, upwardThrust, gravity;
+            float particleAge, particleLifespan;
             long deathTime;
             struct Velocity
