Orxonox  0.0.5 Codename: Arcturus
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
orxonox::Quest Class Referenceabstract

Represents a Quest in the game. More...

#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/questsystem/Quest.h>

Inheritance diagram for orxonox::Quest:
orxonox::QuestItem orxonox::BaseObject orxonox::OrxonoxClass orxonox::Configurable orxonox::Destroyable orxonox::Listable orxonox::Identifiable orxonox::GlobalQuest orxonox::LocalQuest

Public Member Functions

 Quest (Context *context)
 Constructor. More...
 
virtual ~Quest ()
 Destructor. More...
 
bool addListener (QuestListener *listener)
 Adds a QuestListener to the list of QuestListeners listening to this Quest. More...
 
virtual bool complete (PlayerInfo *player)
 Completes the Quest. More...
 
virtual bool fail (PlayerInfo *player)
 Fails the Quest. More...
 
const std::list< QuestHint * > & getHintsList (void) const
 Returns the list of all QuestHints of this Quest. More...
 
QuestgetParentQuest (void) const
 Returns the parent-quest of the Quest. More...
 
const std::list< Quest * > & getSubQuestList (void) const
 Returns the list of sub-quests. More...
 
bool isActive (const orxonox::PlayerInfo *player) const
 Returns true if the quest status for the specific player is 'active'. More...
 
bool isCompleted (const orxonox::PlayerInfo *player) const
 Returns true if the quest status for the specific player is 'completed'. More...
 
bool isFailed (const orxonox::PlayerInfo *player) const
 Returns true if the quest status for the specific player is 'failed'. More...
 
bool isInactive (const PlayerInfo *player) const
 Returns true if the quest status for the specific player is 'inactive'. More...
 
bool start (PlayerInfo *player)
 Sets a Quest to active. More...
 
virtual void XMLPort (Element &xmlelement, XMLPort::Mode mode) override
 Method for creating a Quest object through XML. More...
 
- Public Member Functions inherited from orxonox::QuestItem
 QuestItem (Context *context)
 Constructor. More...
 
virtual ~QuestItem ()
 Destructor. More...
 
QuestDescriptiongetDescription (void) const
 Returns the QuestDescription of the QuestItem. More...
 
const std::string & getId (void) const
 Returns the id of this QuestItem. More...
 
bool isRegistered (void)
 Check whether the QuestItem is registered with the QuestManager. More...
 
void setRegistered (void)
 Set the QuestItem as being registered with the QuestManager. More...
 
- 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...
 
- 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...
 

Protected Member Functions

const QuestEffectgetCompleteEffect (unsigned int index) const
 Returns the complete QuestEffect at the given index. More...
 
std::list< QuestEffect * > & getCompleteEffectList (void)
 Returns the list of complete QuestEffects. More...
 
const QuestEffectgetFailEffect (unsigned int index) const
 Returns the fail QuestEffect at the given index. More...
 
std::list< QuestEffect * > & getFailEffectList (void)
 Returns the list of fail QuestEffects. More...
 
const QuestHintgetHint (unsigned int index) const
 Returns the QuestHint at the given index. More...
 
virtual QuestStatus getStatus (const PlayerInfo *player) const =0
 Returns the status of the Quest for a specific player. More...
 
const QuestgetSubQuest (unsigned int index) const
 Returns the sub-quest at the given index. More...
 
virtual bool isCompletable (const PlayerInfo *player) const =0
 Checks whether the Quest can be completed. More...
 
virtual bool isFailable (const PlayerInfo *player) const =0
 Checks whether the Quest can be failed. More...
 
virtual bool isStartable (const PlayerInfo *player) const =0
 Checks whether the Quest can be started. More...
 
virtual bool setStatus (PlayerInfo *player, const QuestStatus &status)=0
 Changes the status for a specific player. More...
 
- Protected Member Functions inherited from orxonox::QuestItem
void setDescription (QuestDescription *description)
 Sets the description of the QuestItem. More...
 
void setId (const std::string &id)
 Sets the id of the QuestItem. More...
 
- 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...
 

Private Member Functions

bool addCompleteEffect (QuestEffect *effect)
 Adds an QuestEffect to the list of complete QuestEffects. More...
 
bool addFailEffect (QuestEffect *effect)
 Adds an QuestEffect to the list of fail QuestEffects. More...
 
