[Orxonox-commit 5748] r10408 - code/branches/towerdefenseFS15/src/modules/towerdefense

erbj at orxonox.net erbj at orxonox.net
Thu Apr 30 16:07:53 CEST 2015


Author: erbj
Date: 2015-04-30 16:07:53 +0200 (Thu, 30 Apr 2015)
New Revision: 10408

Modified:
   code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.cc
   code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.h
   code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.cc
   code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.h
   code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseTower.cc
Log:
added functionality to the TowerDefenseSelecter

Modified: code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.cc	2015-04-27 21:08:26 UTC (rev 10407)
+++ code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.cc	2015-04-30 14:07:53 UTC (rev 10408)
@@ -107,6 +107,7 @@
             }
         }*/
 
+        //Timer for the waves (10 seconds between the waves)
         selecter = NULL;
         this->player_ = NULL;        
         this->setHUDTemplate("TowerDefenseHUD");
@@ -116,8 +117,8 @@
         this->time = 0;
         this->credit_ = 0;
         this->lifes_ = 0;
+        this->timeSetTower_ = 0;
 
-        //this->stats_ = new TowerDefensePlayerStats();
 
         ModifyConsoleCommand(__CC_addTower_name).setObject(this);
         ModifyConsoleCommand(__CC_upgradeTower_name).setObject(this);
@@ -221,20 +222,20 @@
         case 1 :
             en1->addTemplate("enemytowerdefense1");
             en1->setScale(3);
-            en1->setHealth(en1->getHealth() + this->getWaveNumber()*4);
+            en1->setHealth(en1->getHealth() +50 + this->getWaveNumber()*4);
             break;
 
         case 2 :
             en1->addTemplate("enemytowerdefense2");
             en1->setScale(2);
-            en1->setHealth(en1->getHealth() + this->getWaveNumber()*4);
+            en1->setHealth(en1->getHealth() -30 + this->getWaveNumber()*4);
             //  en1->setShieldHealth(en1->getShield() = this->getWaveNumber()*2))
             break;
 
         case 3 :
             en1->addTemplate("enemytowerdefense3");
             en1->setScale(1);
-            en1->setHealth(en1->getHealth() + this->getWaveNumber()*4);
+            en1->setHealth(en1->getHealth() -10 + this->getWaveNumber()*4);
             break;
         }
 
@@ -389,16 +390,61 @@
     {
         SUPER(TowerDefense, tick, dt);
         time +=dt;
+        timeSetTower_ +=dt;
+        orxout() << dt << "time" << endl;
 
+        //Check if tower has to be set (because TowerDefenseSelecter asks for it)
+        if(timeSetTower_ >= 0.25)
+        {
+        	timeSetTower_ =0;
+			if(selecter != NULL && selecter->firePressed_)
+			{
+
+				int xcoord = selecter->selectedPos_->GetX();
+				int ycoord = selecter->selectedPos_->GetY();
+				Model* dummyModel2 = new Model(this->center_->getContext());
+
+
+
+				if(towerModelMatrix[xcoord][ycoord] == NULL)
+				{
+					addTower(xcoord,ycoord);
+				}
+				else
+				{
+					if(!((towerModelMatrix [xcoord][ycoord])->getMeshSource() == dummyModel2->getMeshSource()))
+					{
+						towerTurretMatrix[xcoord][ycoord]->upgradeTower();
+					}
+				}
+				selecter->firePressed_ = false;
+			}
+        }
+
         TDCoordinate* coord1 = new TDCoordinate(1,1);
         std::vector<TDCoordinate*> path;
         path.push_back(coord1);
-        if(time>=TowerDefenseEnemyvector.size() && TowerDefenseEnemyvector.size() < 30)
-        {
-            //adds different types of enemys depending on the WaveNumber
-            addTowerDefenseEnemy(path, this->getWaveNumber() % 3 +1 );
-        }
 
+
+        int enemytype = this->getWaveNumber() % 3 +1;
+
+        float randomnumber1 = rand()*100*5;
+        float randomnumber2 = rand()*100*1;
+        float randomnumber3 = rand()*100*1.5;
+
+        float totalnumber = randomnumber1 + randomnumber2 + randomnumber3;
+        int maxspaceships = 30;
+        int spaceships = (int)(maxspaceships* randomnumber1 / totalnumber);
+        int eggs = (int)(maxspaceships*randomnumber2 / totalnumber);
+        int ufos = (int)(maxspaceships*randomnumber3 / totalnumber);
+
+        if(time>=TowerDefenseEnemyvector.size() && TowerDefenseEnemyvector.size() < maxspaceships)
+		{
+			//adds different types of enemys depending on the WaveNumber
+			addTowerDefenseEnemy(path, enemytype);
+		}
+
+
         Vector3* endpoint = new Vector3(500, 700, 150);
         //if ships are at the end they get destroyed
         for(unsigned int i =0; i < TowerDefenseEnemyvector.size(); ++i)

Modified: code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.h	2015-04-27 21:08:26 UTC (rev 10407)
+++ code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefense.h	2015-04-30 14:07:53 UTC (rev 10408)
@@ -98,6 +98,7 @@
         TowerDefenseCenterpoint *center_;
         PlayerInfo* player_;
         float time;
+        float timeSetTower_;
 //        float time2;
         int credit_;
         int waves_;

Modified: code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.cc
===================================================================
--- code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.cc	2015-04-27 21:08:26 UTC (rev 10407)
+++ code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.cc	2015-04-30 14:07:53 UTC (rev 10408)
@@ -50,7 +50,9 @@
         moveDownPressed_ = false;
         moveLeftPressed_ = false;
         moveRightPressed_ = false;
-        setSelectedPosition(0,0);     
+        firePressed_ = false;
+        setSelectedPosition(0,0);
+        timerSetFire_=0;
     }
 
     TowerDefenseSelecter::~TowerDefenseSelecter()
