Orxonox  0.0.5 Codename: Arcturus
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
orxonox::TowerDefense Class Reference

GameType class for TowerDefense. More...

#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/towerdefense/TowerDefense.h>

Inheritance diagram for orxonox::TowerDefense:
orxonox::TeamDeathmatch orxonox::TeamGametype orxonox::Gametype orxonox::BaseObject orxonox::Tickable orxonox::GSLevelMemento orxonox::OrxonoxClass orxonox::OrxonoxInterface orxonox::OrxonoxInterface orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::Listable orxonox::Listable orxonox::Listable orxonox::Identifiable orxonox::Identifiable orxonox::Identifiable

Public Member Functions

 TowerDefense (Context *context)
 
virtual ~TowerDefense ()
 
void addCredit (int credit)
 
void addTower (int x, int y)
 
void addTowerDefenseEnemy (int templatenr)
 
void buyTower (int cost)
 
virtual void end () override
 
int getCredit ()
 
TowerDefenseFieldgetField (TDCoordinate *coord)
 
int getLifes ()
 
virtual TDCoordinategetNextStreetCoord (TDCoordinate *)
 
PlayerInfogetPlayer (void) const
 Get the player. More...
 
int getWaveNumber ()
 
void payCredit (int pay)
 
int reduceLifes (int NumberofLifes)
 
void setCenterpoint (TowerDefenseCenterpoint *centerpoint)
 
void setCredit (int credit)
 
void setLifes (int lifes)
 
void setWaveNumber (int wavenumber)
 
virtual void spawnPlayer (PlayerInfo *player) override
 
virtual void start () override
 
virtual void tick (float dt) override
 Gets called every frame. More...
 
void upgradeTower (int x, int y)
 
- Public Member Functions inherited from orxonox::TeamDeathmatch
 TeamDeathmatch (Context *context)
 
virtual ~TeamDeathmatch ()
 
virtual void pawnKilled (Pawn *victim, Pawn *killer=nullptr) override
 
virtual bool playerChangedName (PlayerInfo *player) override
 
virtual void playerEntered (PlayerInfo *player) override
 
virtual bool playerLeft (PlayerInfo *player) override
 
virtual void playerScored (PlayerInfo *player, int score=1) override
 
void setConfigValues ()
 
- Public Member Functions inherited from orxonox::TeamGametype
 TeamGametype (Context *context)
 
virtual ~TeamGametype ()
 
virtual bool allowPawnDamage (Pawn *victim, Pawn *originator=nullptr) override
 
virtual bool allowPawnDeath (Pawn *victim, Pawn *originator=nullptr) override
 
virtual bool allowPawnHit (Pawn *victim, Pawn *originator=nullptr) override
 
virtual void findAndSetTeam (PlayerInfo *player)
 Function that determines the player's team number when entering the game for the first time. More...
 
int getHumansInTeam (int team)
 
int getTeam (PlayerInfo *player)
 
const ColourValue & getTeamColour (int teamnr) const
 
int getTeamScore (PlayerInfo *player)
 
int getTeamSize (int team)
 
virtual void playerStartsControllingPawn (PlayerInfo *player, Pawn *pawn) override
 
void setConfigValues ()
 
virtual void spawnDeadPlayersIfRequested () override
 Prevents players to respawn. More...
 
- Public Member Functions inherited from orxonox::Gametype
 Gametype (Context *context)
 
virtual ~Gametype ()
 
virtual void addBots (unsigned int amount)
 
virtual void addTime (float t)
 
const GametypeInfogetGametypeInfo () const
 
const std::string & getHUDTemplate () const
 
unsigned int getNumberOfPlayers () const
 Get number of Players in game. More...
 
const std::map< PlayerInfo *, Player > & getPlayers () const
 
int getScore (PlayerInfo *player) const
 
float getStartCountdown () const
 
float getTime ()
 
bool getTimerIsActive ()
 
bool hasEnded () const
 
bool hasStarted () const
 
virtual void init ()
 Initializes sub-objects of the Gametype. More...
 
bool isStartCountdownRunning () const
 
void killBots (unsigned int amount=0)
 
