[Orxonox-commit 5496] r10159 - in code/branches/towerdefenseHS14: data/overlays src/modules/towerdefense

maxima at orxonox.net maxima at orxonox.net
Fri Dec 5 16:27:07 CET 2014


Author: maxima
Date: 2014-12-05 16:27:06 +0100 (Fri, 05 Dec 2014)
New Revision: 10159

Modified:
   code/branches/towerdefenseHS14/data/overlays/towerdefenseHUD.oxo
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.h
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.cc
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.h
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.cc
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h
   code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h
Log:
Changes of Hannes. Upgrading towers does not work yet.

Modified: code/branches/towerdefenseHS14/data/overlays/towerdefenseHUD.oxo
===================================================================
--- code/branches/towerdefenseHS14/data/overlays/towerdefenseHUD.oxo	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/data/overlays/towerdefenseHUD.oxo	2014-12-05 15:27:06 UTC (rev 10159)
@@ -36,7 +36,7 @@
      colour    = "1.0, 1.0, 1.0, 1.0"
      align     = "left"
 
-     caption = "Lives:"
+     caption = "Lifes:"
     />
     
          <TowerDefenseHUDController

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.cc	2014-12-05 15:27:06 UTC (rev 10159)
@@ -101,7 +101,7 @@
 
         this->setHUDTemplate("TowerDefenseHUD");
 
-        this->stats_ = new TowerDefensePlayerStats();
+        //this->stats_ = new TowerDefensePlayerStats();
 
         /* Temporary hack to allow the player to add towers */
         this->dedicatedAddTower_ = createConsoleCommand( "addTower", createExecutor( createFunctor(&TowerDefense::addTower, this) ) );
@@ -130,10 +130,10 @@
     	orxout() << "test0" << endl;
 
         Deathmatch::start();
-        credits = 5000;
+        /*credits = 5000;
         life = 20;
         waves = 0;
-        time=0.0;
+        time=0.0;*/
 
 // Waypoints: [1,3] [10,3] [10,11] [13,11]
         for (int i=0; i < 16 ; i++){
@@ -153,9 +153,9 @@
                 towermatrix[13][o]=true;
 
 
-        credits = 5000;
-        life = 20;
-        waves = 0;
+        this->setCredit(200);
+        this->setLifes(10);
+        this->setWaveNumber(0);
         time=0.0;
 
  	const int kInitialTowerCount = 3;
@@ -235,16 +235,16 @@
     {
         Deathmatch::end();
 
-        ChatManager::message("Match is over");
+        ChatManager::message("Match is over! Gameover!");
     }
 
     void TowerDefense::upgradeTower(int x,int y)
-    {
-    	const TowerCost upgraeCost = TDDefaultUpgradeCost;
+    {/*
+    	const TowerCost upgradeCost = TDDefaultUpgradeCost;
 
-        if (!this->hasEnoughCreditForTower(upgraeCost))
+        if (!this->hasEnoughCreditForTower(upgradeCost))
         {
-            orxout() << "not enough credit: " << (this->stats_->getCredit()) << " available, " << TDDefaultTowerCost << " needed.";
+            orxout() << "not enough credit: " << (this->getCredit()) << " available, " << upgradeCost << " needed.";
             return;
         }
 
@@ -257,17 +257,17 @@
         else
         {
         	(towermatrix [x][y])->upgradeTower();
-        }
+        }*/
     }
 
 
     void TowerDefense::addTower(int x, int y)
     {
-        const TowerCost towerCost = TDDefaultTowerCost;
+        const int towerCost = 20;
 
         if (!this->hasEnoughCreditForTower(towerCost))
         {
-            orxout() << "not enough credit: " << (this->stats_->getCredit()) << " available, " << TDDefaultTowerCost << " needed.";
+            orxout() << "not enough credit: " << (this->getCredit()) << " available, " << towerCost << " needed.";
             return;
         }
 
@@ -277,11 +277,11 @@
             return;
         }
 
-
+/*
         unsigned int width = this->center_->getWidth();
         unsigned int height = this->center_->getHeight();
+*/
 
-
         int tileScale = (int) this->center_->getTileScale();
 
         if (x > 15 || y > 15 || x < 0 || y < 0)
@@ -296,22 +296,22 @@
         
 
        //Reduce credit
-        this->stats_->buyTower(towerCost);
+        this->buyTower(towerCost);
 
-        orxout() << "Credit: " << this->stats_->getCredit() << endl;
+        towermatrix [x][y]=true;
 
+
   //    Create tower
         TowerDefenseTower* towernew = new TowerDefenseTower(this->center_->getContext());
         towernew->addTemplate("towerturret");
         towernew->setPosition(static_cast<float>((x-8) * tileScale), static_cast<float>((y-8) * tileScale), 75);
         towernew->setGame(this);
 
-        towermatrix[x][y]=true;
     }
 
-    bool TowerDefense::hasEnoughCreditForTower(TowerCost towerCost)
+    bool TowerDefense::hasEnoughCreditForTower(int towerCost)
     {
-        return ((this->stats_->getCredit()) >= towerCost);
+        return ((this->getCredit()) >= towerCost);
     }
 
     bool TowerDefense::hasEnoughCreditForUpgrade()

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefense.h	2014-12-05 15:27:06 UTC (rev 10159)
@@ -61,10 +61,18 @@
         virtual void tick(float dt);
         //virtual void playerEntered(PlayerInfo* player);
         //virtual bool playerLeft(PlayerInfo* player);
+        //Player Stats (set,get, reduce)
+        int getCredit(){	return this->credit_;	}
+        int getLifes(){		return this->lifes_;	}
+        int getWaveNumber(){	return this->waves_;	}
+        void setCredit(int credit){ credit_ = credit; }
+        void setLifes(int lifes){ lifes_ = lifes; }
+        void setWaveNumber(int wavenumber){waves_=wavenumber;	}
+        void buyTower(int cost){ credit_ -= cost;}
+        void addCredit(int credit) {	credit_+=credit;	}
+        void nextwave(){ waves_++;}
+        int reduceLifes(int NumberofLifes){	return lifes_-=NumberofLifes;	}
 
-        int credits;
-        int life;
-        int waves;
         //virtual void pawnKilled(Pawn* victim, Pawn* killer = 0);
         //virtual void playerScored(PlayerInfo* player, int score);
 
@@ -91,10 +99,12 @@
         TowerDefenseCenterpoint *center_;
         float time;
         float time2;
+        int credit_;
+        int waves_;
+        int lifes_;
 
         /* handles stats */
-        TowerDefensePlayerStats *stats_;
-        bool hasEnoughCreditForTower(TowerCost towerCost);
+        bool hasEnoughCreditForTower(int towerCost);
         bool hasEnoughCreditForUpgrade();
 
         std::vector<TowerTurret*> towers_;

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.cc	2014-12-05 15:27:06 UTC (rev 10159)
@@ -28,9 +28,13 @@
         RegisterObject(TowerDefenseEnemy);
 
         this->setCollisionType(WorldEntity::Dynamic);
+        this->td = orxonox_cast<TowerDefense*>(this->getGametype().get());
+        once_ = false;
 
     }
 
