[Orxonox-commit 6000] r10659 - code/branches/hoverHS15/src/modules/hover
bucyril at orxonox.net
bucyril at orxonox.net
Mon Oct 19 14:40:08 CEST 2015
Author: bucyril
Date: 2015-10-19 14:40:08 +0200 (Mon, 19 Oct 2015)
New Revision: 10659
Added:
code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h
Modified:
code/branches/hoverHS15/src/modules/hover/Hover.cc
code/branches/hoverHS15/src/modules/hover/Hover.h
code/branches/hoverHS15/src/modules/hover/HoverShip.cc
code/branches/hoverHS15/src/modules/hover/HoverShip.h
Log:
1234
M hover/Hover.cc
M hover/Hover.h
M hover/HoverShip.cc
A hover/HoverPrereqs.h
M hover/HoverShip.h
Modified: code/branches/hoverHS15/src/modules/hover/Hover.cc
===================================================================
--- code/branches/hoverHS15/src/modules/hover/Hover.cc 2015-10-19 12:32:32 UTC (rev 10658)
+++ code/branches/hoverHS15/src/modules/hover/Hover.cc 2015-10-19 12:40:08 UTC (rev 10659)
@@ -1,3 +1,4 @@
+<<<<<<< .mine
/*
* ORXONOX - the hottest 3D action shooter ever to exist
* > www.orxonox.net <
@@ -20,6 +21,230 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
+ * Cyrill Burgener
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file Hover.cc
+ @brief Implementation of the Hover class.
+*/
+
+#include "Hover.h"
+#include "HoverShip.h"
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+ RegisterUnloadableClass(Hover);
+
+ Hover::Hover(Context* context) : Deathmatch(context)
+ {
+ RegisterObject(Hover);
+
+ bEndGame = false;
+ lives = 1;
+ level = 1;
+ point = 0;
+ bShowLevel = false;
+ multiplier = 1;
+ b_combo = false;
+ counter = 5000;
+ pattern = 1;
+ lastPosition = 0;
+ // spawn enemy every 3.5 seconds
+ //enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&Hover::spawnEnemy, this)));
+ comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&Hover::comboControll, this)));
+ this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
+ this->center_ = 0;
+
+ this->setHUDTemplate("HoverHUD");
+ }
+
+ void Hover::levelUp()
+ {
+ level++;
+ if (getPlayer() != NULL)
+ {
+ for (int i = 0; i < 7; i++)
+ {
+ BigExplosion* chunk = new BigExplosion(this->center_->getContext());
+ chunk->setPosition(Vector3(600, 0, 100.f * i - 300));
+ chunk->setVelocity(Vector3(1000, 0, 0)); //player->getVelocity()
+ chunk->setScale(20);
+ }
+ }
+ addPoints(multiplier * 42);
+ multiplier *= 2;
+ toggleShowLevel();
+ showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this)));
+ }
+
+ void Hover::tick(float dt)
+ {
+ if (getPlayer() != NULL)
+ {
+ currentPosition = getPlayer()->getWorldPosition().x;
+ counter = counter + (currentPosition - lastPosition);
+ lastPosition = currentPosition;
+ point = (int) currentPosition;
+ getPlayer()->speed = 830.0f - (point / 1000);
+
+ for(unsigned int i=0; i < cubeList.size();i++)
+ {
+ if(cubeList.at(i)->getPosition().x < currentPosition-3000)
+ {
+ cubeList.at(i)->destroy();
+ cubeList.erase(cubeList.begin()+i);
+ }
+ }
+
+ if(counter >= 3000)
+ {
+ counter = 0;
+ for(int i = 0; i<6; i++)
+ {
+ HoverCube* cube = new HoverCube(this->center_->getContext());
+ cubeList.push_back(cube);
+ switch(pattern)
+ {
+ case 1: cube->addTemplate("HoverCube01");
+ break;
+ case 2: cube->addTemplate("HoverCube02");
+ break;
+
+ }
+
+ cube->setPosition(getPlayer()->getWorldPosition() + Vector3(5000.0f, 0.0f, -3600.0f + (i*1200)));
+ //stEntity->setScale3D(50,50,50);
+ }
+
+
+ pattern %= 2;
+ pattern ++;
+
+ }
+
+ }
+ SUPER(Hover, tick, dt);
+ }
+
+ HoverShip* Hover::getPlayer()
+ {
+ if (player == NULL)
+ {
+ for (ObjectList<HoverShip>::iterator it = ObjectList<HoverShip>::begin(); it != ObjectList<HoverShip>::end(); ++it)
+ {
+ player = *it;
+ }
+ }
+ return player;
+ }
+
+ void Hover::costLife()
+ {
+ //endGameTimer.setTimer(8.0f, false, createExecutor(createFunctor(&Hover::end, this)));
+ lives = 0;
+ };
+
+ void Hover::comboControll()
+ {
+ if (b_combo)
+ multiplier++;
+ // if no combo was performed before, reset multiplier
+ else
+ multiplier = 1;
+ b_combo = false;
+ }
+
+ void Hover::start()
+ {
+ orxout() << "start" << endl;
+ for(unsigned int i=0; i< cubeList.size();i++)
+ {
+ cubeList.at(i)->destroy();
+ cubeList.erase(cubeList.begin()+i);
+
+ }
+ cubeList.clear();
+ // Set variable to temporarily force the player to spawn.
+ this->bForceSpawn_ = false;
+
+ if (this->center_ == NULL) // abandon mission!
+ {
+ orxout(internal_error) << "Hover: No Centerpoint specified." << endl;
+ GSLevel::startMainMenu();
+ return;
+ }
+ // Call start for the parent class.
+ Deathmatch::start();
+ }
+
+ void Hover::playerPreSpawn(PlayerInfo* player)
+ {
+ if(lives <= 0)
+ {
+ this->end();
+ }
+
+ // Reset all the cubes
+ /*
+ orxout() << "prespawn" << endl;
+ for(int i=0; i< cubeList.size();i++)
+ {
+ cubeList.at(i)->destroy();
+ cubeList.erase(cubeList.begin()+i);
+ }
+ cubeList.clear();
+ lives = 1;
+ point = 0;
+ lastPosition = 0;
+ */
+ }
+
+ void Hover::addPoints(int numPoints)
+ {
+ if (!bEndGame)
+ {
+ point += numPoints * multiplier;
+ b_combo = true;
+ }
+ }
+
+ void Hover::end()
+ {
+ // DON'T CALL THIS!
+ // Deathmatch::end();
+ // It will misteriously crash the game!
+ // Instead startMainMenu, this won't crash.
+ GSLevel::startMainMenu();
+ }
+}
+=======
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
* Florian Zinggeler
* Co-authors:
* ...
@@ -73,3 +298,4 @@
GSLevel::startMainMenu();
}
}
+>>>>>>> .r10658
Modified: code/branches/hoverHS15/src/modules/hover/Hover.h
===================================================================
--- code/branches/hoverHS15/src/modules/hover/Hover.h 2015-10-19 12:32:32 UTC (rev 10658)
+++ code/branches/hoverHS15/src/modules/hover/Hover.h 2015-10-19 12:40:08 UTC (rev 10659)
@@ -1,3 +1,4 @@
+<<<<<<< .mine
/*
* ORXONOX - the hottest 3D action shooter ever to exist
* > www.orxonox.net <
@@ -20,6 +21,148 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
+ * Cyrill Burgener
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file Hover.h
+ @brief Gametype.
+ @ingroup Hover
+*/
+
+#ifndef _DodgeRace_H__
+#define _DodgeRace_H__
+
+#include "hover/HoverPrereqs.h"
+
+
+#include "core/EventIncludes.h"
+#include "core/command/Executor.h"
+#include "core/config/ConfigValueIncludes.h"
+
+#include "gamestates/GSLevel.h"
+#include "chat/ChatManager.h"
+#include <vector>
+
+// ! HACK
+#include "infos/PlayerInfo.h"
+
+#include "core/command/ConsoleCommand.h"
+#include "worldentities/BigExplosion.h"
+
+#include "gametypes/Deathmatch.h"
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+
+ class _HoverExport Hover : public Deathmatch
+ {
+ public:
+ Hover(Context* context);
+
+ virtual void start();
+ virtual void end();
+
+ virtual void tick(float dt);
+
+ virtual void playerPreSpawn(PlayerInfo* player);
+
+ void levelUp();
+
+ int getLives(){return this->lives;}
+ int getLevel(){return this->level;}
+ int getPoints(){return this->point;}
+ int getMultiplier(){return this->multiplier;}
+
+ void setCenterpoint(DodgeRaceCenterPoint* center)
+ { this->center_ = center; }
+ virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+
+ // checks if multiplier should be reset.
+ void comboControll();
+ void costLife();
+
+ bool bEndGame;
+ bool bShowLevel;
+ int lives;
+ int multiplier;
+ float counter;
+ int pattern;
+ float currentPosition;
+ float lastPosition;
+
+ private:
+ Timer endGameTimer;
+
+ DodgeRaceShip* getPlayer();
+ WeakPtr<DodgeRaceShip> player;
+ std::vector<DodgeRaceCube*> cubeList;
+ void toggleShowLevel(){bShowLevel = !bShowLevel;}
+ void addPoints(int numPoints);
+
+ WeakPtr<DodgeRaceCenterPoint> center_;
+ int level;
+ int point;
+ bool b_combo;
+
+ Timer enemySpawnTimer;
+ Timer comboTimer;
+ Timer showLevelTimer;
+
+
+ /*
+
+ //void spawnEnemy();
+
+
+
+
+
+
+
+
+
+
+
+
+ private:
+
+
+
+
+ //Context* context;
+ */
+ };
+}
+
+#endif /* _DodgeRace_H__ */
+=======
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
* Florian Zinggeler
* Co-authors:
* ...
@@ -81,3 +224,4 @@
}
#endif /* _Hover_H__ */
+>>>>>>> .r10658
Added: code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h
===================================================================
--- code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h (rev 0)
+++ code/branches/hoverHS15/src/modules/hover/HoverPrereqs.h 2015-10-19 12:40:08 UTC (rev 10659)
@@ -0,0 +1,74 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Cyrill Burgener
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ at file
+ at brief
+ Shared library macros, enums, constants and forward declarations for the Hover module
+*/
+
+#ifndef _HoverPrereqs_H__
+#define _HoverPrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(HOVER_STATIC_BUILD)
+# ifdef HOVER_SHARED_BUILD
+# define _HoverExport __declspec(dllexport)
+# else
+# if defined( __MINGW32__ )
+# define _HoverExport
+# else
+# define _HoverExport __declspec(dllimport)
+# endif
+# endif
+# define _HoverPrivate
+#elif defined (ORXONOX_GCC_VISIBILITY)
+# define _HoverExport __attribute__ ((visibility("default")))
+# define _HoverPrivate __attribute__ ((visibility("hidden")))
+#else
+# define _HoverExport
+# define _HoverPrivate
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+ class Hover:
+ class HoverShip;
+}
+
+#endif /* _HoverPrereqs_H__*/
Modified: code/branches/hoverHS15/src/modules/hover/HoverShip.cc
===================================================================
--- code/branches/hoverHS15/src/modules/hover/HoverShip.cc 2015-10-19 12:32:32 UTC (rev 10658)
+++ code/branches/hoverHS15/src/modules/hover/HoverShip.cc 2015-10-19 12:40:08 UTC (rev 10659)
@@ -20,27 +20,27 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
- * Florian Zinggeler
+ * Cyrill Burgener
* Co-authors:
* ...
*
*/
/**
- @file DodgeRaceShip.cc
- @brief Implementation of the DodgeRaceShip class.
+ @file HoverShip.cc
+ @brief Implementation of the HoverShip class.
*/
-#include "DodgeRaceShip.h"
+#include "HoverShip.h"
#include "core/CoreIncludes.h"
namespace orxonox
{
- RegisterClass(DodgeRaceShip);
+ RegisterClass(HoverShip);
- DodgeRaceShip::DodgeRaceShip(Context* context) : SpaceShip(context)
+ HoverShip::HoverShip(Context* context) : SpaceShip(context)
{
- RegisterObject(DodgeRaceShip);
+ RegisterObject(HoverShip);
speed = 830;
isFireing = false;
@@ -52,7 +52,7 @@
lastTime = 0;
}
- void DodgeRaceShip::tick(float dt)
+ void HoverShip::tick(float dt)
{
Vector3 pos = getPosition();
@@ -114,34 +114,34 @@
setPosition(Vector3(0, 0, pos.z)); // pos - Vector3(30000, 0, 0)
}
- SUPER(DodgeRaceShip, tick, dt);
+ SUPER(HoverShip, tick, dt);
}
- void DodgeRaceShip::updateLevel()
+ void HoverShip::updateLevel()
{
lastTime = 0;
if (getGame())
getGame()->levelUp();
}
- void DodgeRaceShip::moveFrontBack(const Vector2& value)
+ void HoverShip::moveFrontBack(const Vector2& value)
{
//lastTimeFront = 0;
//desiredVelocity.y = value.y * speed * 42;
}
- void DodgeRaceShip::moveRightLeft(const Vector2& value)
+ void HoverShip::moveRightLeft(const Vector2& value)
{
lastTimeLeft = 0;
desiredVelocity.x = value.x * speed;
}
- void DodgeRaceShip::boost(bool bBoost)
+ void HoverShip::boost(bool bBoost)
{
//getGame()->bEndGame = bBoost;
}
- inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+ inline bool HoverShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
{
removeHealth(100);
@@ -149,11 +149,11 @@
return false;
}
- DodgeRace* DodgeRaceShip::getGame()
+ Hover* HoverShip::getGame()
{
if (game == NULL)
{
- for (ObjectList<DodgeRace>::iterator it = ObjectList<DodgeRace>::begin(); it != ObjectList<DodgeRace>::end(); ++it)
+ for (ObjectList<Hover>::iterator it = ObjectList<Hover>::begin(); it != ObjectList<Hover>::end(); ++it)
{
game = *it;
}
@@ -161,7 +161,7 @@
return game;
}
- void DodgeRaceShip::death()
+ void HoverShip::death()
{
getGame()->costLife();
SpaceShip::death();
Modified: code/branches/hoverHS15/src/modules/hover/HoverShip.h
===================================================================
--- code/branches/hoverHS15/src/modules/hover/HoverShip.h 2015-10-19 12:32:32 UTC (rev 10658)
+++ code/branches/hoverHS15/src/modules/hover/HoverShip.h 2015-10-19 12:40:08 UTC (rev 10659)
@@ -20,28 +20,28 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Author:
- * Florian Zinggeler
+ * Cyrill Burgener
* Co-authors:
* ...
*
*/
/**
- @file DodgeRaceShip.h
- @brief Declaration of the DodgeRaceShip class.
+ @file HoverShip.h
+ @brief Declaration of the HoverShip class.
*/
-#ifndef _DodgeRaceShip_H__
-#define _DodgeRaceShip_H__
+#ifndef _HoverShip_H__
+#define _HoverShip_H__
-#include "dodgerace/DodgeRacePrereqs.h"
+#include "hover/HoverPrereqs.h"
#include "core/XMLPort.h"
#include "worldentities/pawns/SpaceShip.h"
#include "graphics/Camera.h"
-#include "DodgeRace.h" // Is necessary for getGame function
+#include "Hover.h" // Is necessary for getGame function
//#include "DodgeRaceCenterPoint.h"
namespace orxonox
More information about the Orxonox-commit
mailing list