virtual void pawnPostSpawn (Pawn *pawn)
 
virtual void pawnPreSpawn (Pawn *pawn)
 
virtual void playerPostSpawn (PlayerInfo *player)
 
virtual void playerPreSpawn (PlayerInfo *player)
 
virtual void playerStopsControllingPawn (PlayerInfo *player, Pawn *pawn)
 
virtual void playerSwitched (PlayerInfo *player, Gametype *newgametype)
 
virtual void playerSwitchedBack (PlayerInfo *player, Gametype *oldgametype)
 
void registerSpawnPoint (SpawnPoint *spawnpoint)
 
virtual void removeTime (float t)
 
virtual void resetTimer ()
 
virtual void resetTimer (float t)
 
void setConfigValues ()
 
void setHUDTemplate (const std::string &name)
 
void setTimeLimit (float t)
 
void showMenu ()
 
void startTimer ()
 
void stopTimer ()
 
- Public Member Functions inherited from orxonox::BaseObject
 BaseObject (Context *context)
 Constructor: Registers the object in the BaseObject-list. More...
 
virtual ~BaseObject ()
 Destructor. More...
 
void addEventListener (BaseObject *listener)
 Adds an object which listens to the events of this object. More...
 
void addEventSource (BaseObject *source, const std::string &state)
 Adds a new event source for a specific state. More...
 
void addTemplate (const std::string &name)
 Adds a Template to the object. More...
 
void addTemplate (Template *temp)
 Adds a Template to the object. More...
 
virtual void changedActivity ()
 This function gets called if the activity of the object changes. More...
 
virtual void changedMainStateName ()
 This function gets called if the main state name of the object changes. More...
 
virtual void changedName ()
 This function gets called if the name of the object changes. More...
 
virtual void changedVisibility ()
 This function gets called if the visibility of the object changes. More...
 
void fireEvent (const std::string &name="")
 Fires an event (without a state). More...
 
void fireEvent (bool activate, const std::string &name="")
 Fires an event which activates or deactivates a state. More...
 
void fireEvent (bool activate, BaseObject *originator, const std::string &name="")
 Fires an event which activates or deactivates a state with agiven originator (the object which triggered the event). More...
 
void fireEvent (Event &event)
 Fires an event, using the Event struct. More...
 
BaseObjectgetCreator () const
 
BaseObjectgetEventListener (unsigned int index) const
 Returns an event listener with a given index. More...
 
BaseObjectgetEventSource (unsigned int index, const std::string &state) const
 Returns an eventsource with a given index. More...
 
const XMLFilegetFile () const
 Returns a pointer to the XMLFile that loaded this object. More...
 
const std::string & getFilename () const
 Returns the levelfile that loaded this object. More...
 
GametypegetGametype () const
 
LevelgetLevel () const
 
const std::string & getLoaderIndentation () const
 Returns the indentation of the debug output in the Loader. More...
 
const std::string & getMainStateName () const
 Returns the name of the main state. More...
 
const std::string & getName () const
 Returns the name of the object. More...
 
NamespacegetNamespace () const
 
const std::string & getOldName () const
 Returns the old name of the object. More...
 
ScenegetScene () const
 
virtual uint32_t getSceneID () const
 
const std::set< Template * > & getTemplates () const
 Returns the set of all aplied templates. More...
 
const mboolisActive () const
 Returns the state of the objects activity. More...
 
bool isInitialized () const
 Returns if the object was initialized (passed the object registration). More...
 
const mboolisVisible () const
 Returns the state of the objects visibility. More...
 
virtual void processEvent (Event &event)
 Processing an event by calling the right main state. More...
 