+    TowerDefenseEnemy::~TowerDefenseEnemy(){this->td->addCredit(20);}
+
     void TowerDefenseEnemy::addWaypoint(TDCoordinate* coord)
     {
     	this->Waypointsvector_.push_back(coord);
@@ -48,9 +52,17 @@
         float distance = ship.distance(*endpoint);
 
         //orxout() << "distance" << distance << endl;
-        if(distance <50){
+        if(distance < 50 && once_ == false){
+        	this->td->reduceLifes(1);
+        	once_=true;
         	orxout() << "ENEMY KILLED!!!!" << endl;
-        	this->destroy(); }
+        	this->td->buyTower(20);
+        	if (this->td->getLifes()==0)
+		{
+		    this->td->end();
+        	}
+
+        }
     }
 
 /*

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.h	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseEnemy.h	2014-12-05 15:27:06 UTC (rev 10159)
@@ -22,6 +22,7 @@
 #include "worldentities/pawns/SpaceShip.h"
 #include "util/Output.h"
 #include "controllers/ArtificialController.h"
+#include "TowerDefense.h"
 
 namespace orxonox
 {
@@ -34,7 +35,7 @@
 	public:
 
 		TowerDefenseEnemy(Context* context);
-        virtual ~TowerDefenseEnemy() {};
+        virtual ~TowerDefenseEnemy();
 
         //health gibt es unter: health_
 
@@ -46,6 +47,8 @@
 
 	private:
 
+        TowerDefense* td;
+        bool once_;
         std::vector<TDCoordinate*> Waypointsvector_;
 
 	};

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.cc	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.cc	2014-12-05 15:27:06 UTC (rev 10159)
@@ -38,6 +38,7 @@
     TowerDefenseHUDController::TowerDefenseHUDController(Context* context) : OverlayText(context)
     {
         RegisterObject(TowerDefenseHUDController);
+        this->td = 0;
     }
 
     TowerDefenseHUDController::~TowerDefenseHUDController()
@@ -48,13 +49,16 @@
     void TowerDefenseHUDController::tick(float dt)
     {
         SUPER(TowerDefenseHUDController, tick, dt);
+        const std::string& lifes = multi_cast<std::string>(this->td->getLifes());
+        const std::string& credits = multi_cast<std::string>(this->td->getCredit());
+        const std::string& waves = multi_cast<std::string>(this->td->getWaveNumber());
 
         if(showlives == true)
-          this->setCaption(multi_cast<std::string>(this->td->life));
+          this->setCaption(multi_cast<std::string>(lifes));
         else if(showcredits == true)
-          this->setCaption(multi_cast<std::string>(this->td->credits));
+          this->setCaption(multi_cast<std::string>(credits));
         else if(showwaves == true)
-          this->setCaption(multi_cast<std::string>(this->td->waves));
+          this->setCaption(multi_cast<std::string>(waves));
 
 
     }
@@ -73,8 +77,15 @@
         {
             SUPER(TowerDefenseHUDController, changedOwner);
 
-            td = orxonox_cast<TowerDefense*>(this->getOwner()->getGametype().get());
-
+            if (this->getOwner() && this->getOwner()->getGametype())
+                    {
+                        this->td = orxonox_cast<TowerDefense*>(this->getOwner()->getGametype().get());
+                    }
+                    else
+                    {
+                        this->td = 0;
+                    }
+                }
             /*if (this->getOwner() != NULL && this->getOwner()->getGametype())
             {
                 this->owner_ = orxonox_cast<TowerDefense*>(this->getOwner()->getGametype().get());
@@ -85,4 +96,3 @@
             }*/
         }
 