@@ -67,55 +69,53 @@
     {
         SUPER(TowerDefenseSelecter, tick, dt);
 
+
         if (hasLocalController())
         {
-            int selecterPosX = selectedPos_->GetX();
-            int selecterPosY = selectedPos_->GetY();
+        	timerSetFire_ +=dt;
 
-            if (moveUpPressed_ == true)
-            {
-                selectedPos_->Set(selecterPosX, selecterPosY + 1);
-                updatePosition();
-                orxout() << "up" << endl;
-            }
-            if (moveDownPressed_ == true)
-            {
-            	selectedPos_->Set(selecterPosX, selecterPosY - 1);
-                updatePosition();
-                orxout() << "Down" << endl;
-            }
+        	if(timerSetFire_ >= 0.25)
+        	{
+        		timerSetFire_ = 0;
 
-            if (moveLeftPressed_ == true)
-            {
-                selectedPos_->Set(selecterPosX - 1, selecterPosY);
-                updatePosition();
-                orxout() << "Left" << endl;
-            }
-            if (moveRightPressed_ == true)
-            {
-            	selectedPos_->Set(selecterPosX + 1, selecterPosY);
-                updatePosition();
-                orxout() << "Right" << endl;
-            }
+        		int selecterPosX = selectedPos_->GetX();
+				int selecterPosY = selectedPos_->GetY();
 
-            /*
-            if (firePressed_ && timeSinceLastFire_ >= maxFireRate_)
-            {
-                firePressed_ = false;
-                timeSinceLastFire_ = 0.0;
-            }
-            */
-        }
+				if (moveUpPressed_ == true)
+				{
+					moveUpPressed_ = false;
+					selectedPos_->Set(selecterPosX, selecterPosY + 1);
+					updatePosition();
+				}
+				if (moveDownPressed_ == true)
+				{
+					moveDownPressed_ = false;
+					selectedPos_->Set(selecterPosX, selecterPosY - 1);
+					updatePosition();
+				}
 
-        // Reset key variables
-        moveUpPressed_ = false;
-        moveDownPressed_ = false;
-        moveLeftPressed_ = false;
-        moveRightPressed_ = false;
-        //firePressed_ = false;
-    }
+				if (moveLeftPressed_ == true)
+				{
+					moveLeftPressed_ = false;
+					selectedPos_->Set(selecterPosX - 1, selecterPosY);
+					updatePosition();
+				}
+				if (moveRightPressed_ == true)
+				{
+					moveRightPressed_ = false;
+					selectedPos_->Set(selecterPosX + 1, selecterPosY);
+					updatePosition();
+				}
 
 
+			}
+
+
+
+        }
+     }
+
+
     void TowerDefenseSelecter::moveFrontBack(const Vector2& value)
     {
         if (value.x > 0)
@@ -156,15 +156,14 @@
     {
     }
 
-    void TowerDefenseSelecter::fire(unsigned int firemode)
-    {
-    }
 
-    void TowerDefenseSelecter::fired(unsigned int firemode)
+    void TowerDefenseSelecter::boost(bool bBoost)
     {
-        //firePressed_ = true;
+        firePressed_ = true;
+        orxout() << "boost" << endl;
     }
 
+
     void TowerDefenseSelecter::updatePosition()
     {
         setPosition(selectedPos_->get3dcoordinate());

Modified: code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.h
===================================================================
--- code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.h	2015-04-27 21:08:26 UTC (rev 10407)
+++ code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseSelecter.h	2015-04-30 14:07:53 UTC (rev 10408)
@@ -47,15 +47,16 @@
             virtual void rotateYaw(const Vector2& value);
             virtual void rotatePitch(const Vector2& value);
             virtual void rotateRoll(const Vector2& value);
-            void fire(unsigned int firemode);
-            virtual void fired(unsigned int firemode);
+            virtual void boost(bool bBoost);
             virtual void setSelectedPosition(TDCoordinate* newPos);
             virtual void setSelectedPosition(int x, int y);
+            bool firePressed_;
+            TDCoordinate* selectedPos_;
 
+
         private:            
             virtual void updatePosition();
-            
-            TDCoordinate* selectedPos_;
+            float timerSetFire_;
             bool moveUpPressed_;
             bool moveDownPressed_;
             bool moveLeftPressed_;

Modified: code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseTower.cc
===================================================================
--- code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseTower.cc	2015-04-27 21:08:26 UTC (rev 10407)
+++ code/branches/towerdefenseFS15/src/modules/towerdefense/TowerDefenseTower.cc	2015-04-30 14:07:53 UTC (rev 10408)
@@ -65,10 +65,10 @@
             upgrade++;
             float reloadrate = getReloadRate();
             float reloadwaittime = getReloadWaitTime();
-            this->setDamageMultiplier((upgrade+1)*2);
+            this->setDamageMultiplier((upgrade+1)*1.5);
             this->setRotationThrust(2*this->getRotationThrust());
-            reloadrate = 0.5f*reloadrate;
-            reloadwaittime = 0.5f*reloadwaittime;
+            reloadrate = 0.7f*reloadrate;
+            reloadwaittime = 0.7f*reloadwaittime;
             setReloadRate(reloadrate);
             setReloadWaitTime(reloadwaittime);
             //this->addTemplate("towerturret1");




More information about the Orxonox-commit mailing list