void removeEventSource (BaseObject *source)
 Removes an eventsource (but doesn't unregister itself at the source). More...
 
void setActive (bool bActive)
 Sets the state of the objects activity. More...
 
void setCreator (BaseObject *creator)
 
void setFile (const XMLFile *file)
 Sets a pointer to the xml file that loaded this object. More...
 
void setGametype (const StrongOrWeakPtr< Gametype > &gametype)
 
void setLevel (const StrongOrWeakPtr< Level > &level)
 
void setLoaderIndentation (const std::string &indentation)
 Sets the indentation of the debug output in the Loader. More...
 
void setMainState (bool state)
 Sets the main state of the object to a given boolean value. More...
 
void setMainStateName (const std::string &name)
 Sets the name of the main state (used for event reactions). More...
 
void setName (const std::string &name)
 Sets the name of the object. More...
 
void setNamespace (const StrongOrWeakPtr< Namespace > &ns)
 
void setScene (const StrongOrWeakPtr< Scene > &scene, uint32_t sceneID)
 
void setVisible (bool bVisible)
 Sets the state of the objects visibility. More...
 
virtual void XMLEventPort (Element &xmlelement, XMLPort::Mode mode)
 Defines the possible event states of this object and parses eventsources from an XML file. More...
 
virtual void XMLPort (Element &xmlelement, XMLPort::Mode mode)
 XML loading and saving. More...
 
- Public Member Functions inherited from orxonox::OrxonoxClass
 OrxonoxClass ()
 
OrxonoxClassoperator= (const OrxonoxClass &)=default
 
- Public Member Functions inherited from orxonox::Configurable
 Configurable ()
 
void setConfigValues ()
 Function to collect the SetConfigValue-macro calls. More...
 
- Public Member Functions inherited from orxonox::Listable
 Listable ()
 Constructor: Allocates space in the element list. More...
 
 Listable (Context *context)
 Constructor: Allocates space in the element list and assigns the context. More...
 
virtual ~Listable ()
 Destructor: Removes the object from the object-lists. More...
 
ContextgetContext () const
 
void setContext (Context *context)
 Changes the context. More...
 
void unregisterObject ()
 Removes this object from the object-lists. More...
 
- Public Member Functions inherited from orxonox::Identifiable
 Identifiable ()
 Constructor: Sets the default values. More...
 
virtual ~Identifiable ()
 
ORX_FORCEINLINE voidgetDerivedPointer (unsigned int classID)
 Returns a valid pointer of any derived type that is registered in the class hierarchy. More...
 
template<class T >
ORX_FORCEINLINE T * getDerivedPointer (unsigned int classID)
 Version of getDerivedPointer with template. More...
 
template<class T >
ORX_FORCEINLINE const T * getDerivedPointer (unsigned int classID) const
 Const version of getDerivedPointer with template. More...
 
IdentifiergetIdentifier () const
 Returns the Identifier of the object. More...
 
bool isA (const Identifier *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
template<class B >
bool isA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isA (const Identifiable *object)
 Returns true if the object's class is of the given type or a derivative. More...
 
bool isChildOf (const Identifier *identifier)
 Returns true if the object's class is a child of the given type. More...
 
template<class B >
bool isChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a child of the given type. More...
 
bool isChildOf (const Identifiable *object)
 Returns true if the object's class is a child of the given type. More...
 
bool isDirectChildOf (const Identifier *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
template<class B >
bool isDirectChildOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectChildOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isDirectParentOf (const Identifier *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
template<class B >
bool isDirectParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a direct parent of the given type. More...
 
bool isDirectParentOf (const Identifiable *object)
 Returns true if the object's class is a direct child of the given type. More...
 
bool isExactlyA (const Identifier *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
template<class B >
bool isExactlyA (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is exactly of the given type. More...
 
bool isExactlyA (const Identifiable *object)
 Returns true if the object's class is exactly of the given type. More...
 
bool isParentOf (const Identifier *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
template<class B >
bool isParentOf (const SubclassIdentifier< B > *identifier)
 Returns true if the object's class is a parent of the given type. More...
 
bool isParentOf (const Identifiable *object)
 Returns true if the object's class is a parent of the given type. More...
 
- Public Member Functions inherited from orxonox::Destroyable
 Destroyable ()
 Constructor: Sets the default values. More...
 
virtual ~Destroyable ()
 Destructor: Notifies all DestructionListener (for example weak pointers) that this object is being deleted. More...
 
void destroy ()
 Deletes the object if no strong pointers point to this object. More...
 
void destroyLater ()
 Works like destroy() but doesn't destroy the object until the current tick has ended. More...
 
unsigned int getReferenceCount () const
 Returns the number of strong pointers that point to this object. More...
 
- Public Member Functions inherited from orxonox::OrxonoxInterface
 OrxonoxInterface ()
 
- Public Member Functions inherited from orxonox::GSLevelMemento
 GSLevelMemento ()
 

Public Attributes

TowerDefenseSelecterselecter
 

Private Member Functions

void createFields ()
 

Private Attributes

orxonox::WeakPtr< TowerDefenseCenterpointcenter_
 
int credit_
 
Vector3 endpoint_
 
std::list< orxonox::WeakPtr< TowerDefenseEnemy > > enemies_
 
TowerDefenseFieldfields_ [16][16]
 
int lifes_
 
Vector3 offset_
 
PlayerInfoplayer_
 
float timeSinceLastSpawn_
 
float timeUntilNextWave_
 
int waveNumber_
 
int waveSize_
 
std::vector< orxonox::WeakPtr< TowerDefenseField > > waypoints_
 

Additional Inherited Members

- Static Public Member Functions inherited from orxonox::BaseObject
static void loadAllEventStates (Element &xmlelement, XMLPort::Mode mode, BaseObject *object, Identifier *identifier)
 Manually loads all event states, even if the class doesn't officially support them. More...
 
- Protected Member Functions inherited from orxonox::TeamGametype
void announceTeamWin (int winnerTeam)
 
void colourPawn (Pawn *pawn, int teamNr)
 
virtual SpawnPointgetBestSpawnPoint (PlayerInfo *player) const override
 
bool pawnsAreInTheSameTeam (Pawn *pawn1, Pawn *pawn2)
 
void setDefaultObjectColour (Pawn *pawn)
 Colours a pawn depending on the team values set in XML. More...
 
void setTeamColour (PlayerInfo *player, Pawn *pawn)
 
- Protected Member Functions inherited from orxonox::Gametype
virtual void assignDefaultPawnsIfNeeded ()
 
virtual void checkStart ()
 
virtual GSLevelMementoStateexportMementoState () override
 Returns the state of this memento. More...
 
virtual void importMementoState (const std::vector< GSLevelMementoState * > &states) override
 A list of the states of all mementos. More...
 
virtual void spawnPlayerAsDefaultPawn (PlayerInfo *player)
 
virtual void spawnPlayersIfRequested ()
 
- Protected Member Functions inherited from orxonox::BaseObject
void addEventState (const std::string &name, EventState *container)
 Adds a new event-state to the object. More...
 
EventStategetEventState (const std::string &name) const
 Returns the event-state with the given name. More...
 
- Protected Member Functions inherited from orxonox::Destroyable
virtual void preDestroy ()
 This virtual function is called if destroy() is called and no StrongPtr points to this object. More...
 
- Protected Member Functions inherited from orxonox::Tickable
 Tickable ()
 Constructor: Registers the object in the Tickable-list. More...
 
- Protected Attributes inherited from orxonox::TeamDeathmatch
int maxScore_
 
- Protected Attributes inherited from orxonox::TeamGametype
std::map< PlayerInfo *, bool > allowedInGame_
 Only those players are allowed to spawn which are listed here as 'true'. More...
 
bool allowFriendlyFire_
 friendlyfire is per default switched off: friendlyFire_ = false; More...
 
unsigned int maxPlayers_
 Defines Maximum for number of players. Value 0 : no maximum! More...
 
std::vector< ColourValue > teamcolours_
 
std::map< PlayerInfo *, int > teamnumbers_
 
unsigned int teams_
 Number of teams. Value 0 : no teams! More...
 
- Protected Attributes inherited from orxonox::Gametype
bool bAutoEnd_
 
bool bAutoStart_
 
bool bForceSpawn_
 
SubclassIdentifier< Botbotclass_
 
SubclassIdentifier< ControllableEntitydefaultControllableEntity_
 
WeakPtr< GametypeInfogtinfo_
 
float initialStartCountdown_
 
unsigned int numberOfBots_
 
std::map< PlayerInfo *, Playerplayers_
 
OverlayGroupscoreboard_
 
std::string scoreboardTemplate_
 
Timer showMenuTimer_
 
std::set< SpawnPoint * > spawnpoints_
 
float time_
 
float timeLimit_
 
bool timerIsActive_
 
- Protected Attributes inherited from orxonox::BaseObject
mbool bActive_
 True = the object is active. More...
 
mbool bVisible_
 True = the object is visible. More...
 
FunctorPtr mainStateFunctor_
 
std::string mainStateName_
 
std::string name_
 The name of the object. More...
 
std::set< std::string > networkTemplateNames_
 
std::string oldName_
 The old name of the object. More...
 

Detailed Description

GameType class for TowerDefense.

See TowerDefenseReadme.txt for Information.

Constructor & Destructor Documentation

orxonox::TowerDefense::TowerDefense ( Context context)
orxonox::TowerDefense::~TowerDefense ( )
virtual

Member Function Documentation

void orxonox::TowerDefense::addCredit ( int  credit)
inline
void orxonox::TowerDefense::addTower ( int  x,
int  y 
)
void orxonox::TowerDefense::addTowerDefenseEnemy ( int  templatenr)
void orxonox::TowerDefense::buyTower ( int  cost)
inline
void orxonox::TowerDefense::createFields ( )
private
void orxonox::TowerDefense::end ( void  )
overridevirtual

Reimplemented from orxonox::TeamDeathmatch.

int orxonox::TowerDefense::getCredit ( )
inline
TowerDefenseField* orxonox::TowerDefense::getField ( TDCoordinate coord)
inline
int orxonox::TowerDefense::getLifes ( )
inline
TDCoordinate * orxonox::TowerDefense::getNextStreetCoord ( TDCoordinate thisCoord)
virtual
PlayerInfo * orxonox::TowerDefense::getPlayer ( void  ) const

Get the player.

Returns
Returns a pointer to the player. If there is no player, nullptr is returned.
int orxonox::TowerDefense::getWaveNumber ( )
inline
void orxonox::TowerDefense::payCredit ( int  pay)
inline
int orxonox::TowerDefense::reduceLifes ( int  NumberofLifes)
inline
void orxonox::TowerDefense::setCenterpoint ( TowerDefenseCenterpoint centerpoint)
void orxonox::TowerDefense::setCredit ( int  credit)
inline
void orxonox::TowerDefense::setLifes ( int  lifes)
inline
void orxonox::TowerDefense::setWaveNumber ( int  wavenumber)
inline
void orxonox::TowerDefense::spawnPlayer ( PlayerInfo player)
overridevirtual

Reimplemented from orxonox::Gametype.

void orxonox::TowerDefense::start ( void  )
overridevirtual

Reimplemented from orxonox::TeamDeathmatch.

void orxonox::TowerDefense::tick ( float  dt)
overridevirtual

Gets called every frame.

Parameters
dtThe time since the last frame in seconds

Reimplemented from orxonox::Gametype.

void orxonox::TowerDefense::upgradeTower ( int  x,
int  y 
)

Member Data Documentation

orxonox::WeakPtr<TowerDefenseCenterpoint> orxonox::TowerDefense::center_
private
int orxonox::TowerDefense::credit_
private
Vector3 orxonox::TowerDefense::endpoint_
private
std::list<orxonox::WeakPtr<TowerDefenseEnemy> > orxonox::TowerDefense::enemies_
private
TowerDefenseField* orxonox::TowerDefense::fields_[16][16]
private
int orxonox::TowerDefense::lifes_
private
Vector3 orxonox::TowerDefense::offset_
private
PlayerInfo* orxonox::TowerDefense::player_
private
TowerDefenseSelecter* orxonox::TowerDefense::selecter
float orxonox::TowerDefense::timeSinceLastSpawn_
private
float orxonox::TowerDefense::timeUntilNextWave_
private
int orxonox::TowerDefense::waveNumber_
private
int orxonox::TowerDefense::waveSize_
private
std::vector<orxonox::WeakPtr<TowerDefenseField> > orxonox::TowerDefense::waypoints_
private

The documentation for this class was generated from the following files: