[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