Quests#
A player quest will be created from a defined a QuestDefinition that will include requirements for both
unlocking and completion as well as rewards. These can be created for a player via multiple paths, the main path
is from a Telemetry Event for a personaUid / userId that matches the type of either a requirement or
unlockRequirement or can be created from the QuestRoute.
Requirements#
There are two types of QuestRequirement that define the requirement or requirements to unlock or complete a
quest for a player. This is tracked for unlock via the unlockProgress array and completion via progress
array. These requirements are satisfied via Telemetry Events, see processor for more
information. The requirement type matches to a Telemetry Events’s type and it computes if the
requirement is completed by the leveraging the value field.
Unlocking#
Once all the requirements are met in the unlockProgress array a quest will be marked as unlocked.
If the QuestDefinition is defined as autostart and the configuration apply_event_on_autostart is set
to true, the quest dateLastStarted will be filled out with the current time and current event will be
applied to the progress array.
Completion#
Once all the requirements are met in the progress array, completions are incremented, dateLastCompleted
is set to current time and dateLastStarted is unset. If defined, quest rewards will be awarded.
Rewards#
Quest rewards come in three different types ITEMS, PROGRESS and QUEST defined in the type.
Rewards types of QUEST and PROGRESS will issue Telemetry Events to be processed downstream by
appropriate system. For these two types entity would map to the Quest/Progression type defined in that systems
definition requirements and value will will be used for the progressing the requirements. For ITEM type
rewards, entity will map to a resource uid and value will be the quantity. The item types will
make a transaction rest request with the economy services using the bank as the form to award items.