Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc	(revision 12307)
@@ -68,8 +68,9 @@
         this->center_ = nullptr;
         this->ball_ = nullptr;
-        this->bat_[0] = nullptr;
         this->futureWall_ = nullptr;
-
-        //this->setHUDTemplate("pongHUD");
+        this->player_ = nullptr;
+        
+
+        this->setHUDTemplate("OrxoBloxHUD");
         //Error when specified
 
@@ -78,9 +79,6 @@
         this->starttimer_.stopTimer();
 
-        // Set the type of Bots for this particular Gametype.
-        this->botclass_ = Class(OrxoBloxBat);
-
-        this->scoreLimit_ = 10;
-        this->setConfigValues();
+        
+
     }
 
@@ -95,9 +93,4 @@
     }
 
-    void OrxoBlox::setConfigValues()
-    {
-        SetConfigValue(scoreLimit_, 10).description("The player first reaching those points wins.");
-    }
-
     /**
     @brief
@@ -112,18 +105,25 @@
         }
 
-        // Destroy both bats, if present.
-        for (size_t i = 0; i < 2; ++i)
-        {
-            if (this->bat_[0] != nullptr)
-            {
-                this->bat_[0]->destroy();
-                this->bat_[0] = nullptr;
-            }
-        }
-
-    }
-
-    /**
-    @brief
+        if (this->futureWall_)
+            {
+                this->futureWall_->destroy();
+                this->futureWall_ = nullptr;
+            }
+
+        // Destroy 6 bWalls, if present.
+        for (size_t i = 0; i < 6; ++i)
+        {
+            if (this->activeWalls_[0] != nullptr)
+            {
+                this->activeWalls_[0]->destroy();
+                this->activeWalls_[0] = nullptr;
+            }
+            
+        }
+
+    }
+
+    /**
+    @brieftt    
         Starts the OrxoBlox minigame.
     */
@@ -141,9 +141,13 @@
             // Attach the ball to the centerpoint and set the parameters as specified in the centerpoint, the ball is attached to.
             this->center_->attach(this->ball_);
-            this->ball_->setPosition(0,0,50); //Startposition
+            this->ball_->setPosition(0, 0, 50);
             this->ball_->setFieldDimension(this->center_->getFieldDimension());
             this->ball_->setSpeed(0);
             this->ball_->setAccelerationFactor(this->center_->getBallAccelerationFactor());
             this->ball_->setBatLength(this->center_->getBatLength());
+
+
+
+
 
             // If one of the bats is missing, create it. Apply the template for the bats as specified in the centerpoint.
@@ -157,15 +161,9 @@
             }
 
-            // Attach the bats to the centerpoint and set the parameters as specified in the centerpoint, the bats are attached to.
-            this->center_->attach(this->bat_[0]);
-            this->center_->attach(this->bat_[1]);
-            this->bat_[0]->setPosition(-this->center_->getFieldDimension().x / 2, 0, 0);
-            this->bat_[0]->yaw(Degree(-90));
-            this->bat_[0]->setSpeed(this->center_->getBatSpeed());
-            this->bat_[0]->setFieldHeight(this->center_->getFieldDimension().y);
-            this->bat_[0]->setLength(this->center_->getBatLength());
-
-            // Set the bats for the ball.
-            this->ball_->setBats(this->bat_);
+
+            // Create the first Wall.
+            this->createWall();
+            orxout()<< "helloo"<< endl;
+
         }
         else // If no centerpoint was specified, an error is thrown and the level is exited.
@@ -188,5 +186,4 @@
         // Reset the variable.
         this->bForceSpawn_ = temp;
-
     }
 
@@ -220,4 +217,5 @@
     }
 