bool addHint (QuestHint *hint)
 Add a QuestHint to the list of QuestHints. More...
 
bool addSubQuest (Quest *quest)
 Adds a sub-quest to the Quest. More...
 
bool setParentQuest (Quest *quest)
 Sets the parent-quest of the Quest. More...
 

Private Attributes

std::list< QuestEffect * > completeEffects_
 A list of QuestEffects to be invoked, when the Quest has been completed. More...
 
std::list< QuestEffect * > failEffects_
 A list of all QuestEffects to be invoked, when the Quest has been failed. More...
 
std::list< QuestHint * > hints_
 A list of all the QuestHints tied to this Quest. More...
 
std::list< QuestListener * > listeners_
 A list of QuestListeners, that listen to what exactly happens with this Quest. More...
 
QuestparentQuest_
 Pointer to the parent-quest. More...
 
std::list< Quest * > subQuests_
 List of all the sub-quests. More...
 

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 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

Represents a Quest in the game.

A Quest is a task that the player can (or has to) fulfill upon which he will (possibly) receive some kind of reward.

A Quest can have a list of sub-quests and has a parent-quest (if it is not a root-quest). Each Quest exists only once but it has a different status (inactive, active, failed or completed) for each player. A Quest can have several hints (QuestHint) that can be unlocked through QuestEffects and then display aid in solving the Quest. A Quest can have a list of QuestEffects that are invoked when the quest is failed and also a list of QuestEffects that are invoked, when the Quest is completed.

Quest itself should not be instantiated, if you want to create a quest either use LocalQuest or GlobalQuest, whichever suits you needs better.

Author
Damian 'Mozork' Frick

Constructor & Destructor Documentation

orxonox::Quest::Quest ( Context context)

Constructor.

Registers and initializes object.

orxonox::Quest::~Quest ( )
virtual

Destructor.

Member Function Documentation

bool orxonox::Quest::addCompleteEffect ( QuestEffect effect)
private

Adds an QuestEffect to the list of complete QuestEffects.

Parameters
effectThe QuestEffect to be added.
Returns
Returns true if successful.
bool orxonox::Quest::addFailEffect ( QuestEffect effect)
private

Adds an QuestEffect to the list of fail QuestEffects.

Parameters
effectThe QuestEffect to be added.
Returns
Returns true if successful.
bool orxonox::Quest::addHint ( QuestHint hint)
private

Add a QuestHint to the list of QuestHints.

Adds a QuestHint to the list of QuestHints.

Parameters
hintThe QuestHint that should be added to the list of QuestHints.
Returns
Returns true if the hint was successfully added.
bool orxonox::Quest::addListener ( QuestListener listener)

Adds a QuestListener to the list of QuestListeners listening to this Quest.

Parameters
listenerThe QuestListener to be added.
Returns
Returns true if successful, false if not.
bool orxonox::Quest::addSubQuest ( Quest quest)
private

Adds a sub-quest to the Quest.

Parameters
questA pointer to the Quest to be set as sub-quest.
Returns
Returns true if the sub-quest could be set.
bool orxonox::Quest::complete ( PlayerInfo player)
virtual

Completes the Quest.

Completes the Quest for an input player.

Parameters
playerThe player.
Returns
Returns true if the Quest could be completed, false if not.

Reimplemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

bool orxonox::Quest::fail ( PlayerInfo player)
virtual

Fails the Quest.

Fails the Quest for an input player.

Parameters
playerThe player.
Returns
Returns true if the Quest could be failed, false if not.

Reimplemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

const QuestEffect * orxonox::Quest::getCompleteEffect ( unsigned int  index) const
protected

Returns the complete QuestEffect at the given index.

Parameters
indexThe index.
Returns
Returns a pointer to the complete QuestEffect at the given index. nullptr if there is no element at the given index.
std::list<QuestEffect*>& orxonox::Quest::getCompleteEffectList ( void  )
inlineprotected

Returns the list of complete QuestEffects.

Returns
Returns a reference to the list of complete QuestEffects.
const QuestEffect * orxonox::Quest::getFailEffect ( unsigned int  index) const
protected

Returns the fail QuestEffect at the given index.

Parameters
indexThe index.
Returns
Returns a pointer to the fail QuestEffect at the given index. nullptr if there is no element at the given index.
std::list<QuestEffect*>& orxonox::Quest::getFailEffectList ( void  )
inlineprotected

