[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