-}

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.h	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefenseHUDController.h	2014-12-05 15:27:06 UTC (rev 10159)
@@ -38,7 +38,7 @@
 #define _TowerDefenseHUDController_H__
 
 #include "towerdefense/TowerDefensePrereqs.h"
-
+#include "TowerDefensePlayerStats.h"
 #include "tools/interfaces/Tickable.h"
 #include "overlays/OverlayText.h"
 #include "TowerDefense.h"
@@ -72,7 +72,6 @@
 
     private:
         TowerDefense* td;
-
         bool showcredits;
         bool showlives;
         bool showwaves;

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.cc
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.cc	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.cc	2014-12-05 15:27:06 UTC (rev 10159)
@@ -24,21 +24,23 @@
  *   Co-authors:
  *      ...
  */
-
+/*
 #include "TowerDefensePlayerStats.h"
 
 namespace orxonox
 {
     const int kDefaultCredit = 200;
-
+    const int kDefaultLifes=20;
     TowerDefensePlayerStats::TowerDefensePlayerStats()
     {
         this->credit_ = kDefaultCredit;
         this->waveNumber_ = 0;
+        this->lifes_=kDefaultLifes;
     }
-    /*
+
     TowerDefensePlayerStats::~TowerDefensePlayerStats()
     {
     }
-    */
+
 }
+*/

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePlayerStats.h	2014-12-05 15:27:06 UTC (rev 10159)
@@ -67,6 +67,12 @@
         inline void didLoadNextWave()
             { waveNumber_++; }
 
+        inline int getLifes()
+        	{return lifes_;	}
+
+        inline void reduceLifes(int NumberofLifes)
+        {lifes_-=NumberofLifes; }
+
         inline void upgradeTower(int upgradecost)
         	{ credit_ -= upgradecost;}
 
@@ -76,6 +82,7 @@
         int credit_;
         int waveNumber_;
         int upgradecost;
+        int lifes_;
         //int baseHealth_;
     };
 }

Modified: code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h
===================================================================
--- code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h	2014-12-05 14:43:28 UTC (rev 10158)
+++ code/branches/towerdefenseHS14/src/modules/towerdefense/TowerDefensePrereqs.h	2014-12-05 15:27:06 UTC (rev 10159)
@@ -65,13 +65,16 @@
 namespace orxonox
 {
     class TowerDefense;
+
     class TowerDefenseTower;
+
     class TowerDefenseCenterpoint;
     class TowerDefenseHUDController;
     class TowerDefensePlayerStats;
     class TowerDefenseEnemy;
     class TDCoordinate;
     class TowerTurret;
+    class TowerDefenseTower;
 }
 
 #endif /* _TowerDefensePrereqs_H__ */




More information about the Orxonox-commit mailing list