Changeset 2662 for code/trunk/src/orxonox/objects/quest
- Timestamp:
- Feb 14, 2009, 10:17:35 PM (16 years ago)
- Location:
- code/trunk
- Files:
-
- 34 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/orxonox/objects/quest/AddQuest.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file AddQuest.cc 31 @brief 32 Implementation of the AddQuest class. 30 @file 31 @brief Implementation of the AddQuest class. 33 32 */ 34 33 … … 45 44 #include "Quest.h" 46 45 47 namespace orxonox {48 46 namespace orxonox 47 { 49 48 CreateFactory(AddQuest); 50 49 … … 109 108 } 110 109 111 COUT(3) << "Quest {" << this->getQuestId() << "} successfully added to player ." << std::endl;110 COUT(3) << "Quest {" << this->getQuestId() << "} successfully added to player: " << player << " ." << std::endl; 112 111 return true; 113 112 } -
code/trunk/src/orxonox/objects/quest/AddQuest.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file AddQuest.h 31 @brief 32 Definition of the AddQuest class. 30 @file 31 @brief Definition of the AddQuest class. 33 32 */ 34 33 … … 43 42 #include "ChangeQuestStatus.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief … … 58 57 { 59 58 public: 60 61 62 63 64 65 59 AddQuest(BaseObject* creator); 60 virtual ~AddQuest(); 61 62 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuest object through XML. 63 64 virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect. 66 65 67 66 }; -
code/trunk/src/orxonox/objects/quest/AddQuestHint.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file AddQuestHint.cc 31 @brief 32 Implementation of the AddQuestHint class. 30 @file 31 @brief Implementation of the AddQuestHint class. 33 32 */ 34 33 … … 44 43 #include "QuestHint.h" 45 44 46 namespace orxonox {47 45 namespace orxonox 46 { 48 47 CreateFactory(AddQuestHint); 49 48 … … 130 129 } 131 130 132 COUT(3) << "QuestHint {" << this->getHintId() << "} successfully added to player ." << std::endl;131 COUT(3) << "QuestHint {" << this->getHintId() << "} successfully added to player: " << player << " ." << std::endl; 133 132 return true; 134 133 -
code/trunk/src/orxonox/objects/quest/AddQuestHint.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file AddQuestHint.h 31 @brief 32 Definition of the AddQuestHint class. 30 @file 31 @brief Definition of the AddQuestHint class. 33 32 */ 34 33 … … 42 41 #include "QuestEffect.h" 43 42 44 namespace orxonox {45 43 namespace orxonox 44 { 46 45 /** 47 46 @brief … … 73 72 inline const std::string & getHintId(void) const 74 73 { return this->hintId_; } 74 75 75 bool setHintId(const std::string & id); //!< Sets the id of the QuestHint. 76 76 -
code/trunk/src/orxonox/objects/quest/AddReward.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file AddReward.cc 31 @brief 32 Implementation of the AddReward class. 30 @file 31 @brief Implementation of the AddReward class. 33 32 */ 34 33 … … 41 40 #include "Rewardable.h" 42 41 43 namespace orxonox {44 42 namespace orxonox 43 { 45 44 CreateFactory(AddReward); 46 45 … … 106 105 bool AddReward::invoke(PlayerInfo* player) 107 106 { 107 COUT(3) << "AddReward on player: " << player << " ." << std::endl; 108 108 109 bool check = true; 109 110 for ( std::list<Rewardable*>::iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward ) … … 111 112 check = check && (*reward)->reward(player); 112 113 } 114 115 COUT(3) << "Rewardable successfully added to player." << player << " ." << std::endl; 113 116 114 117 return check; -
code/trunk/src/orxonox/objects/quest/AddReward.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file AddReward.h 31 @brief 32 Definition of the AddReward class. 30 @file 31 @brief Definition of the AddReward class. 33 32 */ 34 33 … … 43 42 #include "QuestEffect.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief … … 78 77 inline void addRewardable(Rewardable* reward) 79 78 { this->rewards_.push_back(reward); } 79 80 80 const Rewardable* getRewardables(unsigned int index) const; //!< Returns the Rewardable object at the given index. 81 81 -
code/trunk/src/orxonox/objects/quest/CMakeLists.txt
r2261 r2662 14 14 QuestHint.cc 15 15 QuestItem.cc 16 QuestListener.cc 16 17 QuestManager.cc 17 18 Rewardable.cc -
code/trunk/src/orxonox/objects/quest/ChangeQuestStatus.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file ChangeQuestStatus.cc 31 @brief 32 Implementation of the ChangeQuestStatus class. 30 @file 31 @brief Implementation of the ChangeQuestStatus class. 33 32 */ 34 33 … … 40 39 #include "QuestItem.h" 41 40 42 namespace orxonox {43 41 namespace orxonox 42 { 44 43 /** 45 44 @brief -
code/trunk/src/orxonox/objects/quest/ChangeQuestStatus.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file ChangeQuestStatus.h 31 @brief 32 Definition of the ChangeQuestStatus class. 30 @file 31 @brief Definition of the ChangeQuestStatus class. 33 32 */ 34 33 … … 43 42 #include "QuestEffect.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief … … 63 62 protected: 64 63 /** 65 66 64 @brief Returns the id of the Quest. 65 @return Returns the id of the Quest. 67 66 */ 68 67 inline const std::string & getQuestId(void) const -
code/trunk/src/orxonox/objects/quest/CompleteQuest.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file CompleteQuest.cc 31 @brief 32 Implementation of the CompleteQuest class. 30 @file 31 @brief Implementation of the CompleteQuest class. 33 32 */ 34 33 … … 43 42 #include "Quest.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 CreateFactory(CompleteQuest); 48 47 -
code/trunk/src/orxonox/objects/quest/CompleteQuest.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file CompleteQuest.h 31 @brief 32 Definition of the CompleteQuest class. 30 @file 31 @brief Definition of the CompleteQuest class. 33 32 */ 34 33 … … 43 42 #include "ChangeQuestStatus.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief -
code/trunk/src/orxonox/objects/quest/FailQuest.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file FailQuest.cc 31 @brief 32 Implementation of the FailQuest class. 30 @file 31 @brief Implementation of the FailQuest class. 33 32 */ 34 33 … … 43 42 #include "Quest.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 CreateFactory(FailQuest); 48 47 -
code/trunk/src/orxonox/objects/quest/FailQuest.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file FailQuest.h 31 @brief 32 Definition of the FailQuest class. 30 @file 31 @brief Definition of the FailQuest class. 33 32 */ 34 33 … … 43 42 #include "ChangeQuestStatus.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief -
code/trunk/src/orxonox/objects/quest/GlobalQuest.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file GlobalQuest.cc 31 @brief 32 Implementation of the GlobalQuest class. 30 @file 31 @brief Implementation of the GlobalQuest class. 33 32 */ 34 33 … … 38 37 #include "orxonox/objects/infos/PlayerInfo.h" 39 38 #include "core/CoreIncludes.h" 39 #include "core/Super.h" 40 40 #include "util/Exception.h" 41 41 42 42 #include "QuestEffect.h" 43 43 44 namespace orxonox {45 44 namespace orxonox 45 { 46 46 CreateFactory(GlobalQuest); 47 47 … … 88 88 bool GlobalQuest::fail(PlayerInfo* player) 89 89 { 90 if( this->isFailable(player)) //!< Check whether the Quest can be failed.91 { 92 this->setStatus(player, questStatus::failed);93 94 //! Iterate through all players possessing this Quest.95 for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)96 {97 QuestEffect::invokeEffects(*it, this->getFailEffectList());98 }99 100 return true;101 }102 103 COUT(4) << "A non-completable quest was trying to be failed." << std::endl; 104 return false;90 if(!this->isFailable(player)) //!< Check whether the Quest can be failed. 91 { 92 COUT(4) << "A non-completable quest was trying to be failed." << std::endl; 93 return false; 94 } 95 96 Quest::fail(player); 97 98 //! Iterate through all players possessing this Quest. 99 for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++) 100 { 101 QuestEffect::invokeEffects(*it, this->getFailEffectList()); 102 } 103 104 return true; 105 105 } 106 106 … … 117 117 bool GlobalQuest::complete(PlayerInfo* player) 118 118 { 119 if( this->isCompletable(player)) //!< Check whether the Quest can be completed.120 { 121 this->setStatus(player, questStatus::completed);122 123 //! Iterate through all players possessing the Quest.124 for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)125 {126 QuestEffect::invokeEffects(*it, this->getCompleteEffectList());127 }128 129 QuestEffect::invokeEffects(player, this->rewards_); //!< Invoke reward QuestEffects on the player completing the Quest.130 return true;131 }132 133 COUT(4) << "A non-completable quest was trying to be completed." << std::endl;134 return false;119 if(!this->isCompletable(player)) //!< Check whether the Quest can be completed. 120 { 121 COUT(4) << "A non-completable quest was trying to be completed." << std::endl; 122 return false; 123 } 124 125 //! Iterate through all players possessing the Quest. 126 for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++) 127 { 128 QuestEffect::invokeEffects(*it, this->getCompleteEffectList()); 129 } 130 131 Quest::complete(player); 132 133 QuestEffect::invokeEffects(player, this->rewards_); //!< Invoke reward QuestEffects on the player completing the Quest. 134 return true; 135 135 } 136 136 … … 207 207 } 208 208 209 return questStatus::inactive;209 return questStatus::inactive; 210 210 } 211 211 -
code/trunk/src/orxonox/objects/quest/GlobalQuest.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file GlobalQuest.h 31 @brief 32 Definition of the GlobalQuest class. 30 @file 31 @brief Definition of the GlobalQuest class. 33 32 */ 34 33 … … 44 43 #include "Quest.h" 45 44 46 namespace orxonox {47 45 namespace orxonox 46 { 48 47 /** 49 48 @brief … … 56 55 <QuestDescription title="Title" description="Description." /> //The description of the quest. 57 56 <subquests> 58 <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.59 ...60 <Quest id="questIdn" />61 </subquests>62 <hints>63 <QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those.64 ...65 <QuestHint id="hintIdn" />66 </hints>57 <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. 58 ... 59 <Quest id="questIdn" /> 60 </subquests> 61 <hints> 62 <QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those. 63 ... 64 <QuestHint id="hintIdn" /> 65 </hints> 67 66 <fail-effects> 68 67 <QuestEffect /> //A list of QuestEffects, invoked on all players possessing this quest, when the Quest is failed, see QuestEffect for the full XML representation. -
code/trunk/src/orxonox/objects/quest/LocalQuest.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file LocalQuest.cc 31 @brief 32 Implementation of the LocalQuest class. 30 @file 31 @brief Implementation of the LocalQuest class. 33 32 */ 34 33 … … 37 36 38 37 #include "core/CoreIncludes.h" 38 #include "core/Super.h" 39 39 #include "util/Exception.h" 40 40 … … 42 42 #include "QuestEffect.h" 43 43 44 namespace orxonox {45 44 namespace orxonox 45 { 46 46 CreateFactory(LocalQuest); 47 47 … … 86 86 bool LocalQuest::fail(PlayerInfo* player) 87 87 { 88 if(this->isFailable(player)) //!< Checks whether the quest can be failed. 89 { 90 this->setStatus(player, questStatus::failed); 91 QuestEffect::invokeEffects(player, this->getFailEffectList()); //!< Invoke the failEffects. 92 return true; 93 } 94 95 COUT(4) << "A non-failable quest was trying to be failed." << std::endl; 96 return false; 88 if(!this->isFailable(player)) //!< Checks whether the quest can be failed. 89 { 90 COUT(4) << "A non-failable quest was trying to be failed." << std::endl; 91 return false; 92 } 93 94 Quest::fail(player); 95 96 QuestEffect::invokeEffects(player, this->getFailEffectList()); //!< Invoke the failEffects. 97 return true; 97 98 } 98 99 … … 108 109 bool LocalQuest::complete(PlayerInfo* player) 109 110 { 110 if(this->isCompletable(player)) //!< Checks whether the Quest can be completed. 111 { 112 this->setStatus(player, questStatus::completed); 113 QuestEffect::invokeEffects(player, this->getCompleteEffectList()); //!< Invoke the complete QuestEffects. 114 return true; 115 } 116 117 COUT(4) << "A non-completable quest was trying to be completed." << std::endl; 118 return false; 111 if(!this->isCompletable(player)) //!< Checks whether the Quest can be completed. 112 { 113 COUT(4) << "A non-completable quest was trying to be completed." << std::endl; 114 return false; 115 } 116 117 Quest::complete(player); 118 119 QuestEffect::invokeEffects(player, this->getCompleteEffectList()); //!< Invoke the complete QuestEffects. 120 return true; 119 121 } 120 122 -
code/trunk/src/orxonox/objects/quest/LocalQuest.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file LocalQuest.h 31 @brief 32 Definition of the LocalQuest class. 30 @file 31 @brief Definition of the LocalQuest class. 33 32 */ 34 33 … … 44 43 #include "Quest.h" 45 44 46 namespace orxonox {47 45 namespace orxonox 46 { 48 47 /** 49 48 @brief … … 56 55 <QuestDescription title="Title" description="Description." /> //The description of the quest. 57 56 <subquests> 58 <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.59 ...60 <Quest id="questIdn" />61 </subquests>62 <hints>63 <QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those.64 ...65 <QuestHint id="hintIdn" />66 </hints>57 <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. 58 ... 59 <Quest id="questIdn" /> 60 </subquests> 61 <hints> 62 <QuestHint id="hintId1" /> //A list of n QuestHints, see QuestHint for the full XML representation of those. 63 ... 64 <QuestHint id="hintIdn" /> 65 </hints> 67 66 <fail-effects> 68 67 <QuestEffect /> //A list of QuestEffects, invoked when the Quest is failed, see QuestEffect for the full XML representation. -
code/trunk/src/orxonox/objects/quest/Quest.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file Quest.cc 31 @brief 32 Implementation of the Quest class. 30 @file 31 @brief Implementation of the Quest class. 33 32 */ 34 33 … … 43 42 #include "QuestHint.h" 44 43 #include "QuestEffect.h" 45 46 namespace orxonox { 47 44 #include "QuestListener.h" 45 46 namespace orxonox 47 { 48 48 /** 49 49 @brief … … 363 363 return this->getStatus(player) == questStatus::completed; 364 364 } 365 366 /** 367 @brief 368 Fails the Quest for an input player. 369 @param player 370 The player. 371 @return 372 Returns true if the Quest could be failed, false if not. 373 */ 374 bool Quest::fail(PlayerInfo* player) 375 { 376 QuestListener::advertiseStatusChange(this->listeners_, "fail"); //!< Tells the QuestListeners, that the status has changed to failed. 377 this->setStatus(player, questStatus::failed); 378 379 COUT(4) << "Quest {" << this->getId() << "} is failed for player: " << player << " ." <<std::endl; 380 381 this->getDescription()->sendFailQuestNotification(); 382 return true; 383 } 384 385 /** 386 @brief 387 Completes the Quest for an input player. 388 @param player 389 The player. 390 @return 391 Returns true if the Quest could be completed, false if not. 392 */ 393 bool Quest::complete(PlayerInfo* player) 394 { 395 QuestListener::advertiseStatusChange(this->listeners_, "complete"); //!< Tells the QuestListeners, that the status has changed to completed. 396 this->setStatus(player, questStatus::completed); 397 398 COUT(4) << "Quest {" << this->getId() << "} is completed for player: " << player << " ." <<std::endl; 399 400 this->getDescription()->sendCompleteQuestNotification(); 401 return true; 402 } 365 403 366 404 /** … … 374 412 bool Quest::start(PlayerInfo* player) 375 413 { 376 if(this->isStartable(player)) //!< Checks whether the quest can be started. 377 { 378 this->setStatus(player, questStatus::active); 379 return true; 380 } 381 382 COUT(4) << "A non-startable quest was trying to be started." << std::endl; 383 return false; 414 if(!this->isStartable(player)) //!< Checks whether the quest can be started. 415 { 416 COUT(4) << "A non-startable quest was trying to be started." << std::endl; 417 return false; 418 } 419 420 COUT(4) << "Quest {" << this->getId() << "} is started for player: " << player << " ." <<std::endl; 421 422 QuestListener::advertiseStatusChange(this->listeners_, "start"); //!< Tells the QuestListeners, that the status has changed to active. 423 424 this->setStatus(player, questStatus::active); 425 426 this->getDescription()->sendAddQuestNotification(); 427 return true; 428 } 429 430 /** 431 @brief 432 Adds a QuestListener to the list of QuestListeners listening to this Quest. 433 @param listener 434 The QuestListener to be added. 435 @return 436 Returns true if successful, false if not. 437 */ 438 bool Quest::addListener(QuestListener* listener) 439 { 440 if(listener == NULL) 441 { 442 COUT(2) << "A NULL-QuestListener was trying to be added to a Quests listeners." << std::endl; 443 return false; 444 } 445 446 this->listeners_.push_back(listener); 447 return true; 384 448 } 385 449 -
code/trunk/src/orxonox/objects/quest/Quest.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file Quest.h 31 @brief 32 Definition of the Quest class. 33 34 The Quest is the parent class of LocalQuest and GlobalQuest. 30 @file 31 @brief Definition of the Quest class. 32 The Quest is the parent class of LocalQuest and GlobalQuest. 35 33 */ 36 34 … … 47 45 #include "QuestItem.h" 48 46 49 namespace questStatus47 namespace orxonox 50 48 { 49 namespace questStatus 50 { 51 51 52 //!Different states of a Quest.53 enum Enum54 {55 inactive,56 active,57 failed,58 completed59 };52 //!Different states of a Quest. 53 enum Enum 54 { 55 inactive, 56 active, 57 failed, 58 completed 59 }; 60 60 61 } 62 63 namespace orxonox { 61 } 64 62 65 63 /** … … 90 88 { return this->parentQuest_; } 91 89 92 /** 93 @brief Returns the list of subquests. 94 @return Returns a reference to the list of subquests of the quest. 95 */ 96 inline const std::list<Quest*> & getSubQuestList(void) const 97 { return this->subQuests_; } 98 99 /** 100 @brief Returns the list of all QuestHints of this Quest. 101 @return Returns a reference to the list of QuestHints of the Quest. 102 */ 103 inline const std::list<QuestHint*> & getHintsList(void) const 104 { return this->hints_; } 105 106 bool isInactive(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'inactive'. 107 bool isActive(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'active'. 108 bool isFailed(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'failed'. 109 bool isCompleted(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'completed'. 110 111 bool start(PlayerInfo* player); //!< Sets a Quest to active. 112 virtual bool fail(PlayerInfo* player) = 0; //!< Fails the Quest. 113 virtual bool complete(PlayerInfo* player) = 0; //!< Completes the Quest. 90 /** 91 @brief Returns the list of subquests. 92 @return Returns a reference to the list of subquests of the quest. 93 */ 94 inline const std::list<Quest*> & getSubQuestList(void) const 95 { return this->subQuests_; } 96 97 /** 98 @brief Returns the list of all QuestHints of this Quest. 99 @return Returns a reference to the list of QuestHints of the Quest. 100 */ 101 inline const std::list<QuestHint*> & getHintsList(void) const 102 { return this->hints_; } 103 104 bool isInactive(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'inactive'. 105 bool isActive(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'active'. 106 bool isFailed(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'failed'. 107 bool isCompleted(const PlayerInfo* player) const; //!< Returns true if the quest status for the specific player is 'completed'. 108 109 bool start(PlayerInfo* player); //!< Sets a Quest to active. 110 virtual bool fail(PlayerInfo* player); //!< Fails the Quest. 111 virtual bool complete(PlayerInfo* player); //!< Completes the Quest. 112 113 bool addListener(QuestListener* listener); //!< Adds a QuestListener to the list of QuestListeners listening to this Quest. 114 114 115 115 protected: … … 131 131 { return this->failEffects_; } 132 132 133 134 135 136 137 133 /** 134 @brief Returns the list of complete QuestEffects. 135 @return Returns a reference to the list of complete QuestEffects. 136 */ 137 inline std::list<QuestEffect*> & getCompleteEffectList(void) 138 138 { return this->completeEffects_; } 139 139 … … 141 141 virtual bool setStatus(PlayerInfo* player, const questStatus::Enum & status) = 0; //!< Changes the status for a specific player. 142 142 143 private:143 private: 144 144 Quest* parentQuest_; //!< Pointer to the parentquest. 145 145 std::list<Quest*> subQuests_; //!< List of all the subquests. … … 149 149 std::list<QuestEffect*> failEffects_; //!< A list of all QuestEffects to be invoked, when the Quest has been failed. 150 150 std::list<QuestEffect*> completeEffects_; //!< A list of QuestEffects to be invoked, when the Quest has been completed. 151 152 std::list<QuestListener*> listeners_; //!< A list of QuestListeners, that listen to what exactly happens with this Quest. 151 153 152 154 bool setParentQuest(Quest* quest); //!< Sets the parentquest of the Quest. -
code/trunk/src/orxonox/objects/quest/QuestDescription.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestDescription.cc 31 @brief 32 Implementation of the QuestDescription class. 30 @file 31 @brief Implementation of the QuestDescription class. 33 32 */ 34 33 … … 38 37 39 38 #include "core/CoreIncludes.h" 39 #include "orxonox/overlays/notifications/Notification.h" 40 40 41 namespace orxonox {42 41 namespace orxonox 42 { 43 43 CreateFactory(QuestDescription); 44 44 … … 74 74 XMLPortParam(QuestDescription, "title", setTitle, getTitle, xmlelement, mode); 75 75 XMLPortParam(QuestDescription, "description", setDescription, getDescription, xmlelement, mode); 76 XMLPortParam(QuestDescription, "failMessage", setFailMessage, getFailMessage, xmlelement, mode); 77 XMLPortParam(QuestDescription, "completeMessage", setCompleteMessage, getCompleteMessage, xmlelement, mode); 76 78 77 79 COUT(3) << "New QuestDescription with title '" << this->getTitle() << "' created." << std::endl; 80 } 81 82 /** 83 @brief 84 This method is a helper for sending QuestDescriptions as Notifications. 85 @param item 86 The item the QuestDescription is for. 87 @param status 88 The status the QuestDescription us for. 89 @return 90 Returns true if successful. 91 */ 92 bool QuestDescription::notificationHelper(const std::string & item, const std::string & status) const 93 { 94 std::string message = ""; 95 std::string title = ""; 96 if(item == "hint") 97 { 98 title = "You received a hint: '" + this->title_ + "'"; 99 message = this->description_; 100 } 101 else if(item == "quest") 102 { 103 if(status == "start") 104 { 105 title = "You received a new quest: '" + this->title_ + "'"; 106 message = this->description_; 107 } 108 else if(status == "fail") 109 { 110 title = "You failed the quest: '" + this->title_ + "'"; 111 message = this->failMessage_; 112 } 113 else if(status == "complete") 114 { 115 title = "You successfully completed the quest: '" + this->title_ + "'"; 116 message = this->completeMessage_; 117 } 118 else 119 { 120 COUT(2) << "Bad input in notificationHelper, this should not be happening!" << std::endl; 121 return false; 122 } 123 } 124 else 125 { 126 COUT(2) << "Bad input in notificationHelper, this should not be happening!" << std::endl; 127 return false; 128 } 129 130 Notification* notification = new Notification(0, message, title, 30); 131 notification->send(); 132 return true; 78 133 } 79 134 -
code/trunk/src/orxonox/objects/quest/QuestDescription.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestDescription.h 31 @brief 32 Definition of the QuestDescription class. 30 @file 31 @brief Definition of the QuestDescription class. 33 32 */ 34 33 … … 43 42 #include "core/XMLPort.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief … … 52 51 Creating a QuestDescription through XML goes as follows: 53 52 54 <QuestDescription title="Title" description="Description Text" />53 <QuestDescription title="Title" description="Description Text" failMessage="You fail." completeMessage="You win!" /> 55 54 @author 56 55 Damian 'Mozork' Frick 57 56 */ 58 class _OrxonoxExport QuestDescription : public BaseObject {59 57 class _OrxonoxExport QuestDescription : public BaseObject 58 { 60 59 public: 61 60 QuestDescription(BaseObject* creator); … … 64 63 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestDescription object through XML. 65 64 66 /**67 @brief Returns the title.68 @return Returns a string containing the title of the QuestDescription.69 */65 /** 66 @brief Returns the title. 67 @return Returns a string containing the title of the QuestDescription. 68 */ 70 69 inline const std::string & getTitle(void) const 71 70 { return this->title_; } 72 71 73 /**74 @brief Returns the description text.75 @return Returns a string containing the description text of the QuestDescription.76 */72 /** 73 @brief Returns the description text. 74 @return Returns a string containing the description text of the QuestDescription. 75 */ 77 76 inline const std::string & getDescription(void) const 78 77 { return this->description_; } 78 79 /** 80 @brief Returns the fail message. 81 @return Returns a string containing the fail message of the QuestDescription. 82 */ 83 inline const std::string & getFailMessage(void) const 84 { return this->failMessage_; } 85 86 /** 87 @brief Returns the complete message. 88 @return Returns a string containing the complete message of the QuestDescription. 89 */ 90 inline const std::string & getCompleteMessage(void) const 91 { return this->completeMessage_; } 92 93 /** 94 @brief Sends a Notification displaying that a QuestHint was added. 95 @return Returns true if successful. 96 */ 97 inline bool sendAddHintNotification(void) const 98 { return notificationHelper("hint", ""); } 99 100 /** 101 @brief Sends a Notification displaying that a Quest was added. 102 @return Returns true if successful. 103 */ 104 inline bool sendAddQuestNotification(void) const 105 { return notificationHelper("quest", "start"); } 106 107 /** 108 @brief Sends a Notification displaying that a Quest was failed. 109 @return Returns true if successful. 110 */ 111 inline bool sendFailQuestNotification(void) const 112 { return notificationHelper("quest", "fail"); } 113 114 /** 115 @brief Sends a Notification displaying that a Quest was completed. 116 @return Returns true if successful. 117 */ 118 inline bool sendCompleteQuestNotification(void) const 119 { return notificationHelper("quest", "complete"); } 79 120 80 121 private: 81 122 std::string title_; //!< The title. 82 123 std::string description_; //!< The description. 124 std::string failMessage_; //!< The message displayed when the Quest is failed. 125 std::string completeMessage_; //!< The message displayed when the Quest is completed. 126 127 bool notificationHelper(const std::string & item, const std::string & status) const; //!< Helper for sending QuestDescriptions as Notifications. 83 128 84 129 /** … … 89 134 { this->title_ = title; } 90 135 91 /**136 /** 92 137 @brief Sets the description text. 93 138 @param description The description text to be set. … … 96 141 { this->description_ = description; } 97 142 143 /** 144 @brief Sets the fail message. 145 @param message The fail message to be set. 146 */ 147 inline void setFailMessage(const std::string & message) 148 { this->failMessage_ = message; } 149 150 /** 151 @brief Sets the complete message. 152 @param message The complete message to be set. 153 */ 154 inline void setCompleteMessage(const std::string & message) 155 { this->completeMessage_ = message; } 156 98 157 }; 99 158 -
code/trunk/src/orxonox/objects/quest/QuestEffect.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestEffect.cc 31 @brief 32 Implementation of the QuestEffect class. 30 @file 31 @brief Implementation of the QuestEffect class. 33 32 */ 34 33 … … 40 39 #include "orxonox/objects/infos/PlayerInfo.h" 41 40 42 namespace orxonox {43 41 namespace orxonox 42 { 44 43 /** 45 44 @brief … … 71 70 Returns false if there was an error, view console of log for further detail. 72 71 */ 73 bool QuestEffect::invokeEffects(PlayerInfo* player, std::list<QuestEffect*> & effects)72 /*static*/ bool QuestEffect::invokeEffects(PlayerInfo* player, std::list<QuestEffect*> & effects) 74 73 { 75 74 bool check = true; 75 76 COUT(4) << "Invoking QuestEffects on player: " << player << " ." << std::endl; 76 77 77 78 for (std::list<QuestEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++) -
code/trunk/src/orxonox/objects/quest/QuestEffect.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestEffect.h 31 @brief 32 Definition of the QuestEffect class. 30 @file 31 @brief Definition of the QuestEffect class. 33 32 */ 34 33 … … 42 41 #include "core/BaseObject.h" 43 42 44 namespace orxonox {45 43 namespace orxonox 44 { 46 45 /** 47 46 @brief -
code/trunk/src/orxonox/objects/quest/QuestEffectBeacon.cc
r2262 r2662 28 28 29 29 /** 30 @file QuestEffectBeacon.cc 31 @brief 32 Implementation of the QuestEffectBeacon class. 30 @file 31 @brief Implementation of the QuestEffectBeacon class. 33 32 */ 34 33 … … 46 45 #include "QuestEffect.h" 47 46 48 namespace orxonox {49 47 namespace orxonox 48 { 50 49 CreateFactory(QuestEffectBeacon); 51 50 … … 54 53 Constructor. Registers the object and initializes defaults. 55 54 */ 56 QuestEffectBeacon::QuestEffectBeacon(BaseObject* creator) : PositionableEntity(creator)55 QuestEffectBeacon::QuestEffectBeacon(BaseObject* creator) : StaticEntity(creator) 57 56 { 58 57 RegisterObject(QuestEffectBeacon); 59 58 60 59 this->status_ = QuestEffectBeaconStatus::active; 61 this->times_ = INFINITE ;60 this->times_ = INFINITE_TIME; 62 61 } 63 62 … … 91 90 SUPER(QuestEffectBeacon, processEvent, event); 92 91 93 SetSubclassEvent(QuestEffectBeacon, "execute", execute, event, PlayerTrigger);92 SetSubclassEvent(QuestEffectBeacon, "execute", execute, event, PlayerTrigger); 94 93 } 95 94 … … 145 144 this->decrementTimes(); //!< Decrement the number of times the beacon can be used. 146 145 return true; 147 }148 149 return false;146 } 147 148 return false; 150 149 } 151 150 … … 187 186 return false; 188 187 } 189 if(this->getTimes() == INFINITE ) //!< If times is infinity the QuestEffectBeacon can be executed an infinite number fo times.188 if(this->getTimes() == INFINITE_TIME) //!< If times is infinity the QuestEffectBeacon can be executed an infinite number fo times. 190 189 { 191 190 return true; … … 193 192 194 193 this->times_ = this->times_ - 1; //!< Decrement number of times the QuestEffectBeacon can be executed. 195 if(this->getTimes() == 0) //!< Set the QuestEffectBeacon to inactive when the number of times it can be executed is reduced to 0.196 {194 if(this->getTimes() == 0) //!< Set the QuestEffectBeacon to inactive when the number of times it can be executed is reduced to 0. 195 { 197 196 this->status_ = QuestEffectBeaconStatus::inactive; 198 }197 } 199 198 200 199 return true; … … 213 212 bool QuestEffectBeacon::setTimes(const int & n) 214 213 { 215 if(n < 0 && n != INFINITE )214 if(n < 0 && n != INFINITE_TIME) 216 215 { 217 216 return false; -
code/trunk/src/orxonox/objects/quest/QuestEffectBeacon.h
r2262 r2662 28 28 29 29 /** 30 @file QuestEffectBeacon.h 31 @brief 32 Definition of the QuestEffectBeacon class. 30 @file 31 @brief Definition of the QuestEffectBeacon class. 33 32 */ 34 33 … … 38 37 #include "OrxonoxPrereqs.h" 39 38 40 #include "orxonox/objects/worldentities/ PositionableEntity.h"39 #include "orxonox/objects/worldentities/StaticEntity.h" 41 40 42 namespace QuestEffectBeaconStatus41 namespace orxonox 43 42 { 43 namespace QuestEffectBeaconStatus 44 { 44 45 45 //! The status of the beacon, can be either active or inactive.46 enum Enum47 {48 inactive,49 active50 };46 //! The status of the beacon, can be either active or inactive. 47 enum Enum 48 { 49 inactive, 50 active 51 }; 51 52 52 } 53 54 namespace orxonox { 53 } 55 54 56 55 /** … … 61 60 A QuestEffectBeacon can be inactive or active. 62 61 63 Creating a QuestEffectBeacon through XML goes as follows:64 65 <QuestEffectBeacon times=n> //Where 'n' is eighter a number >= 0, which means the QuestEffectBeacon can be executed n times. Or n = -1, which means the QuestEffectBeacon can be executed an infinite number of times.62 Creating a QuestEffectBeacon through XML goes as follows: 63 64 <QuestEffectBeacon times=n> //Where 'n' is eighter a number >= 0, which means the QuestEffectBeacon can be executed n times. Or n = -1, which means the QuestEffectBeacon can be executed an infinite number of times. 66 65 <effects> 67 66 <QuestEffect /> //A list of QuestEffects, invoked when the QuestEffectBeacon is executed, see QuestEffect for the full XML representation. … … 70 69 </effects> 71 70 <events> 72 <execute>73 <EventListener event=eventIdString />74 </execute>75 </events>76 <attached>77 <PlayerTrigger name=eventIdString /> //A PlayerTrigger triggering the execution of the QuestEffectBeacon.78 </attached>79 </QuestEffectBeacon>71 <execute> 72 <EventListener event=eventIdString /> 73 </execute> 74 </events> 75 <attached> 76 <PlayerTrigger name=eventIdString /> //A PlayerTrigger triggering the execution of the QuestEffectBeacon. 77 </attached> 78 </QuestEffectBeacon> 80 79 @author 81 80 Damian 'Mozork' Frick 82 81 */ 83 class _OrxonoxExport QuestEffectBeacon : public PositionableEntity82 class _OrxonoxExport QuestEffectBeacon : public StaticEntity 84 83 { 85 public:86 QuestEffectBeacon(BaseObject* creator);87 virtual ~QuestEffectBeacon();88 89 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestEffectBeacon object through XML.90 91 virtual void processEvent(Event& event); //!< Processes an event for this QuestEffectBeacon.92 93 bool execute(bool b, PlayerTrigger* trigger); //!< Executes the QuestEffects of the QuestEffectBeacon.94 95 /**96 @brief Tests whether the QuestEffectBeacon is active.97 @return Returns true if the QuestEffectBeacon is active, fals if not.98 */99 inline bool isActive(void)100 { return this->status_ == QuestEffectBeaconStatus::active; }101 102 bool setActive(bool activate); //!< Set the status of the QuestEffectBeacon.103 104 protected:84 public: 85 QuestEffectBeacon(BaseObject* creator); 86 virtual ~QuestEffectBeacon(); 87 88 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestEffectBeacon object through XML. 89 90 virtual void processEvent(Event& event); //!< Processes an event for this QuestEffectBeacon. 91 92 bool execute(bool b, PlayerTrigger* trigger); //!< Executes the QuestEffects of the QuestEffectBeacon. 93 94 /** 95 @brief Tests whether the QuestEffectBeacon is active. 96 @return Returns true if the QuestEffectBeacon is active, fals if not. 97 */ 98 inline bool isActive(void) 99 { return this->status_ == QuestEffectBeaconStatus::active; } 100 101 bool setActive(bool activate); //!< Set the status of the QuestEffectBeacon. 102 103 protected: 105 104 bool decrementTimes(void); //!< Decrement the number of times the QuestEffectBeacon can still be executed. 106 105 … … 111 110 inline const int & getTimes(void) const 112 111 { return this->times_; } 113 112 114 113 private: 115 static const int INFINITE = -1; //!< Constant to avoid using magic numbers.116 114 static const int INFINITE_TIME = -1; //!< Constant to avoid using magic numbers. 115 117 116 std::list<QuestEffect*> effects_; //!< The list of QuestEffects to be invoked on the executing player. 118 117 int times_; //!< Number of times the beacon can be exectued. -
code/trunk/src/orxonox/objects/quest/QuestHint.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestHint.cc 31 @brief 32 Implementation of the QuestHint class. 30 @file 31 @brief Implementation of the QuestHint class. 33 32 */ 34 33 … … 41 40 #include "orxonox/objects/infos/PlayerInfo.h" 42 41 #include "QuestManager.h" 42 #include "QuestDescription.h" 43 43 #include "Quest.h" 44 44 45 namespace orxonox {46 45 namespace orxonox 46 { 47 47 CreateFactory(QuestHint); 48 48 … … 122 122 { 123 123 this->playerStatus_[player] = questHintStatus::active; 124 125 this->getDescription()->sendAddHintNotification(); 124 126 return true; 125 127 } -
code/trunk/src/orxonox/objects/quest/QuestHint.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestHint.h 31 @brief 32 Definition of the QuestHint class. 30 @file 31 @brief Definition of the QuestHint class. 33 32 */ 34 33 … … 44 43 #include "QuestItem.h" 45 44 46 namespace questHintStatus47 {48 49 //! The status of the hint.50 enum Enum51 {52 inactive,53 active54 };55 56 }57 58 45 namespace orxonox 59 46 { 47 namespace questHintStatus 48 { 49 50 //! The state of the hint. 51 enum Enum 52 { 53 inactive, 54 active 55 }; 56 57 } 60 58 61 59 /** … … 96 94 private: 97 95 Quest* quest_; //!< The Quest the QuestHint belongs to. 98 std::map<const PlayerInfo*, questHintStatus::Enum> playerStatus_; //!< List of the stat us for each player, with the Player-pointer as key.96 std::map<const PlayerInfo*, questHintStatus::Enum> playerStatus_; //!< List of the states for each player, with the Player-pointer as key. 99 97 100 98 }; -
code/trunk/src/orxonox/objects/quest/QuestItem.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestItem.cc 31 @brief 32 Implementation of the QuestItem class. 30 @file 31 @brief Implementation of the QuestItem class. 33 32 */ 34 33 … … 40 39 #include "QuestDescription.h" 41 40 42 namespace orxonox {43 41 namespace orxonox 42 { 44 43 /** 45 44 @brief … … 99 98 @return 100 99 Returns true if the string is likely to be of the required form. 101 @todo102 Clarify form, more vigorous checks.103 100 */ 104 bool QuestItem::isId(const std::string & id)101 /*static*/ bool QuestItem::isId(const std::string & id) 105 102 { 106 103 return id.size() >= 32; -
code/trunk/src/orxonox/objects/quest/QuestItem.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestItem.h 31 @brief 32 Definition of the QuestItem class. 33 34 The QuestItem is the parent class of Quest and QuestHint. 30 @file 31 @brief Definition of the QuestItem class. 32 The QuestItem is the parent class of Quest and QuestHint. 35 33 */ 36 34 … … 46 44 #include "core/XMLPort.h" 47 45 48 namespace orxonox { 49 50 46 namespace orxonox 47 { 51 48 /** 52 49 @brief … … 67 64 /** 68 65 @brief Returns the id of this QuestItem. 69 @return Returns the id of the QuestItem.66 @return Returns the id of the QuestItem. 70 67 */ 71 68 inline const std::string & getId(void) const 72 69 { return this->id_; } 73 /** 74 @brief Returns the QuestDescription of the QuestItem. 75 @return Returns a pointer to the QuestDescription object of the QuestItem. 76 */ 70 71 /** 72 @brief Returns the QuestDescription of the QuestItem. 73 @return Returns a pointer to the QuestDescription object of the QuestItem. 74 */ 77 75 inline const QuestDescription* getDescription(void) const 78 76 { return this->description_; } -
code/trunk/src/orxonox/objects/quest/QuestManager.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestManager.cc 31 @brief 32 Implementation of the QuestManager class. 30 @file 31 @brief Implementation of the QuestManager class. 33 32 */ 34 33 … … 42 41 #include "QuestHint.h" 43 42 44 namespace orxonox {45 43 namespace orxonox 44 { 46 45 //! All Quests registered by their id's. 47 46 std::map<std::string, Quest*> QuestManager::questMap_s; … … 76 75 Returns true if successful, false if not. 77 76 */ 78 bool QuestManager::registerQuest(Quest* quest)77 /*static*/ bool QuestManager::registerQuest(Quest* quest) 79 78 { 80 79 if(quest == NULL) //!< Doh! Just as if there were actual quests behind NULL-pointers. … … 108 107 Returns true if successful, false if not. 109 108 */ 110 bool QuestManager::registerHint(QuestHint* hint)109 /*static*/ bool QuestManager::registerHint(QuestHint* hint) 111 110 { 112 111 if(hint == NULL) //!< Still not liking NULL-pointers. … … 142 141 Throws an exception if the given questId is invalid. 143 142 */ 144 Quest* QuestManager::findQuest(const std::string & questId)143 /*static*/ Quest* QuestManager::findQuest(const std::string & questId) 145 144 { 146 145 if(!QuestItem::isId(questId)) //!< Check vor validity of the given id. … … 176 175 Throws an exception if the given hintId is invalid. 177 176 */ 178 QuestHint* QuestManager::findHint(const std::string & hintId)177 /*static*/ QuestHint* QuestManager::findHint(const std::string & hintId) 179 178 { 180 179 if(!QuestItem::isId(hintId)) //!< Check vor validity of the given id. -
code/trunk/src/orxonox/objects/quest/QuestManager.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file QuestManager.h 31 @brief 32 Definition of the QuestManager class. 30 @file 31 @brief Definition of the QuestManager class. 33 32 */ 34 33 … … 43 42 #include "core/BaseObject.h" 44 43 45 namespace orxonox {46 44 namespace orxonox 45 { 47 46 /** 48 47 @brief -
code/trunk/src/orxonox/objects/quest/Rewardable.cc
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file Rewardable.cc 31 @brief 32 Implementation of the Rewardable class. 30 @file 31 @brief Implementation of the Rewardable class. 33 32 */ 34 33 … … 38 37 #include "core/CoreIncludes.h" 39 38 40 namespace orxonox {41 39 namespace orxonox 40 { 42 41 /** 43 42 @brief -
code/trunk/src/orxonox/objects/quest/Rewardable.h
- Property svn:mergeinfo changed
r2261 r2662 28 28 29 29 /** 30 @file Rewardable.h 31 @brief 32 Definition of the Rewardable class. 30 @file 31 @brief Definition of the Rewardable class. 33 32 */ 34 33 … … 40 39 #include "core/BaseObject.h" 41 40 42 namespace orxonox {43 41 namespace orxonox 42 { 44 43 /** 45 44 @brief … … 52 51 class _OrxonoxExport Rewardable : public BaseObject 53 52 { 54 55 53 public: 56 54 Rewardable(BaseObject* creator); … … 61 59 Method to transcribe a rewardable object to the player. 62 60 Must be implemented by every class inheriting from Rewardable. 63 @param player61 @param player 64 62 A pointer to the ControllableEntity, do whatever you want with it. 65 @return63 @return 66 64 Return true if successful. 67 65 */ 68 virtual bool reward(PlayerInfo* player) = 0; //!<66 virtual bool reward(PlayerInfo* player) = 0; 69 67 70 68 };
Note: See TracChangeset
for help on using the changeset viewer.