[Orxonox-commit 4565] r9236 - in code/branches/newlevel2012: data/levels data/levels/includes data/levels/templates src/modules/towerdefense
mentzerf at orxonox.net
mentzerf at orxonox.net
Thu May 24 10:00:07 CEST 2012
Author: mentzerf
Date: 2012-05-24 10:00:06 +0200 (Thu, 24 May 2012)
New Revision: 9236
Modified:
code/branches/newlevel2012/data/levels/includes/towerWeaponSettings.oxi
code/branches/newlevel2012/data/levels/templates/tower.oxt
code/branches/newlevel2012/data/levels/towerDefense.oxw
code/branches/newlevel2012/src/modules/towerdefense/Tower.cc
code/branches/newlevel2012/src/modules/towerdefense/Tower.h
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
code/branches/newlevel2012/src/modules/towerdefense/TowerDefensePlayerStats.h
Log:
* Changed waypoint scale so that they are not visible anymore
* Changed gun position
* Changed Tower to be a Pawn subclass
* Fixed glitches of Tower by overriding the orientation and rotation functions
+ Now spawning a few towers in -start
* Clean up
Modified: code/branches/newlevel2012/data/levels/includes/towerWeaponSettings.oxi
===================================================================
--- code/branches/newlevel2012/data/levels/includes/towerWeaponSettings.oxi 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/data/levels/includes/towerWeaponSettings.oxi 2012-05-24 08:00:06 UTC (rev 9236)
@@ -19,9 +19,9 @@
</links>
<Weapon>
<attached>
- <Model mesh="LightningGun.mesh" pitch="100" roll="90" yaw="90" position="0,-1.3,0" scale=20/>
- <Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,0" scale=20 />
- <Model mesh="hs-w01_reduced.mesh" roll="45" pitch="-76" yaw="-45" position="-1.5,1,200" scale=20 />
+ <Model mesh="LightningGun.mesh" pitch="100" roll="90" yaw="90" position="0,-1.3,200" scale=1/>
+ <Model mesh="LightningGun-s.mesh" pitch="78" roll="90" yaw="90" position="0.2,-1.3,200" scale=1 />
+ <Model mesh="hs-w01_reduced.mesh" roll="45" pitch="-76" yaw="-45" position="-1.5,1,200" scale=10 />
</attached>
<HsW01 mode=0 munitionpershot=0 delay=0.005 damage=31.4159 material="Flares/point_lensflare" muzzleoffset=" 0.1, 1.6,-2" />
<HsW01 mode=0 munitionpershot=0 delay=0 damage=314.159 material="Flares/point_lensflare" muzzleoffset="-1.6, 1.3,-2" />
Modified: code/branches/newlevel2012/data/levels/templates/tower.oxt
===================================================================
--- code/branches/newlevel2012/data/levels/templates/tower.oxt 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/data/levels/templates/tower.oxt 2012-05-24 08:00:06 UTC (rev 9236)
@@ -4,7 +4,7 @@
explosionchunks = 6
- reloadrate = 1
+ reloadrate = 3
reloadwaittime = 1
collisionType = "dynamic"
@@ -12,20 +12,17 @@
>
+ <controller>
+ <WaypointPatrolController alertnessradius=1000 team=5>
+ <waypoints>
+ <Model mesh="cube.mesh" scale=0 position=" 700, 200, 100" />
+ </waypoints>
+ </WaypointPatrolController>
+ </controller>
-
- <controller>
- <WaypointPatrolController alertnessradius=10000 team=5>
- <waypoints>
- <Model mesh="cube.mesh" scale=20 position=" 700, 200, 100" />
- </waypoints>
- </WaypointPatrolController>
- </controller>
-
-
<attached>
- <Model position="0,0,0" scale=45 mesh="Tower.mesh" />
+ <Model position="0,0,0" scale=45 mesh="Tower.mesh" />
</attached>
<!--collisionShapes>
Modified: code/branches/newlevel2012/data/levels/towerDefense.oxw
===================================================================
--- code/branches/newlevel2012/data/levels/towerDefense.oxw 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/data/levels/towerDefense.oxw 2012-05-24 08:00:06 UTC (rev 9236)
@@ -26,7 +26,7 @@
<Template name=centerpointmarkcamera defaults=0>
<Pawn>
<camerapositions>
- <CameraPosition position="0,0,2000"/>
+ <CameraPosition position="0,0,1500"/>
</camerapositions>
</Pawn>
</Template>
@@ -75,7 +75,7 @@
<!--SpawnPoint team=1 position="0,0,10" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff /-->
<!--SpawnPoint team=0 position="0,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff /-->
- <SpaceShip position="-700,-500, 100" lookat="0,0,0" scale=2 team=1 >
+ <SpaceShip position="-700,-500, 100" lookat="0,0,0" scale=3 team=1 >
<templates>
<Template link=spaceshipassff />
</templates>
@@ -83,10 +83,11 @@
<WaypointController accuracy=60>
<waypoints>
<!-- 1,3 10,3 10,11, 13,11 -->
- <Model mesh="cube.mesh" scale=20 position="-700,-500, 100" />
- <Model mesh="cube.mesh" scale=20 position=" 200,-500, 100" />
- <Model mesh="cube.mesh" scale=20 position=" 200, 300, 100" />
- <Model mesh="cube.mesh" scale=20 position=" 500, 300, 100" />
+ <Model mesh="cube.mesh" scale=0 position="-700,-500, 150" />
+ <Model mesh="cube.mesh" scale=0 position=" 200,-500, 150" />
+ <Model mesh="cube.mesh" scale=0 position=" 200, 300, 150" />
+ <Model mesh="cube.mesh" scale=0 position=" 500, 300, 150" />
+ <Model mesh="cube.mesh" scale=0 position=" 500, 700, 150" />
</waypoints>
</WaypointController>
</controller>
@@ -98,6 +99,8 @@
<attached>
<Model position="-50,-50,0" mesh="Playfield_ME.mesh" scale=80 />
+ <!-- Base -->
+ <Model position="500,700,100" mesh="sphere.mesh" scale=80 />
<!--Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" /--> <!-- Only temporary needed to help align the collisionshape -->
<!-- This was used to mark the playfield, let's let it be here for now -->
<!--Model position="-8,8,0" mesh="crate.mesh" scale3D="0.3,0.3,0.3" /-->
Modified: code/branches/newlevel2012/src/modules/towerdefense/Tower.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/Tower.cc 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/src/modules/towerdefense/Tower.cc 2012-05-24 08:00:06 UTC (rev 9236)
@@ -21,7 +21,7 @@
@brief
Constructor. Registers and initializes the object.
*/
- Tower::Tower(BaseObject* creator) : SpaceShip(creator)
+ Tower::Tower(BaseObject* creator) : Pawn(creator)
{
RegisterObject(Tower);
@@ -35,6 +35,31 @@
this->delayTimer_.setTimer(0.2f, false, createExecutor(createFunctor(&TetrisStone::enableMovement, this)));
*/
}
+
+ void Tower::setOrientation(const Quaternion& orientation)
+ {
+ static int ori;
+ orxout() << "orientation " << ++ori << endl;
+ }
+
+ void Tower::rotateYaw(const Vector2& value)
+ {
+ static int yaw;
+ orxout() << "rotateYaw " << ++yaw << endl;
+ }
+
+ void Tower::rotatePitch(const Vector2& value)
+ {
+ static int pitch;
+ orxout() << "rotatePitch " << ++pitch << endl;
+ }
+
+ void Tower::rotateRoll(const Vector2& value)
+ {
+ static int roll;
+ orxout() << "rotateRoll" << ++roll << endl;
+ }
+
// This function is called whenever a player presses the up or the down key.
// You have to implement what happens when the up or the down key is pressed.
// value.x < 0 means: down key is pressed.
@@ -54,10 +79,12 @@
@param value
A vector whose first component is the angle by which to rotate.
*/
+ /*
void Tower::moveFrontBack(const Vector2& value)
{
//orxout() << "frontBack.x: " << value.x << endl;
}
+ */
/**
@brief
@@ -65,10 +92,11 @@
@param value
A vector whose first component is the direction in which we want to steer the stone.
*/
+ /*
void Tower::moveRightLeft(const Vector2& value)
{
//orxout() << "rightLeft.x: " << value.x << endl;
- /*
+
if(!this->delay_)
{
const Vector3& position = this->getPosition();
@@ -79,7 +107,7 @@
this->setPosition(newPos);
this->delay_ = true;
this->delayTimer_.startTimer();
- }
- */
+ }
}
+ */
}
Modified: code/branches/newlevel2012/src/modules/towerdefense/Tower.h
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/Tower.h 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/src/modules/towerdefense/Tower.h 2012-05-24 08:00:06 UTC (rev 9236)
@@ -19,18 +19,28 @@
#include "towerdefense/TowerDefensePrereqs.h"
#include "worldentities/pawns/SpaceShip.h"
+
namespace orxonox
{
- class _OrxonoxExport Tower : public SpaceShip
+ class _OrxonoxExport Tower : public Pawn
{
public:
Tower(BaseObject* creator);
virtual ~Tower() {};
+ // Maybe later override these to move towers with cursor keys
+ /*
virtual void moveFrontBack(const Vector2& value);
virtual void moveRightLeft(const Vector2& value);
+ */
+ // Overriding these to stop towers from spasing out
+ void setOrientation(const Quaternion& orientation);
+ virtual void rotateYaw(const Vector2& value);
+ virtual void rotatePitch(const Vector2& value);
+ virtual void rotateRoll(const Vector2& value);
+
void setGame(TowerDefense* towerdefense)
{ assert(towerdefense); game_ = towerdefense; }
private:
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc 2012-05-24 08:00:06 UTC (rev 9236)
@@ -104,9 +104,6 @@
/* Temporary hack to allow the player to add towers */
this->dedicatedAddTower_ = createConsoleCommand( "addTower", createExecutor( createFunctor(&TowerDefense::addTower, this) ) );
-
- // Quick hack to test waypoints
- createConsoleCommand( "aw", createExecutor( createFunctor(&TowerDefense::addWaypointsAndFirstEnemy, this) ) );
}
TowerDefense::~TowerDefense()
@@ -130,21 +127,18 @@
{
Deathmatch::start();
- orxout() << "Adding towers for debug..." << endl;
+ const int kInitialTowerCount = 3;
+ Coordinate initialTowerCoordinates[kInitialTowerCount] = {{3,2}, {8,5}, {12,10}};
- // Mark corners
- addTower(0,15); addTower(15,0);
+ for (int i = 0; i < kInitialTowerCount; i++)
+ {
+ Coordinate coordinate = initialTowerCoordinates[i];
+ addTower(coordinate.x, coordinate.y);
+ }
- // Mark diagonal line
- for (int i = 0 ; i <= 15; i++)
- addTower(i,i);
-
- orxout() << "Done" << endl;
-
ChatManager::message("Use the console command addTower x y to add towers");
//TODO: let the player control his controllable entity && TODO: create a new ControllableEntity for the player
-
}
void TowerDefense::end()
@@ -197,14 +191,8 @@
Tower* newTower = new Tower(this->center_);
newTower->addTemplate(this->center_->getTowerTemplate());
- //this->center_->attach(newTower);
-
- newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 100);
+ newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 75);
newTower->setGame(this);
- //TODO: Save the Tower in a Vector. I would suggest std::vector< std::vector<Tower*> > towers_ as a protected member variable;
-
- // TODO: create Tower mesh
- // TODO: load Tower mesh
}
bool TowerDefense::hasEnoughCreditForTower(TowerCost towerCost)
@@ -228,27 +216,12 @@
void TowerDefense::tick(float dt)
{
SUPER(TowerDefense, tick, dt);
-
- static int test = 0;
- if (++test == 10)
- {
- orxout()<< "10th tick." <<endl;
- /*
- for (std::set<SpawnPoint*>::iterator it = this->spawnpoints_.begin(); it != this->spawnpoints_.end(); it++)
- {
- orxout() << "checking spawnpoint with name " << (*it)->getSpawnClass()->getName() << endl;
- }
- */
-
- //addWaypointsAndFirstEnemy();
-
- }
}
// Function to test if we can add waypoints using code only. Doesn't work yet
// THE PROBLEM: WaypointController's getControllableEntity() returns null, so it won't track. How do we get the controlableEntity to NOT BE NULL???
-
+ /*
void TowerDefense::addWaypointsAndFirstEnemy()
{
SpaceShip *newShip = new SpaceShip(this->center_);
@@ -282,7 +255,7 @@
// this->center_->attach(newShip);
}
-
+ */
/*
void TowerDefense::playerEntered(PlayerInfo* player)
{
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h 2012-05-24 08:00:06 UTC (rev 9236)
@@ -77,7 +77,6 @@
private:
-// WeakPtr<TowerDefenseCenterpoint> center_;
TowerDefenseCenterpoint *center_;
/* handles stats */
@@ -91,12 +90,8 @@
int y;
} Coordinate;
-
-
std::vector<Coordinate> addedTowersCoordinates_;
std::vector<Tower*> towers_;
-
- void addWaypointsAndFirstEnemy();
};
}
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefensePlayerStats.h
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefensePlayerStats.h 2012-05-23 18:28:40 UTC (rev 9235)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefensePlayerStats.h 2012-05-24 08:00:06 UTC (rev 9236)
@@ -42,7 +42,8 @@
namespace orxonox
{
typedef enum _TowerCosts {
- TDDefaultTowerCost = 200
+ // Set to 0 for debug...
+ TDDefaultTowerCost = 0
} TowerCost;
class _TowerDefenseExport TowerDefensePlayerStats
More information about the Orxonox-commit
mailing list