+
     /**
     @brief
@@ -228,14 +226,11 @@
     void OrxoBlox::spawnPlayer(PlayerInfo* player)
     {
-        assert(player);
-
-        // If the first (left) bat has no player.
-        if (this->bat_[0]->getPlayer() == nullptr)
-        {
-            player->startControl(this->bat_[0]);
+         assert(player);
+
+        if(this->player_ == nullptr)
+        {
+            this->player_ = player;
             this->players_[player].state_ = PlayerState::Alive;
         }
-        else
-            return;
     }
 
@@ -244,64 +239,39 @@
         Is called when the player scored.
     */
-    void OrxoBlox::playerScored(PlayerInfo* player, int score)
-    {
-        Deathmatch::playerScored(player, score);
-
-        if (this->center_ != nullptr) // If there is a centerpoint.
-        {
-            // Fire an event for the player that has scored, to be able to react to it in the level, e.g. by displaying fireworks.
-            
-            if (player == this->getLeftPlayer())
-                this->center_->fireEvent(FireEventName(OrxoBloxCenterpoint, left));
-
-            // Also announce, that the player has scored.
-            if (player != nullptr)
-                this->gtinfo_->sendAnnounceMessage(player->getName() + " scored");
-        }
-
-        // If there is a ball present, reset its position, velocity and acceleration.
-        if (this->ball_ != nullptr)
-        {
-            this->ball_->setPosition(Vector3::ZERO);
-            this->ball_->setVelocity(Vector3::ZERO);
-            this->ball_->setAcceleration(Vector3::ZERO);
-            this->ball_->setSpeed(0);
-        }
-
-        // If there are bats reset them to the middle position.
-        if (this->bat_[0] != nullptr && this->bat_[1] != nullptr)
-        {
-            this->bat_[0]->setPosition(-this->center_->getFieldDimension().x / 2, 0, 0);
-            
-        }
-
-
-        // Restart the timer to start the ball.
-        this->starttimer_.startTimer();
-    }
-
-    /*void OrxoBlox::createStonewall(void){
-        this->futureWall_ = new OrxoBolxWall(this->center_->getContext());
-    }
-
-    /*void Tetris::createBrick(void)             //TODO: random rotation offset between 0 and 3 (times 90°)
-    {
-        // create new futureBrick_
-        this->futureBrick_ = new TetrisBrick(this->center_->getContext());
-
-
+    
+    //void startWall(void);
+    
+
+
+    void OrxoBlox::createWall(void){
+        this->futureWall_ = new OrxoBloxWall(this->center_->getContext());
         // Apply the stone template to the stone.
-        this->futureBrick_->addTemplate(this->center_->getBrickTemplate());
+        this->futureWall_->addTemplate(this->center_->getWallTemplate());
 
         // Attach the brick to the Centerpoint and set the position of the brick to be at the left side.
-        this->center_->attach(this->futureBrick_);
-        float xPos = (this->center_->getWidth()*1.6f + ((this->center_->getWidth() % 2)*2-1)/2.0f)*this->center_->getStoneSize();
-        float yPos = (this->center_->getHeight()-5.1f)*this->center_->getStoneSize();
-        
-        this->futureBrick_->setPosition(xPos, yPos, 0.0f);
-        this->futureBrick_->setGame(this);
-    }
-
-    }*/
+        this->center_->attach(this->futureWall_);
+        
+        
+        this->futureWall_->setPosition(10, 10, 0.0f);
+        this->futureWall_->setGame(this);
+    }
+
+    // void OrxoBlox::createWall(void)             //TODO: random rotation offset between 0 and 3 (times 90°)
+    // {
+    //     // create new futureBrick_
+    //     this->futureWall_ = new TetrisBrick(this->center_->getContext());
+
+
+    //     // Apply the stone template to the stone.
+    //     this->futureBrick_->addTemplate(this->center_->getBrickTemplate());
+
+    //     // Attach the brick to the Centerpoint and set the position of the brick to be at the left side.
+    //     this->center_->attach(this->futureBrick_);
+    //     float xPos = (this->center_->getWidth()*1.6f + ((this->center_->getWidth() % 2)*2-1)/2.0f)*this->center_->getStoneSize();
+    //     float yPos = (this->center_->getHeight()-5.1f)*this->center_->getStoneSize();
+        
+    //     this->futureBrick_->setPosition(xPos, yPos, 0.0f);
+    //     this->futureBrick_->setGame(this);
+    // }
 
     /**
@@ -315,18 +285,5 @@
     }
 
-    /**
-    @brief
-        Get the left player.
-    @return
-        Returns a pointer to the player playing on the left. If there is no left player, nullptr is returned.
-    */
-    PlayerInfo* OrxoBlox::getLeftPlayer() const
-    {
-        if (this->bat_[0] != nullptr)
-            return this->bat_[0]->getPlayer();
-        else
-            return nullptr;
-    }
-
+    
     
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.h	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.h	(revision 12307)
@@ -74,5 +74,5 @@
             virtual void spawnPlayer(PlayerInfo* player) override; //!< Spawns the input player.
 
