Quest System - Mitoridori/JGRS-VGDPORT GitHub Wiki

1.0 TRD

This questing system is set up to store all the quest, and hand them out to the player as required. It will track completed and uncompleted along with if a prerequisite has been done or not. It will also need to track if things for the quest have been gathered up or not. The last thing is hand out the right reward, be it coins, or experience or both.

2.0 TDD

The questing system will use scriptable objects, and item IDs to track and create quests. The scriptable objects will take in the quest information, such as what needs to be done, and text for the NPC to say. The item ID will allow the objects needed for the quest to be activated when their quest comes out.

2.1 Quest StartText() this holds the text given to the player to start the quest. TrackingQuest() this is the text to show what is being tracked, ie 4/5 items. InProgressQuestText() text when visiting the NPC and the quest is still uncompleted. CompleteText() The text given when the quest is finished. CheckGoals() this is the function to make sure the quest objective is completed. GiveReward() the function to give the experence and coin reward.

2.2 QuestGoal This class holds the information for the quest including description, rewards, and what's required for this quest. From here there are child classes for the different types of quest, that then pull in just the required information needed for the quest.

2.3 Quest Items Each quest item is assigned an itemID, this uses the IQuestID class. that system holds the name of the ID, and if the item itself gives a reward or not. It also triggers the system to check to see if the quest if finished or not.

3.0 UML of Questing System