Returns the list of fail QuestEffects.

Returns
Returns a reference to the list of fail QuestEffects.
const QuestHint * orxonox::Quest::getHint ( unsigned int  index) const
protected

Returns the QuestHint at the given index.

Parameters
indexThe index.
Returns
Returns a pointer to the QuestHint at the given index. nullptr if there is no element at the given index.
const std::list<QuestHint*>& orxonox::Quest::getHintsList ( void  ) const
inline

Returns the list of all QuestHints of this Quest.

Returns
Returns a reference to the list of QuestHints of the Quest.
Quest* orxonox::Quest::getParentQuest ( void  ) const
inline

Returns the parent-quest of the Quest.

Returns
Returns a pointer to the parent-quest of the Quest.
virtual QuestStatus orxonox::Quest::getStatus ( const PlayerInfo player) const
protectedpure virtual

Returns the status of the Quest for a specific player.

Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

const Quest * orxonox::Quest::getSubQuest ( unsigned int  index) const
protected

Returns the sub-quest at the given index.

Parameters
indexThe index.
Returns
Returns a pointer to the sub-quest at the given index. nullptr if there is no element at the given index.
const std::list<Quest*>& orxonox::Quest::getSubQuestList ( void  ) const
inline

Returns the list of sub-quests.

Returns
Returns a reference to the list of sub-quests of the quest.
bool orxonox::Quest::isActive ( const orxonox::PlayerInfo player) const

Returns true if the quest status for the specific player is 'active'.

Parameters
playerThe player.
Returns
Returns true if the quest status for the specific player is 'active'.
virtual bool orxonox::Quest::isCompletable ( const PlayerInfo player) const
protectedpure virtual

Checks whether the Quest can be completed.

Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

bool orxonox::Quest::isCompleted ( const orxonox::PlayerInfo player) const

Returns true if the quest status for the specific player is 'completed'.

Parameters
playerThe player.
Returns
Returns true if the quest status for the specific player is 'completed'.
virtual bool orxonox::Quest::isFailable ( const PlayerInfo player) const
protectedpure virtual

Checks whether the Quest can be failed.

Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

bool orxonox::Quest::isFailed ( const orxonox::PlayerInfo player) const

Returns true if the quest status for the specific player is 'failed'.

Parameters
playerThe player.
Returns
Returns true if the quest status for the specific player is 'failed'.
bool orxonox::Quest::isInactive ( const PlayerInfo player) const

Returns true if the quest status for the specific player is 'inactive'.

Parameters
playerThe player.
Returns
Returns true if the quest status for the specific player is 'inactive'.
virtual bool orxonox::Quest::isStartable ( const PlayerInfo player) const
protectedpure virtual

Checks whether the Quest can be started.

Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

bool orxonox::Quest::setParentQuest ( Quest quest)
private

Sets the parent-quest of the Quest.

Parameters
questA pointer to the Quest to be set as parent-quest.
Returns
Returns true if the parent-quest could be set.
virtual bool orxonox::Quest::setStatus ( PlayerInfo player,
const QuestStatus status 
)
protectedpure virtual

Changes the status for a specific player.

Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

bool orxonox::Quest::start ( PlayerInfo player)

Sets a Quest to active.

Starts the Quest for an input player.

Parameters
playerThe player.
Returns
Returns true if the Quest could be started, false if not.
void orxonox::Quest::XMLPort ( Element &  xmlelement,
XMLPort::Mode  mode 
)
overridevirtual

Method for creating a Quest object through XML.

Reimplemented from orxonox::QuestItem.

Reimplemented in orxonox::GlobalQuest, and orxonox::LocalQuest.

Member Data Documentation

std::list<QuestEffect*> orxonox::Quest::completeEffects_
private

A list of QuestEffects to be invoked, when the Quest has been completed.

std::list<QuestEffect*> orxonox::Quest::failEffects_
private

A list of all QuestEffects to be invoked, when the Quest has been failed.

std::list<QuestHint*> orxonox::Quest::hints_
private

A list of all the QuestHints tied to this Quest.

std::list<QuestListener*> orxonox::Quest::listeners_
private

A list of QuestListeners, that listen to what exactly happens with this Quest.

Quest* orxonox::Quest::parentQuest_
private

Pointer to the parent-quest.

std::list<Quest*> orxonox::Quest::subQuests_
private

List of all the sub-quests.


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