-            virtual void playerScored(PlayerInfo* player, int score = 1) override; //!< Is called when the player scored.
+            
 
             /**
@@ -82,11 +82,13 @@
             void setCenterpoint(OrxoBloxCenterpoint* center)
                 { this->center_ = center; }
-            void setConfigValues(); //!< Makes scoreLimit configurable.
 
-            PlayerInfo* getLeftPlayer() const; //!< Get the left player.
+            OrxoBloxCenterpoint* getCenterpoint(void)
+                { return this->center_; }
 
         protected:
             virtual void spawnPlayersIfRequested() override; //!< Spawns players, and fills the rest up with bots.
-
+        private:
+            void startWall(void);
+            void createWall(void);
             void startBall(); //!< Starts the ball with some default speed.
             void cleanup(); //!< Cleans up the Gametype by destroying the ball and the bats.
@@ -94,8 +96,11 @@
             WeakPtr<OrxoBloxCenterpoint> center_; //!< The playing field.
             WeakPtr<OrxoBloxBall> ball_; //!< The OrxoBlox ball.
-            WeakPtr<OrxoBloxBat> bat_[1]; //!< The two bats.
+            WeakPtr<OrxoBloxBat> bat_[0]; //!< The two bats.
+            PlayerInfo* player_;
+
             Timer starttimer_; //!< A timer to delay the start of the game.
-            int scoreLimit_; //!< If a player scored that much points, the game is ended.
+            
             WeakPtr<OrxoBloxWall> futureWall_;
+            WeakPtr<OrxoBloxWall> activeWalls_[6]; //6 is the number of wallls in the game.
     };
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.cc	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.cc	(revision 12307)
@@ -80,4 +80,6 @@
         XMLPortParam(OrxoBloxCenterpoint, "ballaccfactor", setBallAccelerationFactor, getBallAccelerationFactor, xmlelement, mode);
         XMLPortParam(OrxoBloxCenterpoint, "batspeed", setBatSpeed, getBatSpeed, xmlelement, mode);
+        XMLPortParam(OrxoBloxCenterpoint, "stoneTemplate", setStoneTemplate, getStoneTemplate, xmlelement, mode);
+        XMLPortParam(OrxoBloxCenterpoint, "WallTemplate", setWallTemplate, getWallTemplate, xmlelement, mode);
         XMLPortParam(OrxoBloxCenterpoint, "batlength", setBatLength, getBatLength, xmlelement, mode);
     }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.h	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxCenterpoint.h	(revision 12307)
@@ -217,4 +217,33 @@
                 { return this->batlength_; }
 
+            /**
+            @brief Set the template for the stones.
+            @param templateName The template name to be applied to each stone.
+            */
+            void setStoneTemplate(const std::string& templateName)
+                { this->stoneTemplate_ = templateName; }
+            /**
+            @brief Get the template for the stones.
+            @return Returns the template name to be applied to each stone.
+            */
+            const std::string& getStoneTemplate(void) const
+                { return this->stoneTemplate_; }
+            
+
+            /**
+            @brief Set the template for the bricks.
+            @param templateName The template name to be applied to each brick.
+            */
+            void setWallTemplate(const std::string& templateName)
+                { this->WallTemplate_ = templateName; }
+
+            /**
+            @brief Get the template for the bricks.
+            @return Returns the template name to be applied to each brick.
+            */
+            const std::string& getWallTemplate(void) const
+                { return this->WallTemplate_; }
+
+
         private:
             void checkGametype(); //!< Checks whether the gametype is OrxoBlox and if it is, sets its centerpoint.
