Orxonox
0.0.5 Codename: Arcturus
|
Represents a Quest in the game. More...
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/questsystem/Quest.h>
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... | |
Quest * | getParentQuest (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... | |
QuestDescription * | getDescription (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... | |
BaseObject * | getCreator () const |
BaseObject * | getEventListener (unsigned int index) const |
Returns an event listener with a given index. More... | |
BaseObject * | getEventSource (unsigned int index, const std::string &state) const |
Returns an eventsource with a given index. More... | |
const XMLFile * | getFile () 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... | |
Gametype * | getGametype () const |
Level * | getLevel () 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... | |
Namespace * | getNamespace () const |
const std::string & | getOldName () const |
Returns the old name of the object. More... | |
Scene * | getScene () const |
virtual uint32_t | getSceneID () const |
const std::set< Template * > & | getTemplates () const |
Returns the set of all aplied templates. More... | |
const mbool & | isActive () const |
Returns the state of the objects activity. More... | |
bool | isInitialized () const |
Returns if the object was initialized (passed the object registration). More... | |
const mbool & | isVisible () 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 () | |
OrxonoxClass & | operator= (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... | |
Context * | getContext () 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 void * | getDerivedPointer (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... | |
Identifier * | getIdentifier () 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 QuestEffect * | getCompleteEffect (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 QuestEffect * | getFailEffect (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 QuestHint * | getHint (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 Quest * | getSubQuest (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... | |
EventState * | getEventState (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... | |
Quest * | parentQuest_ |
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... | |
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.
orxonox::Quest::Quest | ( | Context * | context | ) |
Constructor.
Registers and initializes object.
|
virtual |
Destructor.
|
private |
Adds an QuestEffect to the list of complete QuestEffects.
effect | The QuestEffect to be added. |
|
private |
Adds an QuestEffect to the list of fail QuestEffects.
effect | The QuestEffect to be added. |
|
private |
bool orxonox::Quest::addListener | ( | QuestListener * | listener | ) |
Adds a QuestListener to the list of QuestListeners listening to this Quest.
listener | The QuestListener to be added. |
|
private |
|
virtual |
Completes the Quest.
Completes the Quest for an input player.
player | The player. |
Reimplemented in orxonox::GlobalQuest, and orxonox::LocalQuest.
|
virtual |
Fails the Quest.
Fails the Quest for an input player.
player | The player. |
Reimplemented in orxonox::GlobalQuest, and orxonox::LocalQuest.
|
protected |
Returns the complete QuestEffect at the given index.
index | The index. |
|
inlineprotected |
Returns the list of complete QuestEffects.
|
protected |
Returns the fail QuestEffect at the given index.
index | The index. |
|
inlineprotected |
Returns the list of fail QuestEffects.
|
protected |
|
protectedpure virtual |
Returns the status of the Quest for a specific player.
Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.
|
protected |
Returns the sub-quest at the given index.
index | The index. |
Returns the list of sub-quests.
bool orxonox::Quest::isActive | ( | const orxonox::PlayerInfo * | player | ) | const |
Returns true if the quest status for the specific player is 'active'.
player | The player. |
|
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'.
player | The player. |
|
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'.
player | The player. |
bool orxonox::Quest::isInactive | ( | const PlayerInfo * | player | ) | const |
Returns true if the quest status for the specific player is 'inactive'.
player | The player. |
|
protectedpure virtual |
Checks whether the Quest can be started.
Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.
|
private |
|
protectedpure virtual |
Changes the status for a specific player.
Implemented in orxonox::GlobalQuest, and orxonox::LocalQuest.
bool orxonox::Quest::start | ( | PlayerInfo * | player | ) |
|
overridevirtual |
Method for creating a Quest object through XML.
Reimplemented from orxonox::QuestItem.
Reimplemented in orxonox::GlobalQuest, and orxonox::LocalQuest.
|
private |
A list of QuestEffects to be invoked, when the Quest has been completed.
|
private |
A list of all QuestEffects to be invoked, when the Quest has been failed.
|
private |
A list of all the QuestHints tied to this Quest.
|
private |
A list of QuestListeners, that listen to what exactly happens with this Quest.
|
private |
Pointer to the parent-quest.
|
private |
List of all the sub-quests.