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

Handles Quests which have different states for different players. More...

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

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

Public Member Functions

 LocalQuest (Context *context)
 Constructor. More...
 
virtual ~LocalQuest ()
 Destructor. More...
 
virtual bool complete (PlayerInfo *player) override
 Completes the Quest. More...
 
virtual bool fail (PlayerInfo *player) override
 Fails the Quest. More...
 
virtual void XMLPort (Element &xmlelement, XMLPort::Mode mode) override
 Method for creating a LocalQuest object through XML. More...
 
- Public Member Functions inherited from orxonox::Quest
 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...
 
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...
 
- 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

virtual QuestStatus getStatus (const PlayerInfo *player) const override
 Returns the status of the Quest for a specific player. More...
 
virtual bool isCompletable (const PlayerInfo *player) const override
 Checks whether the Quest can be completed. More...
 
virtual bool isFailable (const PlayerInfo *player) const override
 Checks whether the Quest can be failed. More...
 
virtual bool isStartable (const PlayerInfo *player) const override
 Checks whether the Quest can be started. More...
 
virtual bool setStatus (PlayerInfo *player, const QuestStatus &status) override
 Sets the status for a specific player. More...
 
- Protected Member Functions inherited from orxonox::Quest
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...
 
const QuestgetSubQuest (unsigned int index) const
 Returns the sub-quest at the given index. 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 Attributes

std::map< const PlayerInfo *, QuestStatusplayerStatus_
 List of the status for each player, with the Player-pointer as key. 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

Handles Quests which have different states for different players.

LocalQuests have (as opposed to GlobalQuests) a different state for each player, that means if for one player the status of the Quest changes it does not for all the other players which also possess this quest.

Creating a LocalQuest through XML goes as follows:

<LocalQuest id="questId">
<QuestDescription title="Title" description="Description." /> //The description of the quest.
<subquests>
<Quest id ="questId1" /> //A list of n subquest, be aware, each of the <Quest /> tags must have a description and so on and so forth as well.
...
<Quest id="questIdn" />
</subquests>
<hints>
<QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those.
...
<QuestHint id="hintIdn" />
</hints>
<fail-effects>
<QuestEffect /> //A list of QuestEffects, invoked when the Quest is failed, see QuestEffect for the full XML representation.
...
<QuestEffect />
</fail-effects>
<complete-effects>
<QuestEffect /> //A list of QuestEffects, invoked when the Quest is completed, see QuestEffect for the full XML representation.
...
<QuestEffect />
</complete-effects>
Author
Damian 'Mozork' Frick

Constructor & Destructor Documentation

orxonox::LocalQuest::LocalQuest ( Context context)

Constructor.

Registers and initializes the object.

orxonox::LocalQuest::~LocalQuest ( )
virtual

Destructor.

Member Function Documentation

bool orxonox::LocalQuest::complete ( PlayerInfo player)
overridevirtual

Completes the Quest.

Completes the Quest for a given player.

Invokes all the complete QuestEffects on the player.

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

Reimplemented from orxonox::Quest.

bool orxonox::LocalQuest::fail ( PlayerInfo player)
overridevirtual

Fails the Quest.

Fails the Quest for a given player.

Invokes all the failEffects on the player.

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

Reimplemented from orxonox::Quest.

QuestStatus orxonox::LocalQuest::getStatus ( const PlayerInfo player) const
overrideprotectedvirtual

Returns the status of the Quest for a specific player.

Parameters
playerThe player.
Returns
Returns the status of the Quest for the input player.

Implements orxonox::Quest.

bool orxonox::LocalQuest::isCompletable ( const PlayerInfo player) const
overrideprotectedvirtual

Checks whether the Quest can be completed.

Parameters
playerThe player for whom is to be checked.
Returns
Returns true if the Quest can be completed, false if not.

Implements orxonox::Quest.

bool orxonox::LocalQuest::isFailable ( const PlayerInfo player) const
overrideprotectedvirtual

Checks whether the Quest can be failed.

Parameters
playerThe player for whom is to be checked.
Returns
Returns true if the Quest can be failed, false if not.

Implements orxonox::Quest.

bool orxonox::LocalQuest::isStartable ( const PlayerInfo player) const
overrideprotectedvirtual

Checks whether the Quest can be started.

Parameters
playerThe player for whom is to be checked.
Returns
Returns true if the Quest can be started, false if not.

Implements orxonox::Quest.

bool orxonox::LocalQuest::setStatus ( PlayerInfo player,
const QuestStatus status 
)
overrideprotectedvirtual

Sets the status for a specific player.

But be careful wit this one, the status will just be set without checking for its validity. You have to know what you're doing. Really!

Parameters
playerThe player the status should be set for.
statusThe status to be set.
Returns
Returns false if player is nullptr.

Implements orxonox::Quest.

void orxonox::LocalQuest::XMLPort ( Element &  xmlelement,
XMLPort::Mode  mode 
)
overridevirtual

Method for creating a LocalQuest object through XML.

Reimplemented from orxonox::Quest.

Member Data Documentation

std::map<const PlayerInfo*, QuestStatus> orxonox::LocalQuest::playerStatus_
private

List of the status for each player, with the Player-pointer as key.


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