@@ -222,4 +251,6 @@
             std::string balltemplate_; //!< The template for the ball.
             std::string battemplate_; //!< The template for the bats.
+            std::string WallTemplate_;
+            std::string stoneTemplate_;
 
             float ballspeed_; //!< The speed of then ball.
@@ -230,4 +261,6 @@
             float width_; //!< The height of the playing field.
             float height_; //!< The width of the playing field.
+
+            
     };
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxPrereqs.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxPrereqs.h	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxPrereqs.h	(revision 12307)
@@ -72,7 +72,7 @@
     class OrxoBloxBall;
     class OrxoBloxBat;
-    class OrxoBloxBot;
     class OrxoBloxCenterpoint;
-    class OrxoBloxScore;
+    class OrxoBloxWall;
+    class OrxobloxStones;
 }
 
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.cc	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.cc	(revision 12307)
@@ -1,3 +1,4 @@
 #include "OrxoBloxStones.h"
+
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.h	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.h	(revision 12307)
@@ -46,5 +46,7 @@
                 }
 
-
+            void setGame(OrxoBlox* orxoblox)
+                { assert(orxoblox); orxoblox_ = orxoblox; }
+                
         private:
             float size_; //!< The dimensions a stone has in the game world.
@@ -52,4 +54,5 @@
             bool delay_;
             
+            OrxoBlox* orxoblox_;
             
 
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc	(revision 12307)
@@ -16,6 +16,32 @@
         RegisterObject(OrxoBloxWall);
 
-        this->health_ = 10;
+        this->health_ = 1 + static_cast<unsigned int>(rnd(6.0f)); //<! random number between 0 and 7;
         this->delay_ = false;
+        this->orxoblox_ = this->getOrxoBlox();
+
+
+        OrxoBloxStones* stone = new OrxoBloxStones(this->getContext());
+        if(this->orxoblox_ != nullptr)
+            {
+                stone->setGame(this->orxoblox_);
+                if(this->orxoblox_->getCenterpoint() != nullptr)
+                    stone->addTemplate(this->orxoblox_->getCenterpoint()->getStoneTemplate());
+                else
+                    orxout()<< "tetris_->getCenterpoint == nullptr in TetrisBrick.cc"<< endl;
+            }
+            else
+                orxout()<< "tetris_ == nullptr in TetrisBrick.cc"<< endl;
+    }
+
+
+    OrxoBlox* OrxoBloxWall::getOrxoBlox()
+    {
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(OrxoBlox)))
+        {
+            OrxoBlox* orxobloxGametype = orxonox_cast<OrxoBlox*>(this->getGametype());
+            return orxobloxGametype;
+        }
+        else orxout()<<"There is no Gametype! ask Anna"<< endl;
+        return nullptr;
     }
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.h	(revision 12305)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.h	(revision 12307)
@@ -45,10 +45,11 @@
                 //  else ~OrxoBloxStones();
                 }
-
-
+            void setGame(OrxoBlox* orxoblox)
+                { assert(orxoblox); orxoblox_ = orxoblox; }
         private:
+            OrxoBlox* getOrxoBlox();
             unsigned int health_;
             bool delay_;
-            
+            OrxoBlox* orxoblox